第一章算法初步 本章教材分析 算法是数学及其应用的重要组成部分,是计算科学的重要基础.算法的应用是学习数学的一个重要方 面学生学习算法的应用,目的就是利用己有的数学知识分析问题和解决问题.通过算法的学习,对完善数 学的思想,激发应用数学的意识,培养分析问题、解决问题的能力,增强进行实践的能力等,都有很大的 帮助 本章主要内容:算法与程序框图、基本算法语句、算法案例和小结.教材从学生最熟悉的算法入手, 通过研究程序框图与算法案例,使算法得到充分的应用,同时也展现了古老算法和现代计算机技术的密切 关系.算法案例不仅展示了数学方法的严谨性、科学性,也为计算机的应用提供了广阔的空间.让学生进一 步受到数学思想方法的熏陶,激发学生的学习热情 在算法初步这一章中让学生近距离接近社会生活,从生活中学习数学,使数学在社会生活中得到应用 和提高,让学生体会到数学是有用的,从而培养学生的学习兴趣.“数学建模”也是高考考查重点 本章还是数学思想方法的载体,学生在学习中会经常用到“算法思想”“转化思想”,从而提高自 己数学能力.因此应从三个方面把握本章: (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