单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,1.1.3,算法逻辑结构的应用,1.1.3算法逻辑结构的应用,1,算法基本逻辑结构,顺序结构,循环结构,任何算法,自然语言,数学语言,程序语言,条件分支结构,算法基本逻辑结构顺序结构循环结构任何算法自然语言数学语言,2,否,是,开始,终止条件,累加变量,计数变量,结束,输出,循环变量初始条件,否,是,开始,终止条件,累加变量,计数变量,结束,输出,循环变量初始条件,循环结构框图表示,否是开始终止条件累加变量计数变量结束输出循环变量初始条件否是,3,循环结构分为两种,-,当型和直到型,.,是,循环体,否,是,循环体,否,满足条件?,是,是,循环体,循环体,否,否,满足条件?,否,满足条件?,否,循环体,满足条件?,是,否,直到型循环结构,当型循环结构,循环结构分为两种-当型和直到型.是循环体否是循环体,4,循环结构的三要素,(,1,)循环前的初始条件,(,2,)循环条件,(,3,)循环体,循环结构的三要素,5,例,1,:,某高中男子体育小组的,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,则结束,.,例1:某高中男子体育小组的50m跑成绩(单位:s)为:,6,开始,n=1,程序框图,输入,r,r6.8,是,n=n+1,n9,是,否,输出,r,否,结束,开始n=1程序框图输入rr6.8是n=n+1n9是否输出,7,练习:,给出以下,10,个数:,5,,,9,,,80,,,43,,,95,,,73,,,28,,,17,,,60,.,要求把大于,40,的数找出来并输出,试画出该问题的程序框图,.,练习:给出以下10个数:5,9,80,43,95,73,2,8,开始,i=1,程序框图,输入,x,X40,是,i=i+1,i10,是,否,输出,r,否,结束,直到型循环结构,开始i=1程序框图输入xX40是i=i+1i10是否输出,9,例,2,:画出,1,!,+2,!,+n,!算法程序框,算法分析:,-,输入,n,赋初值,阶乘的初值,t=1,和的初值,s=0,确定循环次数,次数为,n,,,在循环体内求,i,的,阶乘,t=t,i,,,在循环体内累加,s=s+t,否,i,=,i,+1,t,=,t,i,是,开始,i,n,结束,S,=0,i=,1,t,=1,输出,S,输入,n,S,=S+t,例2:画出1!+2!+n!算法程序框算法分析:否i=i,10,例,3:,有一个数列,前两项是,1,、,1,,第三项是前二项之和,以后每一项都是前二项之和。即为:,1,、,1,、,2,、,3,、,5,、,8,、,13,、,21,,,34,。,画出计算第,n,项的程序框图。,否,k,=,k,+1,是,开始,kn,结束,A,=1,B=,1,k=,3,输出,C,输入,n,A=B,B=C,C,=A+B,解决递推问题必须具备两个条件:,(,1,)有初始值,如,a,1,=1,、,a,2,=1,(,2,)存在递推关系。,如,a,n,=a,n-1,+a,n-2,(,n,3,),一般设置二或三个变量就可以了。,用,a,1,、,a,2,、,a,3,表示三个数,在循环中,,它们不断用新值代替旧值。,这种操作称为迭代,.,该数列又称斐波那契数列。,这是一个递推问题,由“兔子问题”引发,例3:有一个数列,前两项是1、1,第三项是前二项之和,,11,例,4,:有数列,2/3,、,4/5,、,6/9,、,10/15,求此数列前,30,项的和的算法框图。,算法分析:,对于数列的题,首先要找出通项公式,,或前后项的计算关系公式,根据公式求,所需。由于数列的题一般执行次数能确定,,此题,前后项的关系是:后一项的分子是,前一项的分母加,1,,后一项的分母是前一项,的分子加分母。解题思路是用循环结构求,各项,并把值累加,因为是求前,30,项的和,,循环执行,30,次。,1.,初值,i=2,j=3,s=0;,2.,用,n,从,1,到,30,循环,5.,输出,s,;,3.s=s+i/j;,4.c=i;i=j+,1,;j=c+j;,否,n,=,n,+1,是,开始,n,30,结束,S,=0,i=,2,j,=3,n,=1,输出,S,C=i,i=j+1,j=c+j,S,=S+,i,/,j,例4:有数列2/3、4/5、6/9、10/15求此数列前,12,例,5,:,某城市缺水问题,比较突出,为了制定,节水管理办法,对全,市居民某年的月均用,水量进行了抽样调查,,其中,n,位居民的月均用,水量分别为,x,1,x,n,(,单位:吨,),,根据图中,所示的程序框图,若,n=2,且,x,1,,,x,2,分别为,1,2,,,则输出地结果,s,为,.,开始,s,1,=0,s,2,=0,i,=1,i,=,i,+1,是,输出,S,结束,否,输入,n,x,1,x,2,x,n,例5:某城市缺水问题 开始s1=0,s2=0,i=1i,13,练习,1,:如图给出了一个程序框图,其功能是(),开始,S,=0,n,=3,i,=0,i,=,i,+1,n=n+3,S0,是,输出,i,结束,否,A.,求第几项使得,S,取得最大值,B.,求第几项使得,S,取得最小值,D.,以上结论都不对,C.,求第几项使得通项,开始为负,练习1:如图给出了一个程序框图,其功能是()开始S=0,n,14,练习,2,:如图 是一个算法流程图,最后输出的,W,.,开始,T=1,S=0,S=T,2,S,T=T+2,是,输出,W,结束,W=S+T,分析:第一次循环:,T=1,,,S=1,第二次循环:,T=3,,,S=3,2,1=8,第三次循环:,T=5,,,S=5,2,8=17,W=5+17=22,否,练习2:如图 是一个算法流程图,最后输出的W .,15,练习,3,:阅读右图的程序框图,,运行相应的程序,输出的,i,=,.,开始,i,=1,S=0,S=S+a,a=,i,2,i,是,输出,i,结束,i,=,i,+1,否,练习3:阅读右图的程序框图,开始i=1S=0S=S+aa=,16,练习,4,:阅读右图的程序框图,,若,n=100,则输出的变量,S,和,T,的值依次是,.,开始,S=0,T=0,S=S+,n,T=,T+n,是,输入,n,结束,n,=,n,1,否,输出,S,T,n,=,n,1,练习4:阅读右图的程序框图,开始S=0,T=0S=S+nT=,17,一、循环有两种类型:,1,、计数控制,控制累计执行循环体的次数,次数已到则结束循环,如,1+2+3+100,或,98+96+94+4+2,2,、事态控制,由某些条件决定循环结束。,如计算一系列正整数之和,遇负数停止循环。,在一个循环过程中可以同时使用这两种类型,课堂小结,一、循环有两种类型:课堂小结,18,二、循环结构中有两个基本问题需要考虑:,(,1,)条件必须明确,能使循环过程正常结束;,(,2,)循环体内,必要时可改变控制循环的条件,改变可能导致循环结束,改变也可能导致循环进入,无休止的状态(死循环)。,课堂小结,二、循环结构中有两个基本问题需要考虑:课堂小结,19,本节结束,休息一下!,同学们:,本节结束休息一下!同学们:,20,