《程序框图与算法的基本逻辑结构2》由会员分享,可在线阅读,更多相关《程序框图与算法的基本逻辑结构2(31页珍藏版)》请在金锄头文库上搜索。
1、1.1.2 1.1.2 程序框图与算法程序框图与算法 的基本逻辑结构的基本逻辑结构 第三课时第三课时顺序结构顺序结构依次依次无判断无判断无返回无返回条件结构判断二选一二选一选不选选不选(3)循环结构循环结构-在一些算法中在一些算法中,也经常会也经常会出现从某处开始出现从某处开始,按照一定条件按照一定条件,反复反复执行执行某一步骤的情况某一步骤的情况,这就是循环结构这就是循环结构.反复执行的步骤称为反复执行的步骤称为循环体循环体.注意注意:循环结构不能是永无终止的循环结构不能是永无终止的“死循死循环环”,一定要在某个条件下终止循环一定要在某个条件下终止循环,这这就需要条件结构来作出判断就需要条件
2、结构来作出判断,因此因此,循环循环结构中一定包含条件结构结构中一定包含条件结构.循环结构用程序框图可表示为:(2)循环结构分为两种循环结构分为两种-当型和直到当型和直到型型.直到型循环直到型循环在执行了一次循在执行了一次循环体之后环体之后,对条件进行判断对条件进行判断,如果条件不满足就执行循环如果条件不满足就执行循环体体,直到条件满足时终止循环直到条件满足时终止循环.(反复执行循环体反复执行循环体,直到条件直到条件满足满足)当型循环当型循环在每次执行循环体在每次执行循环体前对条件进行判断前对条件进行判断,当条件当条件满足时执行循环体满足时执行循环体,否则终否则终止循环止循环;(当条件满足时反复
3、当条件满足时反复执行循环体执行循环体)循环体满足条件?是否直到型直到型满足条件?循环体否是当型当型开始开始输入输入ni=2求求n除以除以i的余数的余数ri=i+1in-1或或r=0?n不是质数不是质数结束结束是是否否是是n是质数是质数否否r=0?顺序结构顺序结构用程序框图来表示算法,有用程序框图来表示算法,有三种不同的基本逻辑结构:三种不同的基本逻辑结构:条件结构条件结构循环结构循环结构直到型循直到型循环结构环结构2.循环结构有几种形式?他们的各自特征是循环结构有几种形式?他们的各自特征是什么吗?什么吗? 区别:循环结构区别:循环结构具有重复性;具有重复性;条件结构条件结构具有选择具有选择性,
4、不重复性性,不重复性。1.条件结构和循环结构有什么区别和联系?条件结构和循环结构有什么区别和联系?联系:循环结构联系:循环结构中一定包含条件结构,用于确定何中一定包含条件结构,用于确定何时终止执行循环体;时终止执行循环体;条件结构条件结构中不含循环结构中不含循环结构. .第四步,判断第四步,判断“i i100100”是否成立是否成立. . 若是,则输出若是,则输出S S,结束算法;,结束算法; 否则,返回第二步否则,返回第二步. .第一步,令第一步,令i=1i=1,S=0.S=0.第二步,计算第二步,计算S+iS+i,仍用,仍用S S表示表示. .第三步,计算第三步,计算i+1i+1,仍用,仍
5、用i i表示表示. .思考思考1:1:计算计算1+2+3+1+2+3+100+100的值的算法,并画的值的算法,并画 出程序框图。出程序框图。算法分析算法分析:知识探究(一):循环结构的程序框图知识探究(一):循环结构的程序框图思考思考2:2:用用直到型直到型循环结构,上述算法的循环结构,上述算法的程序框图如何表示?程序框图如何表示?开始开始i=1i100?是是输出输出S结束结束S=0i=i+1S=S+i否否思考思考3:3:用用当型当型循环结构,上述算法的程循环结构,上述算法的程序框图如何表示?序框图如何表示?开始开始i=1结束结束输出输出S否否是是S=0S=S+ii100?i=i+1第二步,
6、判断第二步,判断i100i100是否成立是否成立. . 若是,则执行第三步;若是,则执行第三步; 否则,输出否则,输出S S,结束算法,结束算法. .第一步,令第一步,令i=1i=1,S=0.S=0.第三步,计算第三步,计算S+iS+i,仍用,仍用S S表示表示. .第四步,计算第四步,计算i+1i+1,仍用,仍用i i表示,表示, 返回第三步返回第三步. .思考思考4:4:观察两个程序框图,观察两个程序框图,直到型直到型循环结构与循环结构与当型当型循环结构如何转化?循环结构如何转化?开始开始i=1i100?是是输出输出S结束结束S=0i=i+1S=S+i否否开始开始i=1结束结束输出输出S否
7、否是是S=0i100?i=i+1S=S+i初初始始值值循循环环体体终终止止条条件件说明说明:(1)一般地一般地,循环结构中都有一个循环结构中都有一个计数变量计数变量和和累加变量累加变量.计数变量用于记录循环次数计数变量用于记录循环次数,同时同时它的取值还用于判断循环是否终止它的取值还用于判断循环是否终止,累加变量用累加变量用于输出结果于输出结果.累加变量和计数变量一般是同步执累加变量和计数变量一般是同步执行的行的,累加一次累加一次,记数一次记数一次.(2)循环结构分为两种循环结构分为两种-当型和直到型当型和直到型.当型循环当型循环在每次执行循环体前对循环条件在每次执行循环体前对循环条件进行判断
8、进行判断,当条件满足时执行循环体当条件满足时执行循环体,不满足则不满足则停止停止;(当条件满足时反复执行循环体当条件满足时反复执行循环体)直到型循环直到型循环在执行了一次循环体之后在执行了一次循环体之后,对对控制循环条件进行判断控制循环条件进行判断,当条件不满足时执行当条件不满足时执行循环体循环体,满足则停止满足则停止.(反复执行循环体反复执行循环体,直到条直到条件满足件满足)变式变式1:1: 右边的程序框图输出右边的程序框图输出S=S=?开始开始i=1i100?是是输出输出S结束结束S=0i=i+1S=S+i否否开始开始i=1i3?是是输出输出S结束结束S=0S=S+ii=i+1否否9变式变
9、式2:2:右边的程序框图,右边的程序框图,输出输出S=?开始开始i=1i3?是是输出输出S结束结束S=0i=i+1S=S+i2否否题型一:程序框图的阅读与理解14题型二:程序框图的补充1、求 的值。设计的算法框图如右,应该在空格位置填入什么条件?分析:空格位置判断条件,应该考虑循环的终止条件是什么?应该填入:i10 例例2 2 某工厂某工厂20052005年的年生产总值为年的年生产总值为200200万元,技术革新后预计以后每年的年万元,技术革新后预计以后每年的年生产总值都比上一年增长生产总值都比上一年增长5%.5%.设计一个程设计一个程序框图,输出预计年生产总值超过序框图,输出预计年生产总值超
10、过300300万万元的最早年份元的最早年份. .第三步,判断所得的结果是否大于第三步,判断所得的结果是否大于300.300. 若是,则输出该年的年份;若是,则输出该年的年份; 否则,返回第二步否则,返回第二步. .第一步,第一步, 输入输入20052005年的年生产总值年的年生产总值. .第二步,计算下一年的年生产总值第二步,计算下一年的年生产总值. .算法分析算法分析:(3 3)控制条件)控制条件: :当当“a a300300”时终止循环时终止循环. .(1 1)循环体)循环体: :设设a a为某年的年生产总值,为某年的年生产总值, t t为年生产总值的年增长量为年生产总值的年增长量,n,n
11、为年份为年份, ,则则t=0.05at=0.05a,a=a=a+ta+t,n=n+1.n=n+1.(2 2)初始值)初始值:n=2005,a=200.:n=2005,a=200.循环结构循环结构:开始开始n=2005a=200t=0.05aa=a+tn=n+1a300?结束结束输出输出n是是否否程序框图程序框图:循环结构循环结构:开始开始n=2005a=200t=0.05aa=a+tn=n+1输出输出n结束结束是是否否a300?当型循环结构程序框图当型循环结构程序框图思考思考1 1:用用“二分法二分法”求方程求方程 的的近似解的算法如何设计?近似解的算法如何设计? 知识探究(二):混合逻辑结构
12、的程序框图知识探究(二):混合逻辑结构的程序框图第一步,令第一步,令f(xf(x)=x)=x2 2-2-2,给定精确度,给定精确度d.d. 第二步,确定区间第二步,确定区间aa,bb,满足,满足f(a)f(a)f(bf(b) )0. 0. 第三步,取区间中点第三步,取区间中点 . . 第四步,若第四步,若f(a)f(a)f(mf(m) )0 0,则含零点的区间为,则含零点的区间为aa,mm;否则,含零点的区间为;否则,含零点的区间为mm,b.b.将新得到的含将新得到的含零点的区间仍记为零点的区间仍记为aa,b. b. 第五步,判断第五步,判断aa,bb的长度是否小于的长度是否小于d d或或f(
13、mf(m) )是否是否等于等于0.0.若是,则若是,则m m是方程的近似解;否则,返回第是方程的近似解;否则,返回第三步三步. . 思考思考2:2:该算法中哪几个步骤可以用该算法中哪几个步骤可以用顺序结构顺序结构来表示?这个顺序结构的程序框图如何?来表示?这个顺序结构的程序框图如何?f(x)=x2- -2输入精确度输入精确度d和初始值和初始值a,b思考思考3:3:该算法中该算法中第四步第四步是什么逻辑结构?这是什么逻辑结构?这个步骤用程序框图如何表示?个步骤用程序框图如何表示?f(a)f(m)0?b=m是是a=m否否思考思考3:3:该算法中该算法中第五步第五步是什么逻辑结构?这是什么逻辑结构?
14、这个步骤用程序框图如何表示?个步骤用程序框图如何表示?|a- -b|d或或f(m)=0?输出输出m是是否否f(a)f(m)0??a=mb=m是是否否思考思考5:5:根据上述分析,你能画出表示整个算根据上述分析,你能画出表示整个算法的程序框图吗?法的程序框图吗?开始开始结束结束f(a)f(m)0??a=mb=m是是否否|a- -b|d或或f(m)=0?输出输出m是是否否f(x)=x2- -2输入精确度输入精确度d和初始值和初始值a,b小结作业小结作业3.设计一个算法的程序框图的基本思路设计一个算法的程序框图的基本思路:第二步,第二步,确定每个算法步骤所包含的逻辑结构,并确定每个算法步骤所包含的逻
15、辑结构,并用相应的程序框图表示用相应的程序框图表示. .第一步,第一步,用自然语言表述算法步骤用自然语言表述算法步骤. .第三步,第三步,将所有步骤的程序框图用流程线连接起来,将所有步骤的程序框图用流程线连接起来,并加上两个终端框并加上两个终端框. .首先首先确定循环体,确定循环体,再再根据循环体第一步确定初值,根据循环体第一步确定初值,最后一步最后一步确定循环终止条件。确定循环终止条件。1.循环结构三要素循环结构三要素:循环变量赋初值、循环体、循环变量赋初值、循环体、循环终止条件循环终止条件2.2.循环三要素确定过程循环三要素确定过程: :(P20BT2).某高中男子体育小组的某高中男子体育小组的50m跑成绩跑成绩(单位单位:s)为为: 6.4, 6.5, 7.0, 6.8, 7.1, 7.3, 6.9, 7.4, 7.5.设计一个算法设计一个算法,从这些成绩中搜出小于从这些成绩中搜出小于6.8s的成绩的成绩.算法分析算法分析:第一步第一步:把计数变量把计数变量n的初值设为的初值设为1.第二步第二步:输入一个成绩输入一个成绩r,判断判断r与与6.8的大小的大小.若若r6.8,则执行下一步则执行下一步;若若r9,则结束则结束.开始开始n=1程序框图程序框图输入输入rr6.8?是是n=n+1n9?是是否否输出输出r否否结束结束直到型循直到型循环结构环结构