程序框图与算法的基本逻辑结构.ppt
《程序框图与算法的基本逻辑结构.ppt》由会员分享,可在线阅读,更多相关《程序框图与算法的基本逻辑结构.ppt(48页珍藏版)》请在冰点文库上搜索。
![程序框图与算法的基本逻辑结构.ppt](https://file1.bingdoc.com/fileroot1/2023-4/30/ea0bfe13-5916-44ae-997f-f2bf0a8813c3/ea0bfe13-5916-44ae-997f-f2bf0a8813c31.gif)
,算法与程序框图,把大象放进冰箱里需要几步?
哈哈,2000年春晚小品钟点工,1、把冰箱门打开,2、把大象装进去,3、把冰箱门关上,一、复习引入,假设要喝一杯茶有以下几个步骤:
a.烧水b.洗刷水壶c.找茶叶d.洗刷茶具e.沏茶,请问你怎样安排?
badce,bacde,分析:
在初中,解二元一次方程组你学过哪些方法?
加减消元法和代入消元法,问题1:
求二元一次方程组的解.,二、提出问题,+2,得5x=1.,解,得.,-2,得5y3.,解,得.,第一步,,第二步,,第三步,,第四步,,第五步,,得到方程组的解为.,解二元一次方程组,二、提出问题,第一步,-,得.,第二步,解,得.,第四步,解,得.,这五个步骤就是解二元一次方程组的一个算法.,三、算法概念的理解,定义:
我们把用来解决某一类问题的明确和有限的步骤叫做算法。
算法通常可以编成计算机程序,让计算机执行并解决。
算法必须符合以下标准:
1.算法的每一步要做什么必须是明确的;2.算法的每一步都应当能有效的执行,并得到确定的结果;3.算法必须在有限步内完成,1.下列说法中正确的个数有()求解某一类问题的算法是唯一的;算法必须在有限步操作之后停止;算法的每一步操作必须是明确的,不能有歧义或模糊;算法执行后一定产生确定的结果。
A.1B.2C.3D.4,C,2下列四种叙述能称为算法的是()A.在家里一般是妈妈做饭B.做米饭要刷锅,淘米,添水,加热这些步骤C.在野外做饭叫野炊D.做饭必须要有米,B,例题.用二分法设计一个求方程x2-2=0(x0)的近似根的算法.(精确度为0.005),第一步:
第二步:
第三步:
第四步:
第五步:
令,,给定精确度d.,确定区间a,b,,满足f(a)f(b)0.,取区间中点m=,若f(a)f(m)0,则含零点的区间为,否则,含零点的区间为,将新得到的含零点的区间仍记为a,b;,判断|a-b|d是否成立或f(m)是否等于0.,若是,则m是方程的近似解;,否则,返回,a,m,m,b.,第三步.,1、任意给定一个正实数,设计一个算法求以这个数为半径的圆的面积.,第一步:
第二步:
第三步:
给定一个正实数r;,计算以r为半径的圆的面积S=r2;,得到圆的面积S.,教材5页练习,2、任意给定一个大于1的正整数n,设计一个算法求出n的所有因数.,第一步:
第四步:
第五步:
给定一个大于1的正整数n.,令i=1.,判断“r=0”是否成立,若是,则i是n的因数,否则,i不是n的因数.,使i的值增加1,仍用i表示,教材5页练习,第二步:
第三步:
用i除n,得到余数r;,第六步:
判断in是否成立,若是,则结束算法,否则返回第三步,写出过P(a1,b1)、Q(a2,b2)两点直线斜率的算法:
第一步:
第二步:
第三步:
取x1=a1,y1=b1,x2=a2,y2=b2;,若x1=x2,输出斜率不存在;,若x1x2,计算,第四步:
输出结果。
练习3,有8个小球,其中7个重量相同,仅有一个较重,用天平如何称出那个重的小球。
算法
(1):
把8个小球分成四组,依次将每组放在天平上,直到某一组天平不平衡,就可确定重的小球,最多需称4次。
算法
(2):
第一步:
从8个小球中任取6个小球,将这6个小球每边3个置于天平上;第二步:
若天平平衡,则表明重的小球在剩余的2个小球中,只需将那两个小球放在天平上再称一次就可找到重的那个小球;第三步:
若天平不平衡,则从较重的一边的3个球中任取2个球称量,若平衡,则剩下的那个即为要找的那个小球,若不平衡,则重的那边就是要找的小球。
算法
(2)只需2次称量,比算法
(1)优越。
练习4,“判断整数n(n2)是否为质数”的算法步骤如何?
如何将这些步骤更直观的表达出来呢?
知识探究:
算法的程序框图:
第一步,给定一个大于2的整数n;,第二步,令i=2;,第三步,用i除n,得到余数r;,第四步,判断“r=0”是否成立.若是,则,第五步,判断“i(n-1)”是否成立,若是,,n不是质数,结束算法;,将i的值增加1,仍用i表示;,否则,,则n是质数,结束算法;,否则,,返回第三步.,输出“n是质数”,输出“n不是质数”,in-1或r=0?
是,是,输出“n是质数”,输出“n不是质数”,in-1或r=0?
是,是,这种表示算法的图形称为算法的程序框图又称流程图,其中的多边形叫做程序框,带方向箭头的线叫做流程线,你能指出程序框图的含义吗?
-用程序框、流程线及文字说明来表示算法的图形.,在上述程序框图中,有4种程序框,2种流程线,它们分别有何特定的名称和功能?
终端框(起止框),输入、输出框,处理框(执行框),判断框,流程线,表示一个算法的起始和结束,表示一个算法输入和输出的信息,赋值、计算,判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时标明“否”或“N”,连接程序框,表示算法步骤的执行顺序,在逻辑结构上,“判断整数n(n2)是否为质数”的程序框图由几部分组成?
顺序结构,循环结构,条件结构,算法的顺序结构:
是由若干个依次执行的步骤组成的.这是任何一个算法都离不开的基本结构,用程序框图可以表示为:
若一个三角形的三条边长分别为a,b,c,令,则三角形的面积.你能利用这个公式设计一个计算三角形面积的算法步骤吗?
第一步,输入三角形三条边的边长a,b,c.,第二步,计算.,第三步,计算.,第四步,输出S.,例3:
上述算法的程序框图如何表示?
1、任意给定一个正实数,设计一个算法求以这个数为半径的圆的面积.,第一步:
第二步:
第三步:
给定一个正实数r;,计算以r为半径的圆的面积S=r2;,得到圆的面积S.,教材5页练习,你能画出这个算法的程序框图吗?
课内巩固训练1:
已知P0(x0,y0)和直线l:
Ax+By+C=0,写出求点P0到直线l的距离d的算法,并用程序框图来描述。
第一步:
第二步:
第三步:
输入x0,y0,A,B,C.,计算,输出d.,输入x0,y0,A,B,C,算法的条件结构:
在某些问题的算法中,有些步骤只有在一定条件下才会被执行,算法的流程因条件是否成立而变化.在算法的程序框图中,由若干个在一定条件下才会被执行的步骤组成的逻辑结构,称为条件结构,用程序框图可以表示为下面两种形式:
满足条件?
是,否,步骤A,步骤B,满足条件?
是,否,步骤A,a+bc,a+cb,b+ca是否同时成立?
任意给定3个正实数,设计一个算法,判断以这3个数为三边边长的三角形是否存在.画出这个算法的程序框图.,第一步:
输入3个正实数a,b,c;,第二步:
判断a+bc,a+cb,b+ca是否同时成立,若是,则存在这样的三角形;否则,不存在这样的三角形.,例4:
算法步骤如下:
开始,输入a,b,c,存在这样的三角形,不存在这样的三角形,结束,否,是,设计一个求解一元二次方程ax2+bx+c=0的算法,并画出程序框图。
例5:
算法步骤如下:
开始,输入a,b,c,x1=p+q,x2=p-q,输出x1,x2,输出“方程没有实数根”,输出p,结束,否,是,否,是,写出过P(a1,b1)、Q(a2,b2)两点直线斜率的算法:
第一步:
第二步:
第三步:
取x1=a1,y1=b1,x2=a2,y2=b2;,若x1=x2,输出斜率不存在;,若x1x2,计算,第四步:
输出结果。
练习3,你能画出这个算法的程序框图吗?
x1=x2?
是,否,开始,结束,输入x1,y1,x2,y2,输出斜率不存在,在算法的程序框图中,由按照一定的条件反复执行的某些步骤组成的逻辑结构,称为循环结构,反复执行的步骤称为循环体,那么循环结构中一定包含条件结构吗?
算法的循环结构:
循环体,满足条件?
是,否,循环体,满足条件?
是,否,在执行了一次循环体后,对条件进行判断,如果条件不满足,就继续执行循环体,直到条件满足时终止循环.直到型循环.,在每次执行循环体前,对条件进行判断,如果条件满足,就执行循环体,否则终止循环当型循环.,思考4:
计算1+2+3+100的值可按如下过程进行:
第1步,0+1=1.第2步,1+2=3.第3步,3+3=6.第4步,6+4=10.第100步,4950+100=5050.,第四步,判断i100是否成立.若是,则输出S,结束算法;否则,返回第二步.,第一步,令i=1,S=0.,第二步,计算S+i,仍用S表示.,第三步,计算i+1,仍用i表示.,解决这一问题的算法是:
思考:
用直到型循环结构,这个算法的程序框图如何表示?
用当型循环呢?
直到型循环:
是,输出S,输出S,否,是,i100?
当型循环:
练习1:
当型循环结构,是,i6?
否,i6?
是,否,直到型循环结构,画出123456的程序框图,练习:
教材20页习题A组2:
当型循环结构,是,否,是,否,直到型循环结构,直到型循环:
是,否,是,i100?
i=i+1,当型循环:
输入n,输入n,输出S,输出S,某工厂2005年的年生产总值为200万元,技术革新后预计以后每年的年生产总值都比上一年增长5%.设计一个程序框图,输出预计年生产总值超过300万元的最早年份.,第三步,判断所得的结果是否大于300.若是,则输出该年的年份;否则,返回第二步.,第一步,输入2005年的年生产总值.,第二步,计算下一年的年生产总值.,算法分析:
(3)设定循环控制条件:
当“a300”时终止循环.,
(1)确定循环体:
设a为某年的年生产总值,t为年生产总值的年增长量,n为年份,则t=0.05a,a=a+t,n=n+1.,
(2)初始化变量:
n=2005,a=200.,循环结构:
例5:
程序框图:
在学习上,我们要求对实际问题能用自然语言设计一个算法,再根据算法的逻辑结构画出程序框图,同时,还要能够正确阅读、理解程序框图所描述的算法的含义,这需要我们对程序框图的画法有进一步的理解和认识.,程序框图的画法:
令,第一步:
第二步:
第三步:
第四步:
第五步:
,给定精确度d.,确定区间a,b,,满足f(a)f(b)0.,取区间中点m=,若f(a)f(m)0,则含零点的区间为,否则,含零点的区间为,将新得到的含零点的区间仍记为a,b;,判断|a-b|d是否成立或f(m)是否等于0.,若是,则m是方程的近似解;,否则,返回,a,m,m,b.,第三步.,用“二分法”求方程x2-2=0(x0)的近似解的算法如何设计?
该算法中哪几个步骤可以用顺序结构来表示?
这个顺序结构的程序框图如何?
令,第一步:
第二步:
第三步:
第四步:
第五步:
,给定精确度d.,确定区间a,b,,满足f(a)f(b)0.,取区间中点m=,若f(a)f(m)0,则含零点的区间为,否则,含零点的区间为,将新得到的含零点的区间仍记为a,b;,判断|a-b|d是否成立或f(m)是否等于0.,若是,则m是方程的近似解;,否则,返回,a,m,m,b.,第三步.,令,第一步:
第二步:
,给定精确度d.,确定区间a,b,,满足f(a)f(b)0.,f(x)=x2-2,输入精确度d和初始值a,b,该算法中哪几个步骤可以用顺序结构来表示?
这个顺序结构的程序框图如何?
第三步:
取区间中点m=,该算法中第四步是什么逻辑结构?
这个步骤用程序框图如何表示?
第四步:
若f(a)f(m)0,否则,含零点的区间为,将新得到的含零点的区间仍记为a,b;,a,m,是,否,令,第一步:
第二步:
第三步:
第四步:
第五步:
,给定精确度d.,确定区间a,b,,满足f(a)f(b)0.,取区间中点m=,若f(a)f(m)0,则含零点的区间为,否则,含零点的区间为,将新得到的含零点的区间仍记为a,b;,判断|a-b|d是否成立或f(m)是否等于0.,若是,则m是方程的近似解;,否则,返回,a,m,m,b.,第三步.,该算法中哪几个步骤构成循环结构?
这个循环结构用程序框图如何表示?
第三步:
第四步:
第五步:
取区间中点m=,若f(a)f(m)0,则含零点的区间为,否则,含零点的区间为,将新得到的含零点的区间仍记为a,b;,判断|a-b|d是否成立或f(m)是否等于0.,若是,则m是方程的近似解;,否则,返回,a,m,m,b.,第三步.,该算法中哪几个步骤构成循环结构?
这个循环结构用程序框图如何表示?
第三步,第四步,|a-bd或f(m)=0?
输出m,是,否,程序框图:
是,否,是,否,第二步,确定每个算法步骤所包含的逻辑结构,并用相应的程序框图表示.,第一步,用自然语言表述算法步骤.,第三步,将所有步骤的程序框图用流程线连接起来,并加上两个终端框.,设计一个算法的程序框图的基本思路:
(x3),5,(x3),5+(x-3)1.2,第三步,,第一步,,第二步,,输入人数x;,判断“x3”是否成立.,若是,则,否则,,计算:
y=5+(x-3)1.2,y=5;,输出y.,y=,是,否,练习:
教材20页习题A组3:
1.函数,(x0),2x+1,(x=0),2,(x0),3x-2.,写出求该函数值的算法及程序框图,第三步,,第一步,,第二步,,输入x;,判断“x0”是否成立.,若是,则,否则,,y=2x+1,y=2,输出y.,执行第三步;,判断“x=0”是否成立.,若是,则,否则,,y=3x-2;,第四步,,练习2:
y=,否,是,是,否,练习:
教材20页习题B组1:
输入a1,b1,c1,a2,b2,c2,是,否,输“输入数据不合要求”,练习:
教材20页习题B组2:
n=n+1,r6.8?
是,输出r,否,输入r,n9?
否,是,n=1,