2.3循环结构前面我们学习了算法的基本结构:顺序结构与选择结构,它们可以利用框架结构来说明AB选择结构满足条件AB是否顺序结构满足条件A是否复习回顾1.(2009·上海卷)某算法的程序框图如图所示,则输出量y与输入量x满足的关系式是.2x(x≤1)x-2(x1)y=Page4循环结构的设计步骤(1)确定循环结构的循环变量和初始条件;(2)确定算法中需要反复执行的部分,即循环体;(3)确定循环的终止条件.循环结构循环结构的三要素循环变量,循环体、循环的终止条件.循环结构一定包含条件结构,用以控制循环过程,避免出现“死循环”.判断框内写上条件,两个出口分别对应终止条件成立与否,其中一个指向循环体,经过循环体回到判断框的入口处.Page5循环结构的算法框图循环变量=初值循环体循环变量=循环变量的后继值终止条件是否成立是否始Page6类型二循环结构的类型先判断条件,当条件满足,再执行循环体;当条件不满足,循环结束.先执行循环体,再判断条件,若条件不满足,再执行循环体;直到条件满足,循环结束.满足条件?循环体是否满足条件?循环体是否类型一求:1+1/2+1/3+…+1/10000的值第一步:令1,0iS第二步:若成立,则执行第三步;否则,输出S,结束算法.第四步:1ii,返回第二步.循环结构10000i第三步:iss/1开始1i0SN输出S结束计数变量:用于记录循环次数,同时还用于判断循环是否终止.累加变量:用于输出结果,一般与计数变量同步执行,累加一次,计数一次.循环终止条件循环体循环变量10000i1iiYiss/1开始1i0S100?iY输出S结束N类型二1iiSSi第三步:求1+2+3+…+100第一步:令1,0iS第四步:若成立,则输出S,结束算法.否则,返回第二步.100i第二步:SSi1ii类型一开始1i0S100?iN输出S结束1iiSSiY按如图所示的程序框图运行后,若输出的S的值等于16,那么在程序框图中的判断框内应填写的条件是()A.i5?B.i6?C.i7?D.i8?A例题1从循环体中计数变量入手,确定循环次数为多少时,运行结束,即可确定判断框内的条件.对于i=1,S=1时,执行S=S+i后,S=2,执行i=i+1后,i=2;i=2,S=2时,执行S=S+i后,S=4,执行i=i+1后,i=3;i=3,S=4时,执行S=S+i后,S=7,执行i=i+1后,i=4;i=4,S=7时,执行S=S+i后,S=11,执行i=i+1后,i=5;i=5,S=11时,执行S=S+i后,S=16,执行i=i+1后,i=6,因为输出的S的值等于16,所以判断框内的条件为i5,选A.在循环结构中,要注意根据条件设计合理的计数变量、累加变量及其个数,特别要求条件的表述要恰当、精确.例题2菲波拉契数列表示的是这样一列数:0,1,1,2,3,5,…,后一项等于前两项的和.设计一个算法流程图,输出这个数列的前50项.开始A=0,B=1输出A,Bi=3结束i50C=A+B输出CA=BB=Ci=i+1算法:A=0,B=1输出A,BC=A+B输出C执行至此,已经输出了数列的前三项,可以释放掉这3个变量代表的数值,赋予变量新的数值:A=B;(用A表示数列的第2项)B=C;(用B表示数列的第3项)C=A+B;输出C例题3:设计算法流程图,求解方程x3+4x-10=0在区间[0,2]内的解(精确至10-5)开始a=0,b=1a=(a+b)/2输出(a+b)/2结束f((a+b)/2)=0是f(a)f((a+b)/2)0b=(a+b)/2否b-a10-5否是是否练习1.写出1×2×3×……×100的一个算法开始S=1,i=2S=S*ii=i+1i100?结束是否输出S开始S=1,i=2S=S*ii=i+1i≤100?结束是否输出S2.如图所示的程序框图的算法功能。,输出结果为i=,i+2=.若i=2,则i+2也是偶数.而由程序框图中有循环结构可知,算法功能为求积是624的相求积是624的相邻两个偶数2426邻两个偶数.填:求积是624的相邻两个偶数;24;26.易错点:对条件语句的理解.1.若将条件“i≥5”改为“i>5”,输出结果是什么?2.若将”i=i+1”与“S=S+i”交换,则输出结果是什么?结束输出Si=1,S=0开始s=s+ii=i+1i=5?否是2.(2009·浙江卷)某程序框图如图所示,该程序运行后输出的k的值是()A.4B.5C.6D.7A对于k=0,S=0时,执行S=S+2S后,S=1.此时执行k=k+1后,k=1.当k=1,S=1时,执行S=S+2S后,S=1+21=3,此时执行k=k+1后,k=2.当k=2,S=3时,执行S=S+2S后,S=3+23=11,此时执行k=k+1后,k=3.当k=3,S=11时,继续执行S=S+2S=11+211,执行k=k+1后,k=4,此时11+211100,故输出k=4.例2.某工厂2005年的年生产总值为200万元,技术革新后,预计每年生产总值都比前一年增长5%,设计一个程序图,输出预计年生产总值超过300万元的最早年份。算法第一步:输入2005年的年生产总值.第二步:计算下一年的年生产总值.第三步:判断所得结果是否大于300.若是,输出该年年份;否则,返回第二步.循环结构的设计步骤(1)确定循环结构的循环变量和初始条件;(2)确定算法中需要反复执行的部分,即循环体;(3)确定循环的终止条件.,an200,2005an0.051taaatnn300?a直到型循环结构0.05aa300?a当型循环结构开始2005n200a0.05taaat1nn300?a否结束输出n是开始2005n200a300?a结束输出n否0.05taaat1nn是NYpANYpA课堂小结类型一类型二