第一章算法初步 本章教材分析 算法是数学及其应用的重要组成部分,是计算科学的重要基础.算法的应用是学习数学的一个重要方 面学生学习算法的应用,目的就是利用己有的数学知识分析问题和解决问题.通过算法的学习,对完善数 学的思想,激发应用数学的意识,培养分析问题、解决问题的能力,增强进行实践的能力等,都有很大的 帮助 本章主要内容:算法与程序框图、基本算法语句、算法案例和小结.教材从学生最熟悉的算法入手, 通过研究程序框图与算法案例,使算法得到充分的应用,同时也展现了古老算法和现代计算机技术的密切 关系.算法案例不仅展示了数学方法的严谨性、科学性,也为计算机的应用提供了广阔的空间.让学生进一 步受到数学思想方法的熏陶,激发学生的学习热情 在算法初步这一章中让学生近距离接近社会生活,从生活中学习数学,使数学在社会生活中得到应用 和提高,让学生体会到数学是有用的,从而培养学生的学习兴趣.“数学建模”也是高考考查重点 本章还是数学思想方法的载体,学生在学习中会经常用到“算法思想”“转化思想”,从而提高自 己数学能力.因此应从三个方面把握本章: (1)知识间的联系 (2)数学思想方法 (3)认知规律 本章教学时间约需12课时,具体分配如下(仅供参考) 1.1.1算法的概念 约1课时 1.1.2程序框图与算法的基本逻辑结构 约4课时 1.2.1输入语句、输出语句和赋值语句 约1课时 1.2.2条件语句 约1课时 1.2.3循环语句 约1课时 1.3算法案例 约3课时 本章复习 约1课时
第一章 算法初步 本章教材分析 算法是数学及其应用的重要组成部分,是计算科学的重要基础.算法的应用是学习数学的一个重要方 面.学生学习算法的应用,目的就是利用已有的数学知识分析问题和解决问题.通过算法的学习,对完善数 学的思想,激发应用数学的意识,培养分析问题、解决问题的能力,增强进行实践的能力等,都有很大的 帮助. 本章主要内容:算法与程序框图、基本算法语句、算法案例和小结.教材从学生最熟悉的算法入手, 通过研究程序框图与算法案例,使算法得到充分的应用,同时也展现了古老算法和现代计算机技术的密切 关系.算法案例不仅展示了数学方法的严谨性、科学性,也为计算机的应用提供了广阔的空间.让学生进一 步受到数学思想方法的熏陶,激发学生的学习热情. 在算法初步这一章中让学生近距离接近社会生活,从生活中学习数学,使数学在社会生活中得到应用 和提高,让学生体会到数学是有用的,从而培养学生的学习兴趣.“数学建模”也是高考考查重点. 本章还是数学思想方法的载体,学生在学习中会经常用到“算法思想” “转化思想”,从而提高自 己数学能力.因此应从三个方面把握本章: (1)知识间的联系; (2)数学思想方法; (3)认知规律. 本章教学时间约需 12 课时,具体分配如下(仅供参考): 1.1.1 算法的概念 约 1 课时 1.1.2 程序框图与算法的基本逻辑结构 约 4 课时 1.2.1 输入语句、输出语句和赋值语句 约 1 课时 1.2.2 条件语句 约 1 课时 1.2.3 循环语句 约 1 课时 1.3 算法案例 约 3 课时 本章复习 约 1 课时
§1.1算法与程序框图 §1.1.1算法的概念 、教材分析 算法在中学数学课程中是一个新的概念,但没有一个精确化的定义,教科书只对它作了如下描述:“在 数学中,算法通常是指按照一定规则解决某一类问题的明确有限的步骤.”为了让学生更好理解这一概念, 教科书先从分析一个具体的二元一次方程组的求解过程出发,归纳出了二元一次方程组的求解步骤,这些 步骤就构成了解二元一次方程组的算法.教学中,应从学生非常熟悉的例子引出算法,再通过例题加以巩 固. 二、教学目标 1、知识与技能 (1)了解算法的含义,体会算法的思想。 (2)能够用自然语言叙述算法。 (3)掌握正确的算法应满足的要求 (4)会写出解线性方程(组)的算法 (5)会写出一个求有限整数序列中的最大值的算法 (6)会应用 Scilab求解方程组。 过程与方法 通过求解二元一次方程组,体会解方程的一般性步骤,从而得到一个解二元一次方程组的步骤,这些 步骤就是算法,不同的问题有不同的算法。由于思考问题的角度不同,同一个问题也可能有多个算法,能 模仿求解二元一次方程组的步骤,写出一个求有限整数序列中的最大值的算法。 3、情感态度与价值观: 通过本节的学习,使我们对计算机的算法语言有一个基本的了解,明确算法的要求,认识到计算机是 人类征服自然的一各有力工具,进一步提高探索、认识世界的能力。 、重点难点 教学重点:算法的含义及应用. 教学难点:写出解决一类问题的算法 四、课时安排 1课时 五、教学设计 (一)导入新课 思路1(情境导入) 个人带着三只狼和三只羚羊过河,只有一条船,同船可容纳一个人和两只动物,没有人在的时候, 如果狼的数量不少于羚羊的数量狼就会吃羚羊.该人如何将动物转移过河?请同学们写出解决问题的步 骤,解决这一问题将要用到我们今天学习的内容一一算法 思路2(情境导入) 大家都看过赵本山与宋丹丹演的小品吧,宋丹丹说了一个笑话,把大象装进冰箱总共分几步? 答案:分三步,第一步:把冰箱门打开:第二步:把大象装进去:第三步:把冰箱门关上 上述步骤构成了把大象装进冰箱的算法,今天我们开始学习算法的概念. 思路3(直接导入) 算法不仅是数学及其应用的重要组成部分,也是计算机科学的重要基础.在现代社会里,计算机已成 为人们日常生活和工作中不可缺少的工具.听音乐、看电影、玩游戏、打字、画卡通画、处理数据,计算 机是怎样工作的呢?要想弄清楚这个问题,算法的学习是一个开始 (二)推进新课、新知探究、提出问题 (1)解二元一次方程组有几种方法?
§1.1 算法与程序框图 §1.1.1 算法的概念 一、教材分析 算法在中学数学课程中是一个新的概念,但没有一个精确化的定义,教科书只对它作了如下描述:“在 数学中,算法通常是指按照一定规则解决某一类问题的明确有限的步骤.”为了让学生更好理解这一概念, 教科书先从分析一个具体的二元一次方程组的求解过程出发,归纳出了二元一次方程组的求解步骤,这些 步骤就构成了解二元一次方程组的算法.教学中,应从学生非常熟悉的例子引出算法,再通过例题加以巩 固. 二、教学目标 1、 知识与技能: (1)了解算法的含义,体会算法的思想。 (2)能够用自然语言叙述算法。 (3)掌握正确的算法应满足的要求。 (4)会写出解线性方程(组)的算法。 (5)会写出一个求有限整数序列中的最大值的算法。 (6)会应用 Scilab 求解方程组。 2、 过程与方法: 通过求解二元一次方程组,体会解方程的一般性步骤,从而得到一个解二元一次方程组的步骤,这些 步骤就是算法,不同的问题有不同的算法。由于思考问题的角度不同,同一个问题也可能有多个算法,能 模仿求解二元一次方程组的步骤,写出一个求有限整数序列中的最大值的算法。 3、 情感态度与价值观: 通过本节的学习,使我们对计算机的算法语言有一个基本的了解,明确算法的要求,认识到计算机是 人类征服自然的一各有力工具,进一步提高探索、认识世界的能力。 三、重点难点 教学重点:算法的含义及应用. 教学难点:写出解决一类问题的算法. 四、课时安排 1 课时 五、教学设计 (一)导入新课 思路 1(情境导入) 一个人带着三只狼和三只羚羊过河,只有一条船,同船可容纳一个人和两只动物,没有人在的时候, 如果狼的数量不少于羚羊的数量狼就会吃羚羊.该人如何将动物转移过河?请同学们写出解决问题的步 骤,解决这一问题将要用到我们今天学习的内容——算法. 思路 2(情境导入) 大家都看过赵本山与宋丹丹演的小品吧,宋丹丹说了一个笑话,把大象装进冰箱总共分几步? 答案:分三步,第一步:把冰箱门打开;第二步:把大象装进去;第三步:把冰箱门关上. 上述步骤构成了把大象装进冰箱的算法,今天我们开始学习算法的概念. 思路 3(直接导入) 算法不仅是数学及其应用的重要组成部分,也是计算机科学的重要基础.在现代社会里,计算机已成 为人们日常生活和工作中不可缺少的工具.听音乐、看电影、玩游戏、打字、画卡通画、处理数据,计算 机是怎样工作的呢?要想弄清楚这个问题,算法的学习是一个开始. (二)推进新课、新知探究、提出问题 (1)解二元一次方程组有几种方法?
(2)结合教材实例{(-2=1(0总结用加减消元法解二元一次方程组的步骤 2x+y=1,(2) y=-1,(1) (3)结合教材实例 总结用代入消元法解二元一次方程组的步骤 2x+y=1,(2) (4)请写出解一般二元一次方程组的步骤 (5)根据上述实例谈谈你对算法的理解. (6)请同学们总结算法的特征 (7)请思考我们学习算法的意义 讨论结果 (1)代入消元法和加减消元法 (2)回顾二元一次方程组 x-2y=-1(1) 的求解过程,我们可以归纳出以下步骤 2x+y=1,(2) 第一步,①+②×2,得5x=1.③ 第二步,解③,得x= 第三步,②-①×2,得5y=3.④ 第四步,解④,得y= 第五步,得到方程组的解为5 (3)用代入消元法解二元一次方程组 ∫x-2y=-1() 2x+y=L,(2) 我们可以归纳出以下步骤 第一步,由①得x=2y-1.③ 第二步,把③代入②,得2(2y-1)+y=1.④ 第三步,解④得y= 第四步,把⑤代入③,得x=2×--1= 5 第五步,得到方程组的解为 (4)对于一般的二元一次方程组 a,x+by=Cu,(1) a2x+b2y=c2,(2) 其中ab2-a2b≠0,可以写出类似的求解步骤:
(2)结合教材实例 + = − = − 2 1, (2) 2 1,(1) x y x y 总结用加减消元法解二元一次方程组的步骤. (3)结合教材实例 + = − = − 2 1, (2) 2 1,(1) x y x y 总结用代入消元法解二元一次方程组的步骤. (4)请写出解一般二元一次方程组的步骤. (5)根据上述实例谈谈你对算法的理解. (6)请同学们总结算法的特征. (7)请思考我们学习算法的意义. 讨论结果: (1)代入消元法和加减消元法. (2)回顾二元一次方程组 + = − = − 2 1, (2) 2 1,(1) x y x y 的求解过程,我们可以归纳出以下步骤: 第一步,①+②×2,得 5x=1.③ 第二步,解③,得 x= 5 1 . 第三步,②-①×2,得 5y=3.④ 第四步,解④,得 y= 5 3 . 第五步,得到方程组的解为 = = . 5 3 , 5 1 y x (3)用代入消元法解二元一次方程组 + = − = − 2 1, (2) 2 1,(1) x y x y 我们可以归纳出以下步骤: 第一步,由①得 x=2y-1.③ 第二步,把③代入②,得 2(2y-1)+y=1.④ 第三步,解④得 y= 5 3 .⑤ 第四步,把⑤代入③,得 x=2× 5 3 -1= 5 1 . 第五步,得到方程组的解为 = = . 5 3 , 5 1 y x (4)对于一般的二元一次方程组 + = + = ,(2) ,(1) 2 2 2 1 1 1 a x b y c a x b y c 其中 a1b2-a2b1≠0,可以写出类似的求解步骤:
第一步,①×b2-②×b1,得 (a,b -a bi) x=b,C,-b1cz. 3 第二步,解③,得x=b21-b、cy 第三步,②Ⅹa-①×a2,得(ab2-ab1)y=ac2-ac1.④ 第四步,解④,得y=ae-a2C b-a,b b,C-b,c, 第五步,得到方程组的解为 a,b2-a2b y="c2- 21 6 -ab (5)算法的定义:广义的算法是指完成某项工作的方法和步骤,那么我们可以说洗衣机的使用说明书是操 作洗衣机的算法,菜谱是做菜的算法等等. 在数学中,算法通常是指按照一定规则解决某一类问题的明确有限的步骤. 现在,算法通常可以编成计算机程序,让计算机执行并解决问题. (6)算法的特征:①确定性:算法的每一步都应当做到准确无误、不重不漏.“不重”是指不是可有可无的 甚至无用的步骤,“不漏”是指缺少哪一步都无法完成任务.②逻辑性:算法从开始的“第一步”直到 “最后一步”之间做到环环相扣,分工明确,“前一步”是“后一步”的前提,“后一步”是“前一步” 的继续③有穷性:算法要有明确的开始和结束,当到达终止步骤时所要解决的问题必须有明确的结果, 也就是说必须在有限步内完成任务,不能无限制地持续进行 (⑦)在解决某些问题时,需要设计出一系列可操作或可计算的步骤来解决问题,这些步骤称为解决这些问 题的算法.也就是说,算法实际上就是解决问题的一种程序性方法.算法一般是机械的,有时需进行大量重 复的计算,它的优点是一种通法,只要按部就班地去做,总能得到结果.因此算法是计算科学的重要基础. (三)应用示例 思路1 例1(1)设计一个算法,判断7是否为质数 (2)设计一个算法,判断35是否为质数 算法分析:(1)根据质数的定义,可以这样判断:依次用2=6除7,如果它们中有一个能整除7,则 7不是质数,否则7是质数 算法如下:(1)第一步,用2除7,得到余数1.因为余数不为0,所以2不能整除7 第二步,用3除7,得到余数1.因为余数不为0,所以3不能整除7 第三步,用4除7,得到余数3.因为余数不为0,所以4不能整除7 第四步,用5除7,得到余数2.因为余数不为0,所以5不能整除7. 第五步,用6除7,得到余数1.因为余数不为0,所以6不能整除7.因此,7是质数. (2)类似地,可写出“判断35是否为质数”的算法:第一步,用2除35,得到余数1.因为余数不为0, 所以2不能整除35 第二步,用3除35,得到余数2.因为余数不为0,所以3不能整除35 第三步,用4除35,得到余数3.因为余数不为0,所以4不能整除35 第四步,用5除35,得到余数0.因为余数为0,所以5能整除35.因此,35不是质数 点评:上述算法有很大的局限性,用上述算法判断35是否为质数还可以,如果判断1997是否为质数 就麻烦了,因此,我们需要寻找普适性的算法步骤 变式训练
第一步,①×b2-②×b1,得 (a1b2-a2b1)x=b2c1-b1c2.③ 第二步,解③,得 x= 1 2 2 1 2 1 1 2 a b a b b c b c − − . 第三步,②×a1-①×a2,得(a1b2-a2b1)y=a1c2-a2c1.④ 第四步,解④,得 y= 1 2 2 1 1 2 2 1 a b a b a c a c − − . 第五步,得到方程组的解为 − − = − − = . , 1 2 2 1 1 2 2 1 1 2 2 1 2 1 1 2 a b a b a c a c y a b a b b c b c x (5)算法的定义:广义的算法是指完成某项工作的方法和步骤,那么我们可以说洗衣机的使用说明书是操 作洗衣机的算法,菜谱是做菜的算法等等. 在数学中,算法通常是指按照一定规则解决某一类问题的明确有限的步骤. 现在,算法通常可以编成计算机程序,让计算机执行并解决问题. (6)算法的特征:①确定性:算法的每一步都应当做到准确无误、不重不漏.“不重”是指不是可有可无的, 甚至无用的步骤,“不漏” 是指缺少哪一步都无法完成任务.②逻辑性:算法从开始的“第一步”直到 “最后一步”之间做到环环相扣,分工明确,“前一步”是“后一步”的前提, “后一步”是“前一步” 的继续.③有穷性:算法要有明确的开始和结束,当到达终止步骤时所要解决的问题必须有明确的结果, 也就是说必须在有限步内完成任务,不能无限制地持续进行. (7)在解决某些问题时,需要设计出一系列可操作或可计算的步骤来解决问题,这些步骤称为解决这些问 题的算法.也就是说,算法实际上就是解决问题的一种程序性方法.算法一般是机械的,有时需进行大量重 复的计算,它的优点是一种通法,只要按部就班地去做,总能得到结果.因此算法是计算科学的重要基础. (三)应用示例 思路 1 例 1 (1)设计一个算法,判断 7 是否为质数. (2)设计一个算法,判断 35 是否为质数. 算法分析:(1)根据质数的定义,可以这样判断:依次用 2—6 除 7,如果它们中有一个能整除 7,则 7 不是质数,否则 7 是质数. 算法如下:(1)第一步,用 2 除 7,得到余数 1.因为余数不为 0,所以 2 不能整除 7. 第二步,用 3 除 7,得到余数 1.因为余数不为 0,所以 3 不能整除 7. 第三步,用 4 除 7,得到余数 3.因为余数不为 0,所以 4 不能整除 7. 第四步,用 5 除 7,得到余数 2.因为余数不为 0,所以 5 不能整除 7. 第五步,用 6 除 7,得到余数 1.因为余数不为 0,所以 6 不能整除 7.因此,7 是质数. (2)类似地,可写出“判断 35 是否为质数”的算法:第一步,用 2 除 35,得到余数 1.因为余数不为 0, 所以 2 不能整除 35. 第二步,用 3 除 35,得到余数 2.因为余数不为 0,所以 3 不能整除 35. 第三步,用 4 除 35,得到余数 3.因为余数不为 0,所以 4 不能整除 35. 第四步,用 5 除 35,得到余数 0.因为余数为 0,所以 5 能整除 35.因此,35 不是质数. 点评:上述算法有很大的局限性,用上述算法判断 35 是否为质数还可以,如果判断 1997 是否为质数 就麻烦了,因此,我们需要寻找普适性的算法步骤. 变式训练
请写出判断n(n>2)是否为质数的算法 分析:对于任意的整数n(n>2),若用i表示2-(m-1)中的任意整数,则“判断n是否为质数”的算 法包含下面的重复操作:用i除n,得到余数r.判断余数r是否为0,若是,则不是质数;否则,将i的值 增加1,再执行同样的操作 这个操作一直要进行到i的值等于(n-1)为止 算法如下:第一步,给定大于2的整数n 第二步,令i=2 第三步,用i除n,得到余数r 第四步,判断“r=0”是否成立.若是,则n不是质数,结束算法;否则,将i的值增加1,仍用i表 小 第五步,判断“i>(n-1)”是否成立.若是,则n是质数,结束算法:否则,返回第三步 例2写出用“二分法”求方程x2-2=0(x>0)的近似解的算法. 分析:令f(x)=x22,则方程x2-2=0(x>0)的解就是函数f(x)的零点 二分法”的基本思想是:把函数f(x)的零点所在的区间[a,b](满足f(a)·f(b)<0)“一分为二”, 得到[a,m]和[m,b].根据“f(a)·f(m)<0”是否成立,取出零点所在的区间[a,m]或[m,b],仍记为 a,b].对所得的区间[a,b]重复上述步骤,直到包含零点的区间[a,b]“足够小”,则[a,b]内的 数可以作为方程的近似解 解:第一步,令f(x)=x2-2,给定精确度d. 第二步,确定区间[a,b],满足f(a)·f(b)<0 第三步,取区间中点m=2+b 第四步,若f(a)·f(m)<0,则含零点的区间为[a,m]:否则,含零点的区间为[m,b].将新得到的含零点 的区间仍记为[a,b] 第五步,判断[a,b]的长度是否小于d或f(m)是否等于0.若是,则m是方程的近似解:否则,返回第 当d=0.005时,按照以上算法,可以得到下表 b Ia-bl 2 1.5 1.5 0.25 1.375 1.5 0.125 1.375 1.4375 0.0625 1.40625 1.4375 0.03125 1.40625 1.421875 0.015625 1.4140625 1.421875 0.0078125 1.40251.4179850.090625 于是,开区间(1.4140625,1.41796875)中的实数都是当精确度为0.005时的原方程的近似解. 实际上,上述步骤也是求√2的近似值的一个算法 点评:算法一般是机械的,有时需要进行大量的重复计算,只要按部就班地去做,总能算出结果,通 常把算法过程称为“数学机械化”.数学机械化的最大优点是它可以借助计算机来完成,实际上处理任何 问题都需要算法.如:中国象棋有中国象棋的棋谱、走法、胜负的评判准则:而国际象棋有国际象棋的棋 谱、走法、胜负的评判准则:再比如申请出国有一系列的先后手续,购买物品也有相关的手续 思路2
请写出判断 n(n>2)是否为质数的算法. 分析:对于任意的整数 n(n>2),若用 i 表示 2—(n-1)中的任意整数,则“判断 n 是否为质数”的算 法包含下面的重复操作:用 i 除 n,得到余数 r.判断余数 r 是否为 0,若是,则不是质数;否则,将 i 的值 增加 1,再执行同样的操作. 这个操作一直要进行到 i 的值等于(n-1)为止. 算法如下:第一步,给定大于 2 的整数 n. 第二步,令 i=2. 第三步,用 i 除 n,得到余数 r. 第四步,判断“r=0”是否成立.若是,则 n 不是质数,结束算法;否则,将 i 的值增加 1,仍用 i 表 示. 第五步,判断“i>(n-1)”是否成立.若是,则 n 是质数,结束算法;否则,返回第三步. 例 2 写出用“二分法”求方程 x 2 -2=0 (x>0)的近似解的算法. 分析:令 f(x)=x2 -2,则方程 x 2 -2=0 (x>0)的解就是函数 f(x)的零点. “二分法”的基本思想是:把函数 f(x)的零点所在的区间[a,b](满足 f(a)·f(b)<0)“一分为二”, 得到[a,m]和[m,b].根据“f(a)·f(m)<0”是否成立,取出零点所在的区间[a,m]或[m,b],仍记为 [a,b].对所得的区间[a,b]重复上述步骤,直到包含零点的区间[a,b]“足够小”,则[a,b]内的 数可以作为方程的近似解. 解:第一步,令 f(x)=x2 -2,给定精确度 d. 第二步,确定区间[a,b],满足 f(a)·f(b)<0. 第三步,取区间中点 m= 2 a + b . 第四步,若 f(a)·f(m)<0,则含零点的区间为[a,m];否则,含零点的区间为[m,b].将新得到的含零点 的区间仍记为[a,b]. 第五步,判断[a,b]的长度是否小于 d 或 f(m)是否等于 0.若是,则 m 是方程的近似解;否则,返回第 三步. 当 d=0.005 时,按照以上算法,可以得到下表. a b |a-b| 1 2 1 1 1.5 0.5 1.25 1.5 0.25 1.375 1.5 0.125 1.375 1.437 5 0.062 5 1.406 25 1.437 5 0.031 25 1.406 25 1.421 875 0.015 625 1.414 062 5 1.421 875 0.007 812 5 1.414 062 5 1.417 968 75 0.003 906 25 于是,开区间(1.414 062 5,1.417 968 75)中的实数都是当精确度为 0.005 时的原方程的近似解. 实际上,上述步骤也是求 2 的近似值的一个算法. 点评:算法一般是机械的,有时需要进行大量的重复计算,只要按部就班地去做,总能算出结果,通 常把算法过程称为“数学机械化”.数学机械化的最大优点是它可以借助计算机来完成,实际上处理任何 问题都需要算法.如:中国象棋有中国象棋的棋谱、走法、胜负的评判准则;而国际象棋有国际象棋的棋 谱、走法、胜负的评判准则;再比如申请出国有一系列的先后手续,购买物品也有相关的手续…… 思路 2
例1一个人带着三只狼和三只羚羊过河,只有一条船,同船可容纳一个人和两只动物,没有人在的时候 如果狼的数量不少于羚羊的数量就会吃羚羊.该人如何将动物转移过河?请设计算法 分析:任何动物同船不用考虑动物的争斗但需考虑承载的数量,还应考虑到两岸的动物都得保证狼的 数量要小于羚羊的数量,故在算法的构造过程中尽可能保证船里面有狼,这样才能使得两岸的羚羊数量占 到优势. 解:具体算法如下: 算法步骤: 第一步:人带两只狼过河,并自己返回 第二步:人带一只狼过河,自己返回 第三步:人带两只羚羊过河,并带两只狼返回. 第四步:人带一只羊过河,自己返回 第五步:人带两只狼过河 点评:算法是解决某一类问题的精确描述,有些问题使用形式化、程序化的刻画是最恰当的.这就要 求我们在写算法时应精练、简练、清晰地表达,要善于分析任何可能出现的情况,体现思维的严密性和完 整性.本题型解决问题的算法中某些步骤重复进行多次才能解决,在现实生活中,很多较复杂的情境经常 遇到这样的问题,设计算法的时候,如果能够合适地利用某些步骤的重复,不但可以使得问题变得简单, 而且可以提高工作效率. 例2喝一杯茶需要这样几个步骤:洗刷水壶、烧水、洗刷茶具、沏茶.问:如何安排这几个步骤?并给 出两种算法,再加以比较 分析:本例主要为加深对算法概念的理解,可结合生活常识对问题进行分析,然后解决问题 解:算法一: 第一步,洗刷水壶 第二步,烧水 第三步,洗刷茶具 第四步,沏茶 算法二: 第一步,洗刷水壶 第二步,烧水,烧水的过程当中洗刷茶具 第三步,沏茶. 点评:解决一个问题可有多个算法,可以选择其中最优的、最简单的、步骤尽量少的算法.上面的两 种算法都符合题意,但是算法二运用了统筹方法的原理,因此这个算法要比算法一更科学 例3写出通过尺轨作图确定线段AB一个5等分点的算法 分析:我们借助于平行线定理,把位置的比例关系变成已知的比例关系,只要按照规则一步一步去做 就能完成任务. 解:算法分析 第一步,从已知线段的左端点A出发,任意作一条与AB不平行的射线AP. 第二步,在射线上任取一个不同于端点A的点C,得到线段AC. 第三步,在射线上沿AC的方向截取线段CE=AC 第四步,在射线上沿AC的方向截取线段EF=AC 第五步,在射线上沿AC的方向截取线段FG=AC 第六步,在射线上沿AC的方向截取线段GD=AC,那么线段AD=5AC. 第七步,连结DB. 第八步,过C作BD的平行线,交线段AB于M,这样点M就是线段AB的一个5等分点 点评:用算法解决几何问题能很好地训练学生的思维能力,并能帮助我们得到解决几何问题的一般方
例 1 一个人带着三只狼和三只羚羊过河,只有一条船,同船可容纳一个人和两只动物,没有人在的时候, 如果狼的数量不少于羚羊的数量就会吃羚羊.该人如何将动物转移过河?请设计算法. 分析:任何动物同船不用考虑动物的争斗但需考虑承载的数量,还应考虑到两岸的动物都得保证狼的 数量要小于羚羊的数量,故在算法的构造过程中尽可能保证船里面有狼,这样才能使得两岸的羚羊数量占 到优势. 解:具体算法如下: 算法步骤: 第一步:人带两只狼过河,并自己返回. 第二步:人带一只狼过河,自己返回. 第三步:人带两只羚羊过河,并带两只狼返回. 第四步:人带一只羊过河,自己返回. 第五步:人带两只狼过河. 点评:算法是解决某一类问题的精确描述,有些问题使用形式化、程序化的刻画是最恰当的.这就要 求我们在写算法时应精练、简练、清晰地表达,要善于分析任何可能出现的情况,体现思维的严密性和完 整性.本题型解决问题的算法中某些步骤重复进行多次才能解决,在现实生活中,很多较复杂的情境经常 遇到这样的问题,设计算法的时候,如果能够合适地利用某些步骤的重复,不但可以使得问题变得简单, 而且可以提高工作效率. 例 2 喝一杯茶需要这样几个步骤:洗刷水壶、烧水、洗刷茶具、沏茶.问:如何安排这几个步骤?并给 出两种算法,再加以比较. 分析:本例主要为加深对算法概念的理解,可结合生活常识对问题进行分析,然后解决问题. 解:算法一: 第一步,洗刷水壶. 第二步,烧水. 第三步,洗刷茶具. 第四步,沏茶. 算法二: 第一步,洗刷水壶. 第二步,烧水,烧水的过程当中洗刷茶具. 第三步,沏茶. 点评:解决一个问题可有多个算法,可以选择其中最优的、最简单的、步骤尽量少的算法.上面的两 种算法都符合题意,但是算法二运用了统筹方法的原理,因此这个算法要比算法一更科学. 例 3 写出通过尺轨作图确定线段 AB 一个 5 等分点的算法. 分析:我们借助于平行线定理,把位置的比例关系变成已知的比例关系,只要按照规则一步一步去做 就能完成任务. 解:算法分析: 第一步,从已知线段的左端点 A 出发,任意作一条与 AB 不平行的射线 AP. 第二步,在射线上任取一个不同于端点 A 的点 C,得到线段 AC. 第三步,在射线上沿 AC 的方向截取线段 CE=AC. 第四步,在射线上沿 AC 的方向截取线段 EF=AC. 第五步,在射线上沿 AC 的方向截取线段 FG=AC. 第六步,在射线上沿 AC 的方向截取线段 GD=AC,那么线段 AD=5AC. 第七步,连结 DB. 第八步,过 C 作 BD 的平行线,交线段 AB 于 M,这样点 M 就是线段 AB 的一个 5 等分点. 点评:用算法解决几何问题能很好地训练学生的思维能力,并能帮助我们得到解决几何问题的一般方
法,可谓一举多得,应多加训练 (四)知能训练 设计算法判断一元二次方程ax2+bx+c=0是否有实数根. 解:算法步骤如下: 第一步,输入一元二次方程的系数:a,b,c 第二步,计算△=b2-4ac的值 第三步,判断Δ≥0是否成立.若Δ≥0成立,输出“方程有实根”:否则输出“方程无实根”,结束算 点评:用算法解决问题的特点是:具有很好的程序性,是一种通法.并且具有确定性、逻辑性、有穷 性.让我们结合例题仔细体会算法的特点 (五)拓展提升 中国网通规定:拨打市内电话时,如果不超过3分钟,则收取话费0.22元;如果通话时间超过3分 钟,则超出部分按每分钟0.1元收取通话费,不足一分钟按一分钟计算.设通话时间为t(分钟),通话费 用y(元),如何设计一个程序,计算通话的费用 解:算法分析: 数学模型实际上为:y关于t的分段函数 关系式如下: 0.22(03t∈Z) 0.22+0.1(T-3]+1),(T>3,t=Z) 其中[t-3]表示取不大于t-3的整数部分 算法步骤如下 第一步,输入通话时间t. 第二步,如果t≤3,那么y=0.22;否则判断t∈Z是否成立,若成立执行 y=0.2+0.1×(t-3);否则执行y=0.2+0.1×(t-3]+1) 第三步,输出通话费用c. (六)课堂小结 (1)正确理解算法这一概念 (2)结合例题掌握算法的特点,能够写出常见问题的算法. (七)作业 课本本节练习1、2
法,可谓一举多得,应多加训练. (四)知能训练 设计算法判断一元二次方程 ax 2 +bx+c=0 是否有实数根. 解:算法步骤如下: 第一步,输入一元二次方程的系数:a,b,c. 第二步,计算 Δ=b2-4ac 的值. 第三步,判断 Δ≥0 是否成立.若 Δ≥0 成立,输出“方程有实根”;否则输出“方程无实根”,结束算 法. 点评:用算法解决问题的特点是:具有很好的程序性,是一种通法.并且具有确定性、逻辑性、有穷 性.让我们结合例题仔细体会算法的特点. (五)拓展提升 中国网通规定:拨打市内电话时,如果不超过 3 分钟,则收取话费 0.22 元;如果通话时间超过 3 分 钟,则超出部分按每分钟 0.1 元收取通话费,不足一分钟按一分钟计算.设通话时间为 t(分钟),通话费 用 y(元),如何设计一个程序,计算通话的费用. 解:算法分析: 数学模型实际上为:y 关于 t 的分段函数. 关系式如下: y= + − + + − 0.22 0.1([ 3] 1),( 3, ). 0.22 0.1( 3),( 3, ), 0.22,(0 3), T T t Z t t t Z t 其中[t-3]表示取不大于 t-3 的整数部分. 算法步骤如下: 第一步,输入通话时间 t. 第二步,如果 t≤3,那么 y=0.22;否则判断 t∈Z 是否成立,若成立执行 y=0.2+0.1×(t-3);否则执行 y=0.2+0.1×([t-3]+1). 第三步,输出通话费用 c. (六)课堂小结 (1)正确理解算法这一概念. (2)结合例题掌握算法的特点,能够写出常见问题的算法. (七)作业 课本本节练习 1、2
§1.1.2程序框图与算法的基本逻辑结构 教材分析 用自然语言表示的算法步骤有明确的顺序性,但是对于在一定条件下才会被执行的步骤,以及在一定 条件下会被重复执行的步骤,自然语言的表示就显得困难,而且不直观、不准确.因此,本节有必要探究 使算法表达得更加直观、准确的方法程序框图用图形的方式表达算法,使算法的结构更清楚、步骤更直 观也更精确.为了更好地学好程序框图,我们需要掌握程序框的功能和作用,需要熟练掌握三种基本逻辑 结构 教学目标 1、知识与技能: 掌握程序框图的概念:会用通用的图形符号表示算法,掌握算法的三个基本逻辑结构:掌握画程序框 图的基本规则,能正确画出程序框图。 2、过程与方法: 通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程;学会灵活、正确地画程序框图。 3、情感态度与价值观: 通过本节的学习,使我们对程序框图有一个基本的了解:掌握算法语言的三种基本逻辑结构,明确程 序框图的基本要求:认识到学习程序框图是我们学习计算机的一个基本步骤,也是我们学习计算机语言的 必经之路。 三、重点难点 数学重点:程序框图的画法 数学难点:程序框图的画 四、课时安排 4课时 五、教学设计 第1课时程序框图及顺序结构 (一)导入新课 思路1(情境导入) 我们都喜欢外出旅游,优美的风景美不胜收,如果迷了路就不好玩了,问路有时还听不明白,真是急 死人,有的同学说买张旅游图不就好了吗,所以外出旅游先要准备好旅游图.旅游图看起来直观、准确, 本节将探究使算法表达得更加直观、准确的方法.今天我们开始学习程序框图. 思路2(直接导入) 用自然语言表示的算法步骤有明确的顺序性,但是对于在一定条件下才会被执行的步骤,以及在一定 条件下会被重复执行的步骤,自然语言的表示就显得困难,而且不直观、不准确.因此,本节有必要探究 使算法表达得更加直观、准确的方法.今天开始学习程序框图. (二)推进新课、新知探究、提出问题 (1)什么是程序框图? (2)说出终端框(起止框)的图形符号与功能 (3)说出输入、输出框的图形符号与功能. (4)说出处理框(执行框)的图形符号与功能. (5)说出判断框的图形符号与功能 (6)说出流程线的图形符号与功能
§1.1.2 程序框图与算法的基本逻辑结构 一、教材分析 用自然语言表示的算法步骤有明确的顺序性,但是对于在一定条件下才会被执行的步骤,以及在一定 条件下会被重复执行的步骤,自然语言的表示就显得困难,而且不直观、不准确.因此,本节有必要探究 使算法表达得更加直观、准确的方法.程序框图用图形的方式表达算法,使算法的结构更清楚、步骤更直 观也更精确.为了更好地学好程序框图,我们需要掌握程序框的功能和作用,需要熟练掌握三种基本逻辑 结构. 二、教学目标 1、知识与技能: 掌握程序框图的概念;会用通用的图形符号表示算法,掌握算法的三个基本逻辑结构;掌握画程序框 图的基本规则,能正确画出程序框图。 2、过程与方法: 通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程;学会灵活、正确地画程序框图。 3、情感态度与价值观: 通过本节的学习,使我们对程序框图有一个基本的了解;掌握算法语言的三种基本逻辑结构,明确程 序框图的基本要求;认识到学习程序框图是我们学习计算机的一个基本步骤,也是我们学习计算机语言的 必经之路。 三、重点难点 数学重点:程序框图的画法. 数学难点:程序框图的画法. 四、课时安排 4 课时 五、教学设计 第 1 课时 程序框图及顺序结构 (一)导入新课 思路 1(情境导入) 我们都喜欢外出旅游,优美的风景美不胜收,如果迷了路就不好玩了,问路有时还听不明白,真是急 死人,有的同学说买张旅游图不就好了吗,所以外出旅游先要准备好旅游图.旅游图看起来直观、准确, 本节将探究使算法表达得更加直观、准确的方法.今天我们开始学习程序框图. 思路 2(直接导入) 用自然语言表示的算法步骤有明确的顺序性,但是对于在一定条件下才会被执行的步骤,以及在一定 条件下会被重复执行的步骤,自然语言的表示就显得困难,而且不直观、不准确.因此,本节有必要探究 使算法表达得更加直观、准确的方法.今天开始学习程序框图. (二)推进新课、新知探究、提出问题 (1)什么是程序框图? (2)说出终端框(起止框)的图形符号与功能. (3)说出输入、输出框的图形符号与功能. (4)说出处理框(执行框)的图形符号与功能. (5)说出判断框的图形符号与功能. (6)说出流程线的图形符号与功能
(7)说出连接点的图形符号与功能 (8)总结几个基本的程序框、流程线和它们表示的功能 (9)什么是顺序结构? 讨论结果: (1)程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形 在程序框图中,一个或几个程序框的组合表示算法中的一个步骤;带有方向箭头的流程线将程序框连接起 来,表示算法步骤的执行顺序 (2)椭圆形框:¤表示程序的开始和结束,称为终端框(起止框).表示开始时只有一个出口:表示结 束时只有一个入口 (3)平行四边形框:∠表示一个算法输入和输出的信息,又称为输入、输出框,它有一个入口和一个出 口 (4)矩形框:匚表示计算、赋值等处理操作,又称为处理框(执行框),它有一个入口和一个出口 (5)菱形框:n-1或r=0 顺序结构 条件结构 循环结构 (二)应用示例 例1请用程序框图表示前面讲过的“判断整数n(n>2)是否为质数”的算法 解:程序框图如下
(7)说出连接点的图形符号与功能. (8)总结几个基本的程序框、流程线和它们表示的功能. (9)什么是顺序结构? 讨论结果: (1)程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形. 在程序框图中,一个或几个程序框的组合表示算法中的一个步骤;带有方向箭头的流程线将程序框连接起 来,表示算法步骤的执行顺序. (2)椭圆形框: 表示程序的开始和结束,称为终端框(起止框).表示开始时只有一个出口;表示结 束时只有一个入口. (3)平行四边形框: 表示一个算法输入和输出的信息,又称为输入、输出框,它有一个入口和一个出 口. (4)矩形框: 表示计算、赋值等处理操作,又称为处理框(执行框),它有一个入口和一个出口. (5)菱形框: 是用来判断给出的条件是否成立,根据判断结果来决定程序的流向,称为判断框,它 有一个入口和两个出口. (6)流程线: 表示程序的流向. (7)圆圈: 连接点.表示相关两框的连接处,圆圈内的数字相同的含义表示相连接在一起. (8)总结如下表. 图形符号 名称 功能 终端框(起止框) 表示一个算法的起始和结束 输入、输出框 表示一个算法输入和输出的信息 处理框(执行框) 赋值、计算 判断框 判断某一条件是否成立,成立时在出口处标明 “是”或“Y”;不成立时标明“否”或“N” 流程线 连接程序框 连接点 连接程序框图的两部分 (9)很明显,顺序结构是由若干个依次执行的步骤组成的,这是任何一个算法都离不开的基本结构. 三种逻辑结构可以用如下程序框图表示: 顺序结构 条件结构 循环结构 (二)应用示例 例 1 请用程序框图表示前面讲过的“判断整数 n(n>2)是否为质数”的算法. 解:程序框图如下:
开始 求除以的余数 的值增加1, 仍用表示 >n-1或r=0 是 是 出不是质数∠输出n是质数 点评:程序框图是用图形的方式表达算法,使算法的结构更清楚,步骤更直观也更精确.这里只是让同 学们初步了解程序框图的特点,感受它的优点,暂不要求掌握它的画法 变式训练 观察下面的程序框图,指出该算法解决的问题 开始 结束k=(k+1 解:这是一个累加求和问题,共9项相加,该算法是求1+1 的值 22×33×4 例2已知一个三角形三条边的边长分别为a,b,c,利用海伦一秦九韶公式设计一个计算三角形面积的 算法,并画出程序框图表示.(已知三角形三边边长分别为a,b,c,则三角形的面积为 √m(p-ap-b)p-c)),其中p= a+b+c 这个公式被称为海伦一秦九韶公式) 算法分析:这是一个简单的问题,只需先算出p的值,再将它代入分式,最后输出结果.因此只用顺 序结构应能表达出算法 算法步骤如下: 第一步,输入三角形三条边的边长a,b,C. 第二步,计算p=2+b+c 第三步,计算S=√p(p-aXp-bp-c) 第四步,输出S. 程序框图如下:
点评:程序框图是用图形的方式表达算法,使算法的结构更清楚,步骤更直观也更精确.这里只是让同 学们初步了解程序框图的特点,感受它的优点,暂不要求掌握它的画法. 变式训练 观察下面的程序框图,指出该算法解决的问题. 解:这是一个累加求和问题,共 99 项相加,该算法是求 99 100 1 3 4 1 2 3 1 1 2 1 + + + + 的值. 例 2 已知一个三角形三条边的边长分别为 a,b,c,利用海伦—秦九韶公式设计一个计算三角形面积的 算 法 , 并 画 出 程 序 框 图 表 示 . ( 已 知 三 角 形 三 边 边 长 分 别 为 a,b,c , 则 三 角 形 的 面 积 为 S= p(p − a)( p −b)( p − c) ),其中 p= 2 a + b + c .这个公式被称为海伦—秦九韶公式) 算法分析:这是一个简单的问题,只需先算出 p 的值,再将它代入分式,最后输出结果.因此只用顺 序结构应能表达出算法. 算法步骤如下: 第一步,输入三角形三条边的边长 a,b,c. 第二步,计算 p= 2 a + b + c . 第三步,计算 S= p(p − a)( p −b)( p − c) . 第四步,输出 S. 程序框图如下: