您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 程序框图与算法的基本逻辑结构2
1.1.2程序框图与算法的基本逻辑结构第三课时顺序结构依次无判断无返回条件结构判断二选一选不选(3)循环结构---在一些算法中,也经常会出现从某处开始,按照一定条件,反复执行某一步骤的情况,这就是循环结构.反复执行的步骤称为循环体.注意:循环结构不能是永无终止的“死循环”,一定要在某个条件下终止循环,这就需要条件结构来作出判断,因此,循环结构中一定包含条件结构.循环结构用程序框图可表示为:(2)循环结构分为两种------当型和直到型.直到型循环在执行了一次循环体之后,对条件进行判断,如果条件不满足就执行循环体,直到条件满足时终止循环.(反复执行循环体,直到条件满足)当型循环在每次执行循环体前对条件进行判断,当条件满足时执行循环体,否则终止循环;(当条件满足时反复执行循环体)循环体满足条件?是否直到型满足条件?循环体否是当型开始输入ni=2求n除以i的余数ri=i+1i>n-1或r=0?n不是质数结束是否是n是质数否r=0?顺序结构用程序框图来表示算法,有三种不同的基本逻辑结构:条件结构循环结构直到型循环结构2.循环结构有几种形式?他们的各自特征是什么吗?区别:循环结构具有重复性;条件结构具有选择性,不重复性。1.条件结构和循环结构有什么区别和联系?联系:循环结构中一定包含条件结构,用于确定何时终止执行循环体;条件结构中不含循环结构.第四步,判断“i100”是否成立.若是,则输出S,结束算法;否则,返回第二步.第一步,令i=1,S=0.第二步,计算S+i,仍用S表示.第三步,计算i+1,仍用i表示.思考1:计算1+2+3+…+100的值的算法,并画出程序框图。算法分析:知识探究(一):循环结构的程序框图思考2:用直到型循环结构,上述算法的程序框图如何表示?开始i=1i100?是输出S结束S=0i=i+1S=S+i否思考3:用当型循环结构,上述算法的程序框图如何表示?开始i=1结束输出S否是S=0S=S+ii≤100?i=i+1第二步,判断i≤100是否成立.若是,则执行第三步;否则,输出S,结束算法.第一步,令i=1,S=0.第三步,计算S+i,仍用S表示.第四步,计算i+1,仍用i表示,返回第三步.思考4:观察两个程序框图,直到型循环结构与当型循环结构如何转化?开始i=1i100?是输出S结束S=0i=i+1S=S+i否开始i=1结束输出S否是S=0i≤100?i=i+1S=S+i初始值循环体终止条件说明:(1)一般地,循环结构中都有一个计数变量和累加变量.计数变量用于记录循环次数,同时它的取值还用于判断循环是否终止,累加变量用于输出结果.累加变量和计数变量一般是同步执行的,累加一次,记数一次.(2)循环结构分为两种------当型和直到型.当型循环在每次执行循环体前对循环条件进行判断,当条件满足时执行循环体,不满足则停止;(当条件满足时反复执行循环体)直到型循环在执行了一次循环体之后,对控制循环条件进行判断,当条件不满足时执行循环体,满足则停止.(反复执行循环体,直到条件满足)变式1:右边的程序框图输出S=————?开始i=1i100?是输出S结束S=0i=i+1S=S+i否开始i=1i3?是输出S结束S=0S=S+ii=i+1否9变式2:右边的程序框图,输出S=———?开始i=1i3?是输出S结束S=0i=i+1S=S+i2否题型一:程序框图的阅读与理解14题型二:程序框图的补充1、求的值。设计的算法框图如右,应该在空格位置填入什么条件?分析:空格位置判断条件,应该考虑循环的终止条件是什么?应该填入:i10201....614121例2某工厂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.循环结构:开始n=2005a=200t=0.05aa=a+tn=n+1a300?结束输出n是否程序框图:循环结构:开始n=2005a=200t=0.05aa=a+tn=n+1输出n结束是否a≤300?当型循环结构程序框图思考1:用“二分法”求方程的近似解的算法如何设计?220(0)xx知识探究(二):混合逻辑结构的程序框图第一步,令f(x)=x2-2,给定精确度d.第二步,确定区间[a,b],满足f(a)·f(b)0.第三步,取区间中点.2abm第四步,若f(a)·f(m)0,则含零点的区间为[a,m];否则,含零点的区间为[m,b].将新得到的含零点的区间仍记为[a,b].第五步,判断[a,b]的长度是否小于d或f(m)是否等于0.若是,则m是方程的近似解;否则,返回第三步.思考2:该算法中哪几个步骤可以用顺序结构来表示?这个顺序结构的程序框图如何?f(x)=x2-2输入精确度d和初始值a,b2abm思考3:该算法中第四步是什么逻辑结构?这个步骤用程序框图如何表示?f(a)f(m)0?b=m是a=m否思考3:该算法中第五步是什么逻辑结构?这个步骤用程序框图如何表示?|a-b|d或f(m)=0?输出m是否f(a)f(m)0??a=mb=m是否2abm+=思考5:根据上述分析,你能画出表示整个算法的程序框图吗?开始结束f(a)f(m)0??a=mb=m是否|a-b|d或f(m)=0?输出m是否f(x)=x2-2输入精确度d和初始值a,b2abm+=小结作业3.设计一个算法的程序框图的基本思路:第二步,确定每个算法步骤所包含的逻辑结构,并用相应的程序框图表示.第一步,用自然语言表述算法步骤.第三步,将所有步骤的程序框图用流程线连接起来,并加上两个终端框.首先确定循环体,再根据循环体第一步确定初值,最后一步确定循环终止条件。1.循环结构三要素:循环变量赋初值、循环体、循环终止条件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的大小.若r≥6.8,则执行下一步;若r6.8,则输出r,并执行下一步.第三步:使计数变量n的值增加1.第四步:判断计数变量n与成绩个数9的大小;若n≤9,则返回第二步;若n9,则结束.开始n=1程序框图输入rr≥6.8?是n=n+1n9?是否输出r否结束直到型循环结构
本文标题:程序框图与算法的基本逻辑结构2
链接地址:https://www.777doc.com/doc-3435173 .html