1.1.2 程序框图与算法的基本逻辑结构
整体设计
教学分析
用自然语言表示的算法步骤有明确的顺序性,但是对于在一定条件下才会被执行的步骤,以及在一定条件下会被重复执行的步骤,自然语言的表示就显得困难,而且不直观、不准确.因此,本节有必要探究使算法表达得更加直观、准确的方法.程序框图用图形的方式表达算法,使算法的结构更清楚、步骤更直观也更精确.为了更好地学好程序框图,我们需要掌握程序框的功能和作用,需要熟练掌握三种基本逻辑结构.
三维目标
1.熟悉各种程序框及流程线的功能和作用.
2.通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程.在具体问题的解决过程中,理解程序框图的三种基本逻辑结构:顺序结构、条件结构、循环结构.
3.通过比较体会程序框图的直观性、准确性.
重点难点
数学重点:程序框图的画法.
数学难点:程序框图的画法.
课时安排
4课时
教学过程
第1课时 程序框图及顺序结构
导入新课
思路1(情境导入)
我们都喜欢外出旅游,优美的风景美不胜收,如果迷了路就不好玩了,问路有时还听不明白,真是急死人,有的同学说买张旅游图不就好了吗,所以外出旅游先要准备好旅游图.旅游图看起来直观、准确,本节将探究使算法表达得更加直观、准确的方法.今天我们开始学习程序框图.
思路2(直接导入)
用自然语言表示的算法步骤有明确的顺序性,但是对于在一定条件下才会被执行的步骤,以及在一定条件下会被重复执行的步骤,自然语言的表示就显得困难,而且不直观、不准确.因此,本节有必要探究使算法表达得更加直观、准确的方法.今天开始学习程序框图.
推进新课
新知探究
提出问题
(1)什么是程序框图?
(2)说出终端框(起止框)的图形符号与功能.
(3)说出输入、输出框的图形符号与功能.
(4)说出处理框(执行框)的图形符号与功能.
(5)说出判断框的图形符号与功能.
(6)说出流程线的图形符号与功能.
(7)说出连接点的图形符号与功能.
(8)总结几个基本的程序框、流程线和它们表示的功能.
(9)什么是顺序结构?
讨论结果:
(1)程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形.
在程序框图中,一个或几个程序框的组合表示算法中的一个步骤;带有方向箭头的流程线将程序框连接起来,表示算法步骤的执行顺序.
(2)椭圆形框:表示程序的开始和结束,称为终端框(起止框).表示开始时只有一个出口;表示结束时只有一个入口.
(3)平行四边形框:表示一个算法输入和输出的信息,又称为输入、输出框,它有一个入口和一个出口.
(4)矩形框:表示计算、赋值等处理操作,又称为处理框(执行框),它有一个入口和一个出口.
(5)菱形框:是用来判断给出的条件是否成立,根据判断结果来决定程序的流向,称为判断框,它有一个入口和两个出口.
(6)流程线:表示程序的流向.
(7)圆圈:连接点.表示相关两框的连接处,圆圈内的数字相同的含义表示相连接在一起.
(8)总结如下表.
图形符号
名称
功能
终端框(起止框)
表示一个算法的起始和结束
输入、输出框
表示一个算法输入和输出的信息
处理框(执行框)
赋值、计算
判断框
判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时标明“否”或“N”
流程线
连接程序框
连接点
连接程序框图的两部分
(9)很明显,顺序结构是由若干个依次执行的步骤组成的,这是任何一个算法都离不开的基本结构.
三种逻辑结构可以用如下程序框图表示:
顺序结构 条件结构 循环结构
应用示例
例1 请用程序框图表示前面讲过的“判断整数n(n>2)是否为质数”的算法.
解:程序框图如下:
点评:程序框图是用图形的方式表达算法,使算法的结构更清楚,步骤更直观也更精确.这里只是让同学们初步了解程序框图的特点,感受它的优点,暂不要求掌握它的画法.
变式训练
观察下面的程序框图,指出该算法解决的问题.
解:这是一个累加求和问题,共99项相加,该算法是求的值.
例2 已知一个三角形三条边的边长分别为a,b,c,利用海伦—秦九韶公式设计一个计算三角形面积的算法,并画出程序框图表示.(已知三角形三边边长分别为a,b,c,则三角形的面积为S=),其中p=.这个公式被称为海伦—秦九韶公式)
算法分析:这是一个简单的问题,只需先算出p的值,再将它代入分式,最后输出结果.因此只用顺序结构应能表达出算法.
算法步骤如下:
第一步,输入三角形三条边的边长a,b,c.
第二步,计算p=.
第三步,计算S=.
第四步,输出S.
程序框图如下:
点评:很明显,顺序结构是由若干个依次执行的步骤组成的,它是最简单的逻辑结构,它是任何一个算法都离不开的基本结构.
变式训练
下图所示的是一个算法的流程图,已知a1=3,输出的b=7,求a2的值.
解:根据题意=7,
∵a1=3,∴a2=11.即a2的值为11.
例3 写出通过尺轨作图确定线段AB的一个5等分点的程序框图.
解:利用我们学过的顺序结构得程序框图如下:
点评:这个算法步骤具有一般性,对于任意自然数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
程序框图如下:
点评:顺序结构只需严格按照传统的解决数学问题的解题思路,将问题解决掉.最后将解题步骤 “细化”就可以.“细化”指的是写出算法步骤、画出程序框图.
拓展提升
如下给出的是计算的值的一个流程图,其中判断框内应填入的条件是______________.
答案:i>10.
课堂小结
(1)掌握程序框的画法和功能.
(2)了解什么是程序框图,知道学习程序框图的意义.
(3)掌握顺序结构的应用,并能解决与顺序结构有关的程序框图的画法.
作业
习题1.1A 1.
设计感想
首先,本节的引入新颖独特,旅游图的故事阐明了学习程序框图的意义.通过丰富有趣的事例让学生了解了什么是程序框图,进而激发学生学习程序框图的兴趣.本节设计题目难度适中,逐步把学生带入知识的殿堂,是一节好的课例.
课件22张PPT。第1课时 程序框图、顺序结构1.1.2 程序框图与算法的基本逻辑结构【课标要求】
1.理解程序框图的含义.
2.掌握各种程序框的画法和功能.
3.掌握算法的顺序结构.
【核心扫描】
1.程序框图的作用及其含义.(重点)
2.用程序框图表示算法.(难点)
程序框图
(1)定义:程序框图(又称______),是一种用______、______及_________来表示算法的图形.
(2)在程序框图中,一个或几个_______的组合表示算法中的一个步骤;带有____的流程线将程序框连接起来,表示算法步骤的_________.
自学导引1.流程图程序框流程线文字说明程序框箭头执行顺序(3)常见的程序框、流程线及各自功能.
:用程序框图表示算法,相对于自然语言描述的算法有什么优点?
提示 程序框图相对于自然语言表述算法,看起来更清晰,更明确,也更接近于计算机的程序设计.
顺序结构
顺序结构是由若干个依次执行的_____组成的,这是任何一个算法都离不开的基本结构.用程序框图表示如图.
2.步骤对程序框图的理解
(1)程序框图主要由程序框和流程线组成.基本的程序框有终端框、输入框、输出框、处理框、判断框,其中起止框是任何程序框图不可缺少的,而输入框、输出框可以用在算法中任何需要输入、输出的位置.
(2)用框图表示算法比较直观、形象,容易理解,通常说“一图胜万言”,所以用程序框图能更清楚地展现算法的逻辑结构.
(3)程序框图中所用的图形必须是大家“约定俗成”的,而不能有任何创新之举,随意编造,只有这样,用程序框图描述的算法才能被学习和交流.名师点睛1.2.构成流程图的图形符号及其作用
(5)一个算法步骤到另一个算法步骤用流程线连接,如果一个程序框图需要分开来画,要在断开处画上连接点,并标出连接的号码.
画程序框图的规则
为了使大家彼此之间能够读懂各自画出的框图,必须遵守一些共同的规则,下面对一些常用的规则作一简单的介绍:
(1)使用标准的程序框图的图形符号.
(2)程序框图一般按照从上到下、从左到右的顺序画.
(3)一个完整的程序框图必须有终端框,用于表示一个算法的开始和结束.
(4)除判断框外,大多程序框图的图形符号只有一个进入点和一个退出点,判断框是唯一具有超过一个退出点的框图符号.
(5)在程序框图的图形符号内,用于描述的语言要简练、清楚.
3.题型一 程序框图的认识和理解 下列关于程序框图的理解,正确的有 ( ).
①任何一个程序框图都必须有起、止框;②输入框只能放在开始框后,输出框只能放在结束框前;③判断框是唯一具有超过一个退出点的图形符号;④对于一个程序而言,判断框内的条件是唯一的.
A.1个 B.2个 C.3个 D.4个
[思路探索] 根据各程序框图的意义判断.
【例1】解析 任何一个程序都必须有开始和结束,从而必须有起、止框;输入和输出框可以用在算法中任何需要输入、输出的位置;判断框内的条件不是唯一的.故①③正确.
答案 B
规律方法 (1)理解程序框图中各框图的功能是解此类题的关键,用程序框图表示算法更直观、清晰、易懂.
(2)判断框是唯一具有超过一个退出点的图形符号.
一种判断框是“是”与“否”两分支的判断,而且有且仅有两个结果;另外一种是多分支判断,可能有几种不同的结果.
(2012·珠海高一检测)下列说法正确的是 ( ).
A.程序框图中的图形符号可以由个人来确定
B. 也可以用来执行计算语句
【变式1】C.程序框图中可以没有输出框,但必须要有输入框
D.用程序框图表达算法,其优点是算法的基本逻辑结构
展现得非常直接
解析 一个完整的程序框图至少要有起止框和输入、输出框,输入、输出框只能用来输入、输出,不能用来执行计算.故选D.
答案 D
已知P0(x0,y0)和直线l:Ax+By+C=0,写出求点P0到直线l的距离d的算法,并用程序框图来描述.题型二 利用顺序结构表示算法【例2】规律方法 应用顺序结构表示算法的步骤:
(1)仔细审题,理清题意,找到解决问题的方法.
(2)梳理解题步骤.
(3)用数学语言描述算法,明确输入量,计算过程,输出量.
(4)用程序框图表示算法过程.
半径为r的圆,面积公式为S=πr2,
当r=10时,写出计算圆面积的算法,
画出程序框图.
解 第一步,将r赋值为10.
第二步,计算S=πr2.
第三步,输出S.
程序框图如图所示.
【变式2】 如图所示是解决某个问题而绘制的流程图,仔细分析各图框内的内容及图框之间的关系,回答下面的问题:
(1)该流程图解决的是怎样的一个问题?
(2)若最终输出的结果y1=3,y2=-2,当x取5时输出的结果5a+b的值应该是多大?
(3)在(2)的前提下,输入的x值越大,输出的ax+b是不是越大?为什么?
(4)在(2)的前提下,当输入的x值为多大时,输出结果ax+b等于0?
题型三 程序框图的应用【例3】理解流程图的意义是解题的关键.
[规范解答] (1)该流程图解决的是求函数f(x)=ax+b的函数值的问题.其中输入的是自变量x的值,输出的是x对应的函数值.(3分)
(2)y1=3,即2a+b=3. ①
y2=-2,即-3a+b=-2. ②
由①②得a=1,b=1.
∴f(x)=x+1.
∴当x取5时,5a+b=f(5)=5×1+1=6. (6分)
(3)输入的x值越大,输出的函数值ax+b越大,
因为f(x)=x+1是R上的增函数. (9分)
(4)令f(x)=x+1=0,得x=-1,因此当输入的x值为-1时,输出的函数值为0. (12分)【题后反思】 高考对程序框图考查的类型之一就是读图,因此考生需要明白程序框图的作用是什么,解决的是一个什么样的问题,这样才能解决相应的问题.
写出下列算法的功能:
(1)图(1)中算法的功能是(a>0,b>0)________________.
(2)图(2)中算法的功能是___________________________.
【变式3】答案 (1)求以a,b为直角边的直角三角形斜边c的长
(2)求两个实数a,b的和
方法技巧 算法中的函数与方程思想
如图所示的程序框图,当输入的x的值为0和4时,输出的值相等,根据该图和下列各小题的条件回答下面几个问题.
【示例】 (1)该程序框图解决的是一个什么问题?
(2)当输入的x的值为3时,输出的f(x)的值为多大?
(3)要想使输出的值最大,输入的x的值应为多大?
(4)按照这个程序框图输出的f(x)值,当x的值大于2时,x值大的输出的f(x)值反而小,为什么?
(5)要想使输出的值等于3,输入的x的值应为多大?
(6)要想使输入的值与输出的值相等,输入的x的值应为多大?
[思路分析] 解题的关键是理解程序框图的含义.
解 (1)该程序框图解决的是求二次函数
f(x)=-x2+mx的函数值的问题.
(2)当输入的x的值为0和4时,输出的值相等,
即f(0)=f(4).
因为f(0)=0,f(4)=-16+4m,
所以-16+4m=0,
所以m=4.所以f(x)=-x2+4x.
因为f(3)=-32+4×3=3,
所以当输入的x的值为3时,输出的f(x)的值为3.
(3)因为f(x)=-x2+4x=-(x-2)2+4,
当x=2时,f(x)max=4,
所以要想使输出的值最大,输入的x的值应为2.
(4)因为f(x)=-(x-2)2+4,
所以函数f(x)在[2,+∞)上是减函数.
所以在[2,+∞)上x值大的对应的函数值反而小,从而当输入的x的值大于2时,x值大的输出的f(x)值反而小.
(5)令f(x)=-x2+4x=3,解得x=1或x=3,
所以要想使输出的值等于3,
输入的x的值应为1或3.
(6)由f(x)=x,即-x2+4x=x,得x=0或x=3,所以要想使输入的值和输出的值相等,输入的x的值应为0或3.
方法点评 (1)本题涉及了一元二次方程与二次函数的问题,由解方程的思想确定字母的取值,同时根据二次函数的单调性研究函数值的大小,二次函数的单调性看开口方向和对称轴.
(2)本题在求解过程中用到了方程及函数的思想,同时要读懂程序框图的含义.
单击此处进入 活页规范训练第2课时 条件结构
导入新课
思路1(情境导入)
我们以前听过这样一个故事,野兽与鸟发生了一场战争,蝙蝠来了,野兽们喊道:你有牙齿是我们一伙的,鸟们喊道:你有翅膀是我们一伙的,蝙蝠一时没了主意.过了一会儿蝙蝠有了一个好办法,如果野兽赢了,就加入野兽这一伙,否则加入另一伙,事实上蝙蝠用了分类讨论思想,在算法和程序框图中也经常用到这一思想方法,今天我们开始学习新的逻辑结构——条件结构.
思路2(直接导入)
前面我们学习了顺序结构,顺序结构像是一条没有分支的河流,奔流到海不复回,事实上多数河流是有分支的,今天我们开始学习有分支的逻辑结构——条件结构.
推进新课
新知探究
提出问题
(1)举例说明什么是分类讨论思想?
(2)什么是条件结构?
(3)试用程序框图表示条件结构.
(4)指出条件结构的两种形式的区别.
讨论结果:
(1)例如解不等式ax>8(a≠0),不等式两边需要同除a,需要明确知道a的符号,但条件没有给出,因此需要进行分类讨论,这就是分类讨论思想.
(2)在一个算法中,经常会遇到一些条件的判断,算法的流程根据条件是否成立有不同的流向.条件结构就是处理这种过程的结构.
(3)用程序框图表示条件结构如下.
条件结构:先根据条件作出判断,再决定执行哪一种操作的结构就称为条件结构(或分支结构),如图1所示.执行过程如下:条件成立,则执行A框;不成立,则执行B框.
图1 图2
注:无论条件是否成立,只能执行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 设计一个求解一元二次方程ax2+bx+c=0的算法,并画出程序框图表示.
算法分析:我们知道,若判别式Δ=b2-4ac>0,则原方程有两个不相等的实数根
x1=,x2=;
若Δ=0,则原方程有两个相等的实数根x1=x2=;
若Δ<0,则原方程没有实数根.也就是说,在求解方程之前,可以先判断判别式的符号,根据判断的结果执行不同的步骤,这个过程可以用条件结构实现.
又因为方程的两个根有相同的部分,为了避免重复计算,可以在计算x1和x2之前,先计算p=,q=.
解决这一问题的算法步骤如下:
第一步,输入3个系数a,b,c.
第二步,计算Δ=b2-4ac.
第三步,判断Δ≥0是否成立.若是,则计算p=,q=;否则,输出“方程没有实数根”,结束算法.
第四步,判断Δ=0是否成立.若是,则输出x1=x2=p;否则,计算x1=p+q,x2=p-q,并输出x1,x2.
程序框图如下:
例3 设计算法判断一元二次方程ax2+bx+c=0是否有实数根,并画出相应的程序框图.
解:算法步骤如下:
第一步,输入3个系数:a,b,c.
第二步,计算Δ=b2-4ac.
第三步,判断Δ≥0是否成立.若是,则输出“方程有实根”;否则,输出“方程无实根”.结束算法.
相应的程序框图如右:
点评:根据一元二次方程的意义,需要计算判别式Δ=b2-4ac的值.再分成两种情况处理:(1)当Δ≥0时,一元二次方程有实数根;
(2)当Δ<0时,一元二次方程无实数根.该问题实际上是一个分类讨论问题,根据一元二次方程系数的不同情况,最后结果就不同.因而当给出一个一元二次方程时,必须先确定判别式的值,然后再用判别式的值的取值情况确定方程是否有解.该例仅用顺序结构是办不到的,要对判别式的值进行判断,需要用到条件结构.
例4 (1)设计算法,求ax+b=0的解,并画出流程图.
解:对于方程ax+b=0来讲,应该分情况讨论方程的解.
我们要对一次项系数a和常数项b的取值情况进行分类,分类如下:
(1)当a≠0时,方程有唯一的实数解是;
(2)当a=0,b=0时,全体实数都是方程的解;
(3)当a=0,b≠0时,方程无解.
联想数学中的分类讨论的处理方式,可得如下算法步骤:
第一步,判断a≠0是否成立.若成立,输出结果“解为”.
第二步,判断a=0,b=0是否同时成立.若成立,输出结果“解集为R”.
第三步,判断a=0,b≠0是否同时成立.若成立,输出结果“方程无解”,结束算法.
程序框图如下:
点评:这是条件结构叠加问题,条件结构叠加,程序执行时需依次对“条件1”“条件2”“条件3”……都进行判断,只有遇到能满足的条件才执行该条件对应的操作.
知能训练
设计算法,找出输入的三个不相等实数a、b、c中的最大值,并画出流程图.
解:算法步骤:
第一步,输入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 “特快专递”是目前人们经常使用的异地邮寄信函或托运物品的一种快捷方式.某快递公司规定甲、乙两地之间物品的托运费用根据下列方法计算:
f=
其中f(单位:元)为托运费,ω为托运物品的重量(单位:千克).
试画出计算费用f的程序框图.
分析:这是一个实际问题,根据数学模型可知,求费用f的计算公式随物品重量ω的变化而有所不同,因此计算时先看物品的重量,在不同的条件下,执行不同的指令,这是条件结构的运用,是二分支条件结构.其中,物品的重量通过输入的方式给出.
解:算法程序框图如右图:
拓展提升
有一城市,市区为半径为15 km的圆形区域,近郊区为距中心15—25 km的范围内的环形地带,距中心25 km以外的为远郊区,如右图所示.市区地价每公顷100万元,近郊区地价每公顷60万元,远郊区地价为每公顷20万元,输入某一点的坐标为(x,y),求该点的地价.
分析:由该点坐标(x,y),求其与市中心的距离r=,确定是市区、近郊区,还是远郊区,进而确定地价p.由题意知,p=
解:程序框图如下:
课堂小结
(1)理解两种条件结构的特点和区别.
(2)能用学过的两种条件结构解决常见的算法问题.
作业?
习题1.1A组3.
设计感想
本节采用引人入胜的方法引入正课,选用的例题难度适中,有的经典实用,有的新颖独特,每个例题都是很好的素材.条件结构是逻辑结构的核心,是培养学生逻辑推理的好素材,本节设计符合新课标精神,难度设计略高于教材.
课件19张PPT。【课标要求】
1.进一步熟悉程序框图的画法.
2.掌握条件结构的程序框图的画法.
3.能用条件结构框图描述实际问题.
【核心扫描】
1.用条件结构描述算法.(重点)
2.用条件结构解决实际问题.(难点)
第2课时 条件结构条件结构
在一个算法中,经常会遇到一些__________,算法的流程根据条件是否成立有不同的____,条件结构就是处理这种过程的结构.
自学导引1.条件的判断流向 :条件结构中的判断框有两个出口,由此说明条件结构执行的结果不唯一,对吗?
提示 不对.判断框虽然有两个出口,但根据条件是否成立,选择的出口是确定的,故执行结果也是唯一的.
2.常见的条件结构用程序框图表示为下面两种形式
对条件结构的理解
(1)条件结构是程序框图的重要组成部分.其特点是:先判断后执行.
(2)在利用条件结构画程序框图时要注意两点:一是需要判断条件是什么,二是条件判断后分别对应着什么样的结果.
(3)凡是必须先根据条件作出判断然后再进行哪一个步骤的问题,在画程序框图时,必须引入一个判断框应用条件结构.
名师点睛1.顺序结构与条件结构的共性
(1)只有一个入口.
(2)只有一个出口.请注意一个菱形判断框有两个出口,而一个条件结构只有一个出口.不要将菱形框的出口和条件结构的出口混为一谈.2.(3)结构内的每一部分都有机会被执行到.也就是说对每一个框来说都应当有一条从入口到出口的路径通过它.象图中没有一条从入口到出口的路拓展 在一个问题中经常要进行多次判断,这就需要条件结构嵌套来进行解决.
径通过它,就是不符合要求的流程图.两种基本结构的这些共同特点,也是检查一个流程图或算法是否正确、合理的方法和试金石.
题型一 简单条件结构的设计 输入两个数a,b,打印出较大的那个数,试用程序框图表示其算法.
[思路探索] 先输入a,b,判断a,b的大小,若a>b,则输出a.若a<b,则输出b.
解 算法步骤如下:
第一步,输入两个数a,b.
第二步,如果a>b,则输出a;否则,输出b.
程序框图如图所示.
【例1】规律方法 解决这类问题时,首先对问题设置的条件作出判断,设置好判断框内的条件,然后根据条件是否成立选择不同的流向.
如图所示的程序框图,若a=5,则输出b=________.
【变式1】答案 26
题型二 条件结构的嵌套【例2】[思路探索] (1)该函数是分段函数,因此当给出一个自变量x的值时,需先判断x的范围,然后确定利用哪一段的解析式求函数值.
(2)画程序框图时,必须采用条件结构,因为函数解析式分了三段,所以需要两个判断框,即进行两次判断.
解 算法如下:
第一步,输入x.
第二步,如果x<0,那么使y=2x-1,输出y;否则,执行第三步.
第三步,如果x<1,那么使y=x+1,输出y;否则,执行第四步.
第四步,y=x+2.
第五步,输出y.
程序框图如图所示.
规律方法 (1)解决分段函数求值问题一般采用条件结构来设计算法.
(2)对于判断具有两个以上条件的问题,往往需要用到条件结构的嵌套,这时要注意嵌套的次序.
【变式2】解 算法如下:
第一步,输入x.
第二步,若x>0,则y=-1;
若x=0,则y=0;若x<0,则y=1.
第三步,输出函数值y.
程序框图如图所示.
某居民区的物业管理部门每月向居民收取卫生费,计算方法是:3人和3人以下的住户,每户收取5元;超过3人的住户,每超出一人加收1.2元.设计一个算法,根据住户的人数,计算应收取的卫生费,并画出程序框图.题型三 条件结构的实际应用【例3】这是一个分段函数求值问题,可用条件结构实现算法.
算法如下:
第一步:输入x.
第二步:若x≤3,则y=5;否则,y=5+1.2(x-3).
第三步:输出y.(6分)
程序框图如图所示.
(12分)【题后反思】 与现实生活有关的题目经常需用到条件结构.解答时,首先根据题意写出函数表达式,然后设计成程序框图,解答此题的关键是写出函数解析式.
【变式3】试画出路程为s千米时行李托运费用M的程序框图.
解 算法如下:
第一步:输入物品质量w、路程s;
第二步:若w>30.那么f=0.4×30+0.5(w-30);否则,f=0.4w;
第三步:计算M=s×f;
第四步:输出M.
程序框图如图所示.
方法技巧 分类讨论思想在条件结构中的应用
分类讨论的思想在算法中有着广泛的应用,特别是在算法的“条件结构”中,分类讨论的思想彰显得特别明显.
给定一个正整数n,若n为奇数,则把n乘3加1;若n为偶数,则把n除以2.写出算法,并画出程序框图.
【示例】 方法点评 (1)题中n是奇数和n是偶数时的计算方式不同,所以需对n的奇偶性加以判断,然后计算结果.
(2)注意该题判断框内的内容为“n为奇数”,所以当n为奇数时,则按“是”分支执行;否则,按“否”分支执行.
单击此处进入 活页规范训练第3课时 循环结构
导入新课
思路1(情境导入)
我们都想生活在一个优美的环境中,希望看到的是碧水蓝天,大家知道工厂的污水是怎样处理的吗?污水进入处理装置后进行第一次处理,如果达不到排放标准,则需要再进入处理装置进行处理,直到达到排放标准.污水处理装置是一个循环系统,对于处理需要反复操作的事情有很大的优势.我们数学中有很多问题需要反复操作,今天我们学习能够反复操作的逻辑结构——循环结构.
思路2(直接导入)
前面我们学习了顺序结构,顺序结构像一条没有分支的河流,奔流到海不复回;上一节我们学习了条件结构,条件结构像有分支的河流最后归入大海;事实上很多水系是循环往复的,今天我们开始学习循环往复的逻辑结构——循环结构.
推进新课
新知探究
提出问题
(1)请大家举出一些常见的需要反复计算的例子.
(2)什么是循环结构、循环体?
(3)试用程序框图表示循环结构.
(4)指出两种循环结构的相同点和不同点.
讨论结果:
(1)例如用二分法求方程的近似解、数列求和等.
(2)在一些算法中,经常会出现从某处开始,按照一定的条件反复执行某些步骤的情况,这就是循环结构.反复执行的步骤称为循环体.
(3)在一些算法中要求重复执行同一操作的结构称为循环结构.即从算法某处开始,按照一定条件重复执行某一处理的过程.重复执行的处理步骤称为循环体.
循环结构有两种形式:当型循环结构和直到型循环结构.
1°当型循环结构,如图(1)所示,它的功能是当给定的条件P成立时,执行A框,A框执行完毕后,返回来再判断条件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,返回第二步.
程序框图如右:
上述程序框图用的是当型循环结构,如果用直到型循环结构表示,则程序框图如下:
点评:这是一个典型的用循环结构解决求和的问题,有典型的代表意义,可把它作为一个范例,仔细体会三种逻辑结构在程序框图中的作用,学会画程序框图.
变式训练
已知有一列数,设计框图实现求该列数前20项的和.
分析:该列数中每一项的分母是分子数加1,单独观察分子,恰好是1,2,3,4,…,n,因此可用循环结构实现,设计数器i,用i=i+1实现分子,设累加器S,用S=,可实现累加,注意i只能加到20.
解:程序框图如下:
方法一: 方法二:
点评:在数学计算中,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”是否成立来控制循环.
程序框图如下:
思路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就加不上了.
例2 高中某班一共有40名学生,设计算法流程图,统计班级数学成绩良好(分数>80)和优秀(分数>90)的人数.
分析:用循环结构实现40个成绩的输入,每循环一次就输入一个成绩s,然后对s的值进行判断.设两个计数器m,n,如果s>90,则m=m+1,如果80解:程序框图如下图:
知能训练
由相应的程序框图如右图,补充完整一个计算1+2+3+…+100的值的算法.(用循环结构)
第一步,设i的值为_____________.
第二步,设sum的值为_____________.
第三步,如果i≤100执行第_____________步,否则,转去执行第_____________步.
第四步,计算sum+i并将结果代替_____________.
第五步,计算_____________并将结果代替i.
第六步,转去执行第三步.
第七步,输出sum的值并结束算法.
分析:流程图各图框的内容(语言和符号)要与算法步骤相对应,在流程图中算法执行的顺序应按箭头方向进行.
解:第一步,设i的值为1.
第二步,设sum的值为0.
第三步,如果i≤100,执行第四步,否则,转去执行第七步.
第四步,计算sum+i并将结果代替sum.
第五步,计算i+1并将结果代替i.
第六步,转去执行第三步.
第七步,输出sum的值并结束算法.
拓展提升
设计一个算法,求1+2+4+…+249的值,并画出程序框图.
解:算法步骤:
第一步,sum=0.
第二步,i=0.
第三步,sum=sum+2i.
第四步,i=i+1.
第五步,判断i是否大于49,若成立,则输出sum,结束.否则,返回第三步重新执行.
程序框图如右图:
点评:(1)如果算法问题里涉及的运算进行了许多次重复的操作,且先后参与运算的数之间有相同的规律,就可引入变量循环参与运算(我们称之为循环变量),应用于循环结构.在循环结构中,要注意根据条件设计合理的计数变量、累加和累乘变量及其个数等,特别要求条件的表述要恰当、精确.
(2)累加变量的初始值一般取0,而累乘变量的初始值一般取1.
课堂小结
(1)熟练掌握两种循环结构的特点及功能.
(2)能用两种循环结构画出求和等实际问题的程序框图,进一步理解学习算法的意义.
作业
习题1.1A组2.
设计感想
本节的引入抓住了本节的特点,利用计算机进行循环往复运算,解决累加、累乘等问题.循环结构是逻辑结构中的难点,它一定包含一个条件结构,它能解决很多有趣的问题.本节选用了大量精彩的例题,对我们系统掌握程序框图有很大的帮助.
第4课时 程序框图的画法
导入新课
思路1(情境导入)
一条河流有时像顺序结构,奔流到海不复回;有时像条件结构分分合合向前进;有时像循环结构,虽有反复但最后流入大海.一个程序框图就像一条河流包含三种逻辑结构,今天我们系统学习程序框图的画法.
思路2(直接导入)
前面我们学习了顺序结构、条件结构、循环结构,今天我们系统学习程序框图的画法.
推进新课
新知探究
提出问题
(1)请大家回忆顺序结构,并用程序框图表示.
(2)请大家回忆条件结构,并用程序框图表示.
(3)请大家回忆循环结构,并用程序框图表示.
(4)总结画程序框图的基本步骤.
讨论结果:
(1)顺序结构是由若干个依次执行的步骤组成的,这是任何一个算法都离不开的基本结构.框图略.
(2)在一个算法中,经常会遇到一些条件的判断,算法的流程根据条件是否成立有不同的流向.条件结构就是处理这种过程的结构.框图略.
(3)在一些算法中要求重复执行同一操作的结构称为循环结构.即从算法某处开始,按照一定条件重复执行某一处理过程.重复执行的处理步骤称为循环体.
循环结构有两种形式:当型循环结构和直到型循环结构.框图略.
(4)从前面的学习可以看出,设计一个算法的程序框图通常要经过以下步骤:
第一步,用自然语言表达算法步骤.
第二步,确定每一个算法步骤所包含的逻辑结构,并用相应的程序框表示,得到该步骤的程序框图.
第三步,将所有步骤的程序框图用流程线连接起来,并加上终端框,得到表示整个算法的程序框图.
应用示例
例1 结合前面学过的算法步骤,利用三种基本逻辑结构画出程序框图,表示用“二分法”求方程x2-2=0(x>0)的近似解的算法.
算法分析:(1)算法步骤中的“第一步”“第二步”和“第三步”可以用顺序结构来表示(如下图):
(2)算法步骤中的“第四步”可以用条件结构来表示(如下图).在这个条件结构中,“否”分支用“a=m”表示含零点的区间为[m,b],并把这个区间仍记成[a,b];“是”分支用“b=m ”表示含零点的区间为[a,m],同样把这个区间仍记成[a,b].
(3)算法步骤中的“第五步”包含一个条件结构,这个条件结构与“第三步”“第四步”构成一个循环结构,循环体由“第三步”和“第四步”组成,终止循环的条件是“|a-b|<d或f(m)=0”.在“第五步”中,还包含由循环结构与“输出m”组成的顺序结构(如下图).
(4)将各步骤的程序框图连接起来,并画出“开始”与“结束”两个终端框,就得到了表示整个算法的程序框图(如下图).
点评:在用自然语言表述一个算法后,可以画出程序框图,用顺序结构、条件结构和循环结构来表示这个算法,这样表示的算法清楚、简练,便于阅读和交流.
例2 相传古代的印度国王要奖赏国际象棋的发明者,问他需要什么.发明者说:陛下,在国际象棋的第一个格子里面放1粒麦子,在第二个格子里面放2粒麦子,第三个格子放4粒麦子,以后每个格子中的麦粒数都是它前一个格子中麦粒数的二倍,依此类推(国际象棋棋盘共有64个格子),请将这些麦子赏给我,我将感激不尽.国王想这还不容易,就让人扛了一袋小麦,但不到一会儿就没了,最后一算结果,全印度一年生产的粮食也不够.国王很奇怪,小小的“棋盘”,不足100个格子,如此计算怎么能放这么多麦子?试用程序框图表示此算法过程.
解:将实际问题转化为数学模型,该问题就是要求1+2+4+……+263的和.
程序框图如下:
点评:对于开放式探究问题,我们可以建立数学模型(上面的题目可以与等比数列的定义、性质和公式联系起来)和过程模型来分析算法,通过设计算法以及语言的描述选择一些成熟的办法进行处理.
例3 乘坐火车时,可以托运货物.从甲地到乙地,规定每张火车客票托运费计算方法是:行李质量不超过50 kg时按0.25?元/kg;超过50 kg而不超过100 kg时,其超过部分按0.35元/kg;超过100 kg时,其超过部分按0.45元/kg.编写程序,输入行李质量,计算出托运的费用.
分析:本题主要考查条件语句及其应用.先解决数学问题,列出托运的费用关于行李质量的函数关系式.设行李质量为x kg,应付运费为y元,则运费公式为:
y=
整理得y=
要计算托运的费用必须对行李质量分类讨论,因此要用条件语句来实现.
解:算法分析:
第一步,输入行李质量x.
第二步,当x≤50时,计算y=0.25x,否则,执行下一步.
第三步,当x≤100,计算y=0.35x-5,否则,计算y=0.45x-15.
第四步,输出y.
程序框图如下:
知能训练
设计一个用有理数数幂逼近无理指数幂的算法,画出算法的程序框图.
解:算法步骤:
第一步,给定精确度d,令i=1.
第二步,取出的到小数点后第i位的不足近似值,记为a;取出的到小数点后第i位的过剩近似值,记为b.
第三步,计算m=5b-5a.
第四步,若m第五步,得到的近似值为5a.
程序框图如下:
拓展提升
求,画出程序框图.
分析:如果采用逐步计算的方法,利用顺序结构来实现,则非常麻烦,由于前后的运算需重复多次相同的运算,所以应采用循环结构,可用循环结构来实现其中的规律.观察原式中的变化的部分及不变项,找出总体的规律是4+,要实现这个规律,需设初值x=4.
解:程序框图如下:
课堂小节
(1)进一步熟悉三种逻辑结构的应用,理解算法与程序框图的关系.
(2)根据算法步骤画出程序框图.
作业
习题1.1B组1、2.
设计感想
本节是前面内容的概括和总结,在回忆前面内容的基础上,选择经典的例题,进行了详尽的剖析,这样降低了学生学习的难度.另外,本节的练习难度适中,并且多为学生感兴趣的问题,这样为学生学好本节内容作好充分准备,希望大家喜欢这一节课.