算法与程序框图
????????????精诚凝聚 =^_^= 成就梦想 ????????????
第一章 算法初步
本章教材分析
算法是数学及其应用的重要组成部分,是计算科学的重要基础.算法的应用是学习数学的一个重要方面.学生学习算法的应用,目的就是利用已有的数学知识分析问题和解决问题.通过算法的学习,对完善数学的思想,激发应用数学的意识,培养分析问题、解决问题的能力,增强进行实践的能力等,都有很大的帮助.
本章主要内容:算法与程序框图、基本算法语句、算法案例和小结.教材从学生最熟悉的算法入手,通过研究程序框图与算法案例,使算法得到充分的应用,同时也展现了古老算法和现代计算机技术的密切关系.算法案例不仅展示了数学方法的严谨性、科学性,也为计算机的应用提供了广阔的空间.让学生进一步受到数学思想方法的熏陶,激发学生的学习热情.
在算法初步这一章中让学生近距离接近社会生活,从生活中学习数学,使数学在社会生活中得到应用和提高,让学生体会到数学是有用的,从而培养学生的学习兴趣.“数学建模”也是
考查重点.
本章还是数学思想方法的载体,学生在学习中会经常用到“算法思想” “转化思想”,从而提高自己数学能力.因此应从三个方面把握本章:
(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课时
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ????????????
?1.1 算法与程序框图
?1.1.1 算法的概念
一、教材分析
算法在中学数学课程中是一个新的概念,但没有一个精确化的定义,教科书只对它作了如下描述:“在数学中,算法通常是指按照一定规则解决某一类问题的明确有限的步骤.”为了让学生更好理解这一概念,教科书先从分析一个具体的二元一次方程组的求解过程出发,归纳出了二元一次方程组的求解步骤,这些步骤就构成了解二元一次方程组的算法.教学中,应从学生非常熟悉的例子引出算法,再通过例题加以巩固.
二、教学目标
1、 知识与技能:
(1)了解算法的含义,体会算法的思想。
(2)能够用自然语言叙述算法。
(3)掌握正确的算法应满足的要求。
(4)会写出解线性方程(组)的算法。
(5)会写出一个求有限整数序列中的最大值的算法。
(6)会应用Scilab求解方程组。
2、 过程与方法:
通过求解二元一次方程组,体会解方程的一般性步骤,从而得到一个解二元一次方程组的步骤,这些步骤就是算法,不同的问题有不同的算法。由于思考问题的角度不同,同一个问题也可能有多个算法,能模仿求解二元一次方程组的步骤,写出一个求有限整数序列中的最大值的算法。 3、 情感态度与价值观:
通过本节的学习,使我们对计算机的算法语言有一个基本的了解,明确算法的要求,认识到计算机是人类征服自然的一各有力工具,进一步提高探索、认识世界的能力。
三、重点难点
教学重点:算法的含义及应用.
教学难点:写出解决一类问题的算法.
四、课时安排
1课时
五、教学设计
(一)导入新课
思路1(情境导入)
一个人带着三只狼和三只羚羊过河,只有一条船,同船可容纳一个人和两只动物,没有人在的时候,如果狼的数量不少于羚羊的数量狼就会吃羚羊.该人如何将动物转移过河,请同学们写出解决问题的步骤,解决这一问题将要用到我们今天学习的内容——算法.
思路2(情境导入)
大家都看过赵本山与宋丹丹演的小品吧,宋丹丹说了一个笑话,把大象装进冰箱总共分几步, 答案:分三步,第一步:把冰箱门打开;第二步:把大象装进去;第三步:把冰箱门关上. 上述步骤构成了把大象装进冰箱的算法,今天我们开始学习算法的概念.
思路3(直接导入)
算法不仅是数学及其应用的重要组成部分,也是计算机科学的重要基础.在现代社会里,计算机已成为人们日常生活和工作中不可缺少的工具.听音乐、看电影、玩游戏、打字、画卡通画、处理数据,计算机是怎样工作的呢,要想弄清楚这个问题,算法的学习是一个开始.
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ????????????
(二)推进新课、新知探究、提出问题 (1)解二元一次方程组有几种方法,
x,2y,,1,(1),(2)结合教材实例
用加减消元法解二元一次方程组的步骤. ,2x,y,1,(2),
x,2y,,1,(1),(3)结合教材实例总结用代入消元法解二元一次方程组的步骤. ,2x,y,1,(2),
(4)请写出解一般二元一次方程组的步骤. (5)根据上述实例谈谈你对算法的理解. (6)请同学们总结算法的特征. (7)请思考我们学习算法的意义. 讨论结果:
(1)代入消元法和加减消元法. (2)回顾二元一次方程组
x,2y,,1,(1),的求解过程,我们可以归纳出以下步骤: ,2x,y,1,(2),
第一步,?+?×2,得5x=1.?
1. 第二步,解?,得x=5
第三步,?-?×2,得5y=3.?
3第四步,解?,得y=. 5
1,x,,,,5第五步,得到方程组的解为 ,3,y,.,5,
(3)用代入消元法解二元一次方程组 x,2y,,1,(1),我们可以归纳出以下步骤: ,2x,y,1,(2),
第一步,由?得x=2y,1.?
第二步,把?代入?,得2(2y,1)+y=1.?
3第三步,解?得y=.? 5
31第四步,把?代入?,得x=2×,1=. 55
1,x,,,,5第五步,得到方程组的解为 ,3,y,.,5,
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ????????????
,,,(1)axbyc,111(4)对于一般的二元一次方程组 ,ax,by,c,(2)222,
其中ab,ab?0,可以写出类似的求解步骤: 1221
第一步,?×b-?×b,得 21
(ab,ab)x=bc,bc.? 12212112
bc,bc2112 第二步,解?,得x=. ab,ab1221
第三步,?×a-?×a,得(ab,ab)y=ac,ac.? 1212211221
ac,ac1221 第四步,解?,得y=. ab,ab1221
bc,bc,2112x,,,ab,ab,1221 第五步,得到方程组的解为 ,ac,ac1221,y,.,ab,ab1221,
(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.
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ???????????? 第三步,用4除35,得到余数3.因为余数不为0,所以4不能整除35.
第四步,用5除35,得到余数0.因为余数为0,所以5能整除35.因此,35不是质数.
点评:上述算法有很大的局限性,用上述算法判断35是否为质数还可以,如果判断1997是否为质数就麻烦了,因此,我们需要寻找普适性的算法步骤.
变式训练
请写出判断n(n>2)是否为质数的算法.
分析:对于任意的整数n(n>2),若用i表示2—(n-1)中的任意整数,则“判断n是否为质数”的算
,若是,则不是质数;否则,将i法包含下面的重复操作:用i除n,得到余数r.判断余数r是否为0
的值增加1,再执行同样的操作.
这个操作一直要进行到i的值等于(n-1)为止.
算法如下:第一步,给定大于2的整数n.
第二步,令i=2.
第三步,用i除n,得到余数r.
第四步,判断“r=0”是否成立.若是,则n不是质数,结束算法;否则,将i的值增加1,仍用i表示.
第五步,判断“i,(n-1)”是否成立.若是,则n是质数,结束算法;否则,返回第三步.
2例2 写出用“二分法”求方程x-2=0 (x>0)的近似解的算法.
22分析:令f(x)=x-2,则方程x-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,内的数可以作为方程的近似解.
2解:第一步,令f(x)=x-2,给定精确度d.
第二步,确定区间,a,b,,满足f(a)?f(b)<0.
a,b第三步,取区间中点m=. 2
第四步,若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实际上,上述步骤也是求的近似值的一个算法.
点评:算法一般是机械的,有时需要进行大量的重复计算,只要按部就班地去做,总能算出结
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ???????????? 果,通常把算法过程称为“数学机械化”.数学机械化的最大优点是它可以借助计算机来完成,实际上处理任何问题都需要算法.如:中国象棋有中国象棋的棋谱、走法、胜负的评判准则;而国际象棋有国际象棋的棋谱、走法、胜负的评判准则;再比如申请出国有一系列的先后手续,购买物品也有相关的手续……
思路2
例1 一个人带着三只狼和三只羚羊过河,只有一条船,同船可容纳一个人和两只动物,没有人在的时候,如果狼的数量不少于羚羊的数量就会吃羚羊.该人如何将动物转移过河,请设计算法.
分析:任何动物同船不用考虑动物的争斗但需考虑承载的数量,还应考虑到两岸的动物都得保证狼的数量要小于羚羊的数量,故在算法的构造过程中尽可能保证船里面有狼,这样才能使得两岸的羚羊数量占到优势.
解:具体算法如下:
算法步骤:
第一步:人带两只狼过河,并自己返回.
第二步:人带一只狼过河,自己返回.
第三步:人带两只羚羊过河,并带两只狼返回.
第四步:人带一只羊过河,自己返回.
第五步:人带两只狼过河.
点评:算法是解决某一类问题的精确描述,有些问题使用形式化、程序化的刻画是最恰当的.这就要求我们在写算法时应精练、简练、清晰地表达,要善于分析任何可能出现的情况,体现思维的严密性和完整性.本题型解决问题的算法中某些步骤重复进行多次才能解决,在现实生活中,很多较复杂的情境经常遇到这样的问题,设计算法的时候,如果能够合适地利用某些步骤的重复,不但可以使得问题变得简单,而且可以提高工作效率.
例2 喝一杯茶需要这样几个步骤:洗刷水壶、烧水、洗刷茶具、沏茶(问:如何安排这几个步骤,并给出两种算法,再加以比较(
分析:本例主要为加深对算法概念的理解,可结合生活常识对问题进行分析,然后解决问题(
解:算法一:
第一步,洗刷水壶.
第二步,烧水.
第三步,洗刷茶具.
第四步,沏茶.
算法二:
第一步,洗刷水壶.
第二步,烧水,烧水的过程当中洗刷茶具.
第三步,沏茶.
点评:解决一个问题可有多个算法,可以选择其中最优的、最简单的、步骤尽量少的算法(上面的两种算法都符合题意,但是算法二运用了统筹方法的原理,因此这个算法要比算法一更科学(
例3 写出通过尺轨作图确定线段AB一个5等分点的算法.
分析:我们借助于平行线定理,把位置的比例关系变成已知的比例关系,只要按照规则一步一步去做就能完成任务.
解:算法分析:
第一步,从已知线段的左端点A出发,任意作一条与AB不平行的射线AP. 第二步,在射线上任取一个不同于端点A的点C,得到线段AC.
第三步,在射线上沿AC的方向截取线段CE=AC.
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ???????????? 第四步,在射线上沿AC的方向截取线段EF=AC.
第五步,在射线上沿AC的方向截取线段FG=AC.
第六步,在射线上沿AC的方向截取线段GD=AC,那么线段AD=5AC. 第七步,连结DB.
第八步,过C作BD的平行线,交线段AB于M,这样点M就是线段AB的一个5等分点.
点评:用算法解决几何问题能很好地训练学生的思维能力,并能帮助我们得到解决几何问题的一般方法,可谓一举多得,应多加训练.
(四)知能训练
2 设计算法判断一元二次方程ax+bx+c=0是否有实数根.
解:算法步骤如下:
第一步,输入一元二次方程的系数:a,b,c.
2第二步,计算Δ=b,4ac的值.
第三步,判断Δ?0是否成立.若Δ?0成立,输出“方程有实根”;否则输出“方程无实根”,结束算法.
点评:用算法解决问题的特点是:具有很好的程序性,是一种通法.并且具有确定性、逻辑性、有穷性.让我们结合例题仔细体会算法的特点.
(五)拓展提升
中国网通规定:拨打市内电话时,如果不超过3分钟,则收取话费0.22元;如果通话时间超过3分钟,则超出部分按每分钟0.1元收取通话费,不足一分钟按一分钟计算.设通话时间为t(分钟),通话费用y(元),如何设计一个程序,计算通话的费用.
解:算法分析:
数学模型实际上为:y关于t的分段函数.
关系式如下:
0.22,(0,t,3),,
,0.22,0.1(t,3),(t,3,t,Z),y= ,
,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.
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ????????????
?1.1.2 程序框图与算法的基本逻辑结构 一、教材分析
用自然语言表示的算法步骤有明确的顺序性,但是对于在一定条件下才会被执行的步骤,以及在一定条件下会被重复执行的步骤,自然语言的表示就显得困难,而且不直观、不准确.因此,本节有必要探究使算法表达得更加直观、准确的方法.程序框图用图形的方式表达算法,使算法的结构更清楚、步骤更直观也更精确.为了更好地学好程序框图,我们需要掌握程序框的功能和作用,需要熟练掌握三种基本逻辑结构.
二、教学目标
1、知识与技能:
掌握程序框图的概念;会用通用的图形符号表示算法,掌握算法的三个基本逻辑结构;掌握画程序框图的基本规则,能正确画出程序框图。
2、过程与方法:
通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程;学会灵活、正确地画程序框图。
、情感态度与价值观: 3
通过本节的学习,使我们对程序框图有一个基本的了解;掌握算法语言的三种基本逻辑结构,明确程序框图的基本要求;认识到学习程序框图是我们学习计算机的一个基本步骤,也是我们学习计算机语言的必经之路。
三、重点难点
数学重点:程序框图的画法.
数学难点:程序框图的画法.
四、课时安排
4课时
五、教学设计
第1课时 程序框图及顺序结构
(一)导入新课
思路1(情境导入)
我们都喜欢外出旅游,优美的风景美不胜收,如果迷了路就不好玩了,问路有时还听不明白,真是急死人,有的同学说买张旅游图不就好了吗,所以外出旅游先要准备好旅游图.旅游图看起来直观、准确,本节将探究使算法表达得更加直观、准确的方法.今天我们开始学习程序框图.
思路2(直接导入)
用自然语言表示的算法步骤有明确的顺序性,但是对于在一定条件下才会被执行的步骤,以及在一定条件下会被重复执行的步骤,自然语言的表示就显得困难,而且不直观、不准确.因此,本节
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ???????????? 有必要探究使算法表达得更加直观、准确的方法.今天开始学习程序框图.
(二)推进新课、新知探究、提出问题
(1)什么是程序框图,
(2)说出终端框(起止框)的图形符号与功能.
(3)说出输入、输出框的图形符号与功能.
(4)说出处理框(执行框)的图形符号与功能.
5)说出判断框的图形符号与功能. (
(6)说出
线的图形符号与功能.
(7)说出连接点的图形符号与功能.
(8)总结几个基本的程序框、流程线和它们表示的功能.
(9)什么是顺序结构,
讨论结果:
(1)程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形. 在程序框图中,一个或几个程序框的组合表示算法中的一个步骤;带有方向箭头的流程线将程序框连接起来,表示算法步骤的执行顺序.
(2)椭圆形框:表示程序的开始和结束,称为终端框(起止框)(表示开始时只有一个出口;表示结束时只有一个入口(
(3)平行四边形框:表示一个算法输入和输出的信息,又称为输入、输出框,它有一个入口和一个出口(
(4)矩形框:表示计算、赋值等处理操作,又称为处理框(执行框),它有一个入口和一个出口(
(5)菱形框:是用来判断给出的条件是否成立,根据判断结果来决定程序的流向,称为判断框,它有一个入口和两个出口(
(6)流程线:表示程序的流向(
(7)圆圈:连接点(表示相关两框的连接处,圆圈内的数字相同的含义表示相连接在一起( (8)总结如下表.
图形符号 名称 功能
终端框(起止框) 表示一个算法的起始和结束
输入、输出框 表示一个算法输入和输出的信息
处理框(执行框) 赋值、计算
判断某一条件是否成立,成立时在出口处标明判断框 “是”或“Y”;不成立时标明“否”或“N”
流程线 连接程序框
连接点 连接程序框图的两部分
(9)很明显,顺序结构是由若干个依次执行的步骤组成的,这是任何一个算法都离不开的基本结构.
三种逻辑结构可以用如下程序框图表示:
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ????????????
顺序结构 条件结构 循环结构
(二)应用示例
例1 请用程序框图表示前面讲过的“判断整数n(n>2)是否为质数”的算法.
解:程序框图如下:
点评:程序框图是用图形的方式表达算法,使算法的结构更清楚,步骤更直观也更精确.这里只是让同学们初步了解程序框图的特点,感受它的优点,暂不要求掌握它的画法.
变式训练
观察下面的程序框图,指出该算法解决的问题.
1111,,,?,解:这是一个累加求和问题,共99项相加,该算法是求的1,22,33,499,100值.
例2 已知一个三角形三条边的边长分别为a,b,c,利用海伦—秦九韶公式设计一个计算三角形面积的算法,并画出程序框图表示.(已知三角形三边边长分别为a,b,c,则三角形的面积为
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ????????????
a,b,cS=),其中p=.这个公式被称为海伦—秦九韶公式) p(p,a)(p,b)(p,c)2
算法分析:这是一个简单的问题,只需先算出p的值,再将它代入分式,最后输出结果.因此只用顺序结构应能表达出算法.
算法步骤如下:
第一步,输入三角形三条边的边长a,b,c.
a,b,c第二步,计算p=. 2
第三步,计算S=. p(p,a)(p,b)(p,c)
第四步,输出S.
程序框图如下:
点评:很明显,顺序结构是由若干个依次执行的步骤组成的,它是最简单的逻辑结构,它是任何一个算法都离不开的基本结构.
变式训练
下图所示的是一个算法的流程图,已知a=3,输出的b=7,求a的值. 12
a,a12解:根据题意=7, 2
?a=3,?a=11.即a的值为11. 122
例3 写出通过尺轨作图确定线段AB的一个5等分点的程序框图.
解:利用我们学过的顺序结构得程序框图如下:
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ????????????
点评:这个算法步骤具有一般性,对于任意自然数n,都可以按照这个算法的思想,设计出确定线段的n等分点的步骤,解决问题,通过本题学习可以巩固顺序结构的应用.
(四)知能训练
有关专家建议,在未来几年内,中国的通货膨胀率保持在3 %左右,这将对我国经济的稳定有利无害.所谓通货膨胀率为3%,指的是每年消费品的价格增长率为3% .在这种情况下,某种品牌的钢琴2004年的价格是10 000元,请用流程图描述这种钢琴今后四年的价格变化情况,并输出四年后的价格.
解:用P表示钢琴的价格,不难看出如下算法步骤:
2005年P=10 000×(1+3%)=10 300;
2006年P=10 300×(1+3%)=10 609;
2007年P=10 609×(1+3%)=10 927.27;
2008年P=10 927.27×(1+3%)=11 255.09;
因此,价格的变化情况表为:
年份 2004 2005 2006 2007 2008 钢琴的价格 10 000 10 300 10 609 10 927.27 11 255.09 程序框图如下:
点评:顺序结构只需严格按照传统的解决数学问题的解题思路,将问题解决掉.最后将解题步骤 “细化”就可以.“细化”指的是写出算法步骤、画出程序框图.
(五)拓展提升
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ????????????
1111 如下给出的是计算的值的一个流程图,其中判断框内应填入的条件是,,,?,24620
______________.
答案:i>10.
(六)课堂小结
(1)掌握程序框的画法和功能.
(2)了解什么是程序框图,知道学习程序框图的意义.
(3)掌握顺序结构的应用,并能解决与顺序结构有关的程序框图的画法.
(七)作业
习题1.1A 1.
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ????????????
第2课时 条件结构
(一)导入新课
思路1(情境导入)
我们以前听过这样一个故事,野兽与鸟发生了一场战争,蝙蝠来了,野兽们喊道:你有牙齿是我们一伙的,鸟们喊道:你有翅膀是我们一伙的,蝙蝠一时没了主意.过了一会儿蝙蝠有了一个好办法,如果野兽赢了,就加入野兽这一伙,否则加入另一伙,事实上蝙蝠用了分类讨论思想,在算法和程序框图中也经常用到这一思想方法,今天我们开始学习新的逻辑结构——条件结构.
(直接导入) 思路2
前面我们学习了顺序结构,顺序结构像是一条没有分支的河流,奔流到海不复回,事实上多数河流是有分支的,今天我们开始学习有分支的逻辑结构——条件结构.
(二)推进新课、新知探究、提出问题
(1)举例说明什么是分类讨论思想,
(2)什么是条件结构,
(3)试用程序框图表示条件结构.
(4)指出条件结构的两种形式的区别.
讨论结果:
(1)例如解不等式ax>8(a?0),不等式两边需要同除a,需要明确知道a的符号,但条件没有给出,因此需要进行分类讨论,这就是分类讨论思想.
(2)在一个算法中,经常会遇到一些条件的判断,算法的流程根据条件是否成立有不同的流向.条件结构就是处理这种过程的结构.
(3)用程序框图表示条件结构如下(
条件结构:先根据条件作出判断,再决定执行哪一种操作的结构就称为条件结构(或分支结构),如图1所示.执行过程如下:条件成立,则执行A框;不成立,则执行B框(
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ????????????
图2 图1
注:无论条件是否成立,只能执行A、B之一,不可能两个框都执行(A、B两个框中,可以有一个是空的,即不执行任何操作,如图2.
(4)一种是在两个“分支”中均包含算法的步骤,符合条件就执行“步骤A”,否则执行“步骤B”;另一种是在一个“分支”中均包含算法的步骤A,而在另一个“分支”上不包含算法的任何步骤,符合条件就执行“步骤A”,否则执行这个条件结构后的步骤.
(三)应用示例
例1 任意给定3个正实数,设计一个算法,判断以这3个正实数为三边边长的三角形是否存在,并画出这个算法的程序框图.
算法分析:判断以3个任意给定的正实数为三条边边长的三角形是否存在,只需验证这3个数中任意两个数的和是否大于第3个数.这个验证需要用到条件结构.
算法步骤如下:
第一步,输入3个正实数a,b,c.
第二步,判断a+b>c,b+c>a,c+a>b是否同时成立.若是,则存在这样的三角形;否则,不存在这样的三角形.
程序框图如右图:
点评:根据构成三角形的条件,判断是否满足任意两边之和大于第三边,如果满足则存在这样的三角形,如果不满足则不存在这样的三角形.这种分类讨论思想是
的重点,在画程序框图时,常常遇到需要讨论的问题,这时要用到条件结构.
2例2 设计一个求解一元二次方程ax+bx+c=0的算法,并画出程序框图表示. 2算法分析:我们知道,若判别式Δ=b-4ac>0,则原方程有两个不相等的实数根
,b,,,b,,x=,x=; 122a2a
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ????????????
b若Δ=0,则原方程有两个相等的实数根x=x=; ,122a
若Δ<0,则原方程没有实数根.也就是说,在求解方程之前,可以先判断判别式的符号,根据判断的结果执行不同的步骤,这个过程可以用条件结构实现.
b又因为方程的两个根有相同的部分,为了避免重复计算,可以在计算x和x之前,先计算p=,,122a
,q=. 2a
解决这一问题的算法步骤如下:
第一步,输入3个系数a,b,c. 2第二步,计算Δ=b-4ac.
,b第三步,判断Δ?0是否成立.若是,则计算p=,q=;否则,输出“方程没有实数根”,结束,2a2a
算法.
第四步,判断Δ=0是否成立.若是,则输出x=x=p;否则,计算x=p+q,x=p-q,并输出x,x. 121212程序框图如下:
2例3 设计算法判断一元二次方程ax+bx+c=0是否有实数根,并画出相应的程序框图.
解:算法步骤如下:
第一步,输入3个系数:a,b,c.
2第二步,计算Δ=b,4ac.
第三步,判断Δ?0是否成立.若是,则输出“方程有实根”;否则,输出“方程无实根”.结束算法. 相应的程序框图如右:
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ????????????
2点评:根据一元二次方程的意义,需要计算判别式Δ=b,4ac的值.再分成两种情况处理:(1)当Δ?0时,一元二次方程有实数根;
(2)当Δ,0时,一元二次方程无实数根.该问题实际上是一个分类讨论问题,根据一元二次方程系数的不同情况,最后结果就不同.因而当给出一个一元二次方程时,必须先确定判别式的值,然后再用判别式的值的取值情况确定方程是否有解.该例仅用顺序结构是办不到的,要对判别式的值进行判断,需要用到条件结构.
例4 (1)设计算法,求ax+b=0的解,并画出流程图.
解:对于方程ax+b=0来讲,应该分情况讨论方程的解.
我们要对一次项系数a和常数项b的取值情况进行分类,分类如下:
b1)当a?0时,方程有唯一的实数解是; (,a
(2)当a=0,b=0时,全体实数都是方程的解;
(3)当a=0,b?0时,方程无解.
联想数学中的分类讨论的处理方式,可得如下算法步骤:
b第一步,判断a?0是否成立.若成立,输出结果“解为”. ,a
第二步,判断a=0,b=0是否同时成立.若成立,输出结果“解集为R”.
第三步,判断a=0,b?0是否同时成立.若成立,输出结果“方程无解”,结束算法. 程序框图如下:
点评:这是条件结构叠加问题,条件结构叠加,程序执行时需依次对“条件1”“条件2”“条件3”……都进行判断,只有遇到能满足的条件才执行该条件对应的操作.
(四)知能训练
设计算法,找出输入的三个不相等实数a、b、c中的最大值,并画出流程图.
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ????????????
解:算法步骤:
第一步,输入a,b,c的值.
第二步,判断a>b是否成立,若成立,则执行第三步;否则执行第四步.
第三步,判断a>c是否成立,若成立,则输出a,并结束;否则输出c,并结束. 第四步,判断b>c是否成立,若成立,则输出b,并结束;否则输出c,并结束. 程序框图如下:
点评:条件结构嵌套与条件结构叠加的区别:
(1)条件结构叠加,程序执行时需依次对“条件1”“条件2”“条件3”……都进行判断,只有遇到能满足的条件才执行该条件对应的操作.
(2)条件结构的嵌套中,“条件2”是“条件1”的一个分支,“条件3”是“条件2”的一个分支……依此类推,这些条件中很多在算法执行过程中根据所处的分支位置不同可能不被执行. (3)条件结构嵌套所涉及的“条件2”“条件3”……是在前面的所有条件依次一个一个的满足“分支条件成立”的情况下才能执行的此操作,是多个条件同时成立的叠加和复合.
例5 “特快专递”是目前人们经常使用的异地邮寄信函或托运物品的一种快捷方式.某快递公司规定甲、乙两地之间物品的托运费用根据下列方法计算:
,,0.53,(,50),,f= ,50,0.53,(,50),0.85,(,50).,,,
其中f(单位:元)为托运费,ω为托运物品的重量(单位:千克).
试画出计算费用f的程序框图.
分析:这是一个实际问题,根据数学模型可知,求费用f的计算公式随物品重量ω的变化而有所不同,因此计算时先看物品的重量,在不同的条件下,执行不同的指令,这是条件结构的运用,是二分支条件结构.其中,物品的重量通过输入的方式给出.
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ????????????
解:算法程序框图如右图:
(五)拓展提升
有一城市,市区为半径为15 km的圆形区域,近郊区为距中心15—25 km的范围内的环形地带,距中心25 km以外的为远郊区,如右图所示(市区地价每公顷100万元,近郊区地价每公顷60万元,远郊区地价为每公顷20万元,输入某一点的坐标为(x,y),求该点的地价(
22分析:由该点坐标(x,y),求其与市中心的距离r=x,y,确定是市区、近郊区,还是远郊
100,0,r,15,,
,60,15,r,25,区,进而确定地价p(由题意知,p= ,
,20,r,25.,
解:程序框图如下:
(六)课堂小结
(1)理解两种条件结构的特点和区别.
(2)能用学过的两种条件结构解决常见的算法问题.
(七)作业
习题1.1A组3.
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ????????????
第3课时 循环结构
(一)导入新课
思路1(情境导入)
我们都想生活在一个优美的环境中,希望看到的是碧水蓝天,大家知道工厂的污水是怎样处理的吗,污水进入处理装置后进行第一次处理,如果达不到排放标准,则需要再进入处理装置进行处理,直到达到排放标准.污水处理装置是一个循环系统,对于处理需要反复操作的事情有很大的优势.我们数学中有很多问题需要反复操作,今天我们学习能够反复操作的逻辑结构——循环结构.
思路2(直接导入)
前面我们学习了顺序结构,顺序结构像一条没有分支的河流,奔流到海不复回;上一节我们学习了条件结构,条件结构像有分支的河流最后归入大海;事实上很多水系是循环往复的,今天我们开始学习循环往复的逻辑结构——循环结构.
(二)推进新课、新知探究、提出问题
(1)请大家举出一些常见的需要反复计算的例子.
(2)什么是循环结构、循环体,
(3)试用程序框图表示循环结构.
(4)指出两种循环结构的相同点和不同点.
讨论结果:
(1)例如用二分法求方程的近似解、数列求和等.
(2)在一些算法中,经常会出现从某处开始,按照一定的条件反复执行某些步骤的情况,这就是循环结构.反复执行的步骤称为循环体.
(3)在一些算法中要求重复执行同一操作的结构称为循环结构.即从算法某处开始,按照一定条件重复执行某一处理的过程.重复执行的处理步骤称为循环体.
循环结构有两种形式:当型循环结构和直到型循环结构.
1?当型循环结构,如图(1)所示,它的功能是当给定的条件P成立时,执行A框,A框执行
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ???????????? 完毕后,返回来再判断条件P是否成立,如果仍然成立,返回来再执行A框,如此反复执行A框,直到某一次返回来判断条件P不成立时为止,此时不再执行A框,离开循环结构.继续执行下面的框图.
2?直到型循环结构,如图(2)所示,它的功能是先执行重复执行的A框,然后判断给定的条件P是否成立,如果P仍然不成立,则返回来继续执行A框,再判断条件P是否成立.继续重复操作,直到某一次给定的判断条件P时成立为止,此时不再返回来执行A框,离开循环结构.继续执行下面的框图.
见示意图:
当型循环结构 直到型循环结构
(4)两种循环结构的不同点:直到型循环结构是程序先进入循环体,然后对条件进行判断,如果条件不满足,就继续执行循环体,直到条件满足时终止循环.
当型循环结构是在每次执行循环体前,先对条件进行判断,当条件满足时,执行循环体,否则终止循环.
两种循环结构的相同点: 两种不同形式的循环结构可以看出,循环结构中一定包含条件结构,用于确定何时终止执行循环体.
(三)应用示例
思路1
例1 设计一个计算1+2+……+100的值的算法,并画出程序框图.
算法分析:通常,我们按照下列过程计算1+2+……+100的值.
第1步,0+1=1.
第2步,1+2=3.
第3步,3+3=6.
第4步,6+4=10.
……
第100步,4 950+100=5 050.
显然,这个过程中包含重复操作的步骤,可以用循环结构表示.分析上述计算过程,可以发现每一步都可以表示为第(i-1)步的结果+i=第i步的结果.
为了方便、有效地表示上述过程,我们用一个累加变量S来表示第一步的计算结果,即把S+i的结果仍记为S,从而把第i步表示为S=S+i,
其中S的初始值为0,i依次取1,2,…,100,由于i同时记录了循环的次数,所以也称为计数变量.
解决这一问题的算法是:
第一步,令i=1,S=0.
第二步,若i?100成立,则执行第三步;否则,输出S,结束算法.
第三步,S=S+i.
第四步,i=i+1,返回第二步.
程序框图如右:
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ????????????
上述程序框图用的是当型循环结构,如果用直到型循环结构表示,则程序框图如下:
点评:这是一个典型的用循环结构解决求和的问题,有典型的代表意义,可把它作为一个范例,仔细体会三种逻辑结构在程序框图中的作用,学会画程序框图.
变式训练
123n,,,?, 已知有一列数,设计框图实现求该列数前20项的和( 234n,1
分析:该列数中每一项的分母是分子数加1,单独观察分子,恰好是1,2,3,4,…,n,因此
iS,可用循环结构实现,设计数器i,用i=i+1实现分子,设累加器S,用S=,可实现累加,注i,1意i只能加到20(
解:程序框图如下:
方法一: 方法二:
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ????????????
点评:在数学计算中,i=i+1不成立,S=S+i只有在i=0时才能成立(在计算机程序中,它们被赋予了其他的功能,不再是数学中的“相等”关系,而是赋值关系(变量i用来作计数器,i=i+1的含义是:将变量i的值加1,然后把计算结果再存贮到变量i中,即计数器i在原值的基础上又增加了1(
变量S作为累加器,来计算所求数据之和(如累加器的初值为0,当第一个数据送到变量i中时,累加的动作为S=S+i,即把S的值与变量i的值相加,结果再送到累加器S中,如此循环,则可实现数的累加求和(
例2 某厂2005年的年生产总值为200万元,技术革新后预计以后每年的年生产总值都比上一年增长5%,设计一个程序框图,输出预计年生产总值超过300万元的最早年份.
算法分析:先写出解决本例的算法步骤:
第一步,输入2005年的年生产总值.
第二步,计算下一年的年生产总值.
第三步,判断所得的结果是否大于300,若是,则输出该年的年份,算法结束;否则,返回第二步. 由于“第二步”是重复操作的步骤,所以本例可以用循环结构来实现.我们按照“确定循环体”“初始化变量”“设定循环控制条件”的顺序来构造循环结构.
(1)确定循环体:设a为某年的年生产总值,t为年生产总值的年增长量,n为年份,则循环体为t=0.05a,a=a+t,n=n+1.
(2)初始化变量:若将2005年的年生产总值看成计算的起始点,则n的初始值为2005,a的初始值为200.
(3)设定循环控制条件:当“年生产总值超过300万元”时终止循环,所以可通过判断“a>300”是否成立来控制循环.
程序框图如下:
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ????????????
思路2
例1 设计框图实现1+3+5+7+…+131的算法(
分析:由于需加的数较多,所以要引入循环结构来实现累加(观察所加的数是一组有规律的数(每相临两数相差2),那么可考虑在循环过程中,设一个变量i,用i=i+2来实现这些有规律的数,设一个累加器sum,用来实现数的累加,在执行时,每循环一次,就产生一个需加的数,然后加到累加器sum中(
解:算法如下:
第一步,赋初值i=1,sum=0.
第二步,sum=sum+i,i=i+2.
第三步,如果i?131,则反复执第二步;否则,执行下一步.
第四步,输出sum.
第五步,结束(
程序框图如右图(
点评:(1)设计流程图要分步进行,把一个大的流程图分割成几个小的部分,按照三个基本结构即顺序、条件、循环结构来局部安排,然后把流程图进行整合(
(2)框图画完后,要进行验证,按设计的流程分析是否能实现所求的数的累加,分析条件是否加到131就结束循环,所以我们要注意初始值的设置、循环条件的确定以及循环体内语句的先后顺序,三者要有机地结合起来(最关键的是循环条件,它决定循环次数,可以想一想,为什么条件不是“i<131”或“i=131”,如果是“i<131”,那么会少执行一次循环,131就加不上了(
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ???????????? 例2 高中某班一共有40名学生,设计算法流程图,统计班级数学成绩良好(分数>80)和优秀(分数>90)的人数(
分析:用循环结构实现40个成绩的输入,每循环一次就输入一个成绩s,然后对s的值进行判断.设两个计数器m,n,如果s>90,则m=m+1,如果80
0)的近似解的算法.
算法分析:(1)算法步骤中的“第一步”“第二步”和“第三步”可以用顺序结构来表示(如下图):
(2)算法步骤中的“第四步”可以用条件结构来表示(如下图).在这个条件结构中,“否”分支用“a=m”表示含零点的区间为,m,b,,并把这个区间仍记成,a,b,;“是”分支用“b=m ”表示含零点的区间为,a,m,,同样把这个区间仍记成,a,b,.
(3)算法步骤中的“第五步”包含一个条件结构,这个条件结构与“第三步”“第四步”构成一个循环结构,循环体由“第三步”和“第四步”组成,终止循环的条件是“|a-b|,d或f(m)=0”.在“第五步”中,还包含由循环结构与“输出m”组成的顺序结构(如下图).
(4)将各步骤的程序框图连接起来,并画出“开始”与“结束”两个终端框,就得到了表示整个算法的
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ???????????? 程序框图(如下图).
点评:在用自然语言表述一个算法后,可以画出程序框图,用顺序结构、条件结构和循环结构来表示这个算法,这样表示的算法清楚、简练,便于阅读和交流.
例2 相传古代的印度国王要奖赏国际象棋的发明者,问他需要什么.发明者说:陛下,在国际象棋的第一个格子里面放1粒麦子,在第二个格子里面放2粒麦子,第三个格子放4粒麦子,以后每个格子中的麦粒数都是它前一个格子中麦粒数的二倍,依此类推(国际象棋棋盘共有64个格子),请将这些麦子赏给我,我将感激不尽.国王想这还不容易,就让人扛了一袋小麦,但不到一会儿就没了,最后一算结果,全印度一年生产的粮食也不够.国王很奇怪,小小的“棋盘”,不足100个格子,如此计算怎么能放这么多麦子,试用程序框图表示此算法过程.
63解:将实际问题转化为数学模型,该问题就是要求1+2+4+……+2的和. 程序框图如下:
点评:对于开放式探究问题,我们可以建立数学模型(上面的题目可以与等比数列的定义、性质和公式联系起来)和过程模型来分析算法,通过设计算法以及语言的描述选择一些成熟的办法进行处理.
? ? ? ? ? ? ? ? ?点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ? ? ? ? ? ? ? ? ?
????????????精诚凝聚 =^_^= 成就梦想 ???????????? 例3 乘坐火车时,可以托运货物(从甲地到乙地,规定每张火车客票托运费计算方法是:行李质量不超过50 kg时按0(25 元/kg;超过50 kg而不超过100 kg时,其超过部分按0(35元/kg;超过100 kg时,其超过部分按0(45元/kg(编写程序,输入行李质量,计算出托运的费用(
分析:本题主要考查条件语句及其应用(先解决数学问题,列出托运的费用关于行李质量的函数关系式(设行李质量为x kg,应付运费为y元,则运费公式为:
0.25x,0,x,50,,
,0.25,50,0.35(x,50),50,x,100,y= ,
,0.25,50,0.35,50,0.45(x,100),x,100,,
0.25x,0,x,50,,
,0.35x,5,50,x,100,整理得y= ,
,0.45x,15,x,100.,
要计算托运的费用必须对行李质量分类讨论,因此要用条件语句来实现(
解:算法分析:
第一步,输入行李质量x.
第二步,当x?50时,计算y=0.25x,否则,执行下一步.
第三步,当x?100,计算y=0.35x,5,否则,计算y=0.45x,15.
第四步,输出y(
程序框图如下:
(四)知能训练
2 设计一个用有理数数幂逼近无理指数幂5的算法,画出算法的程序框图.
解:算法步骤:
第一步,给定精确度d,令i=1.
22第二步,取出的到小数点后第i位的不足近似值,记为a;取出的到小数点后第i位的过剩近似值,记为b.
ba第三步,计算m=5-5.
2a5第四步,若m