1、第7课时 基本算法语句(循环语句)【教法建议】1.循环语句的教学也应通过实例,结合循环结构的程序框图进行。2.教材中介绍了DO语句和WHILE语句两种循环语句,前者是在循环次数已知时使用的循环,后者是前测试的当型循环.教学过程中要通过程序框图将两者区别讲清。具体处理时,要通过实例的对比加以说明。【问题情境】 用算法求3+6+9+……+99时,可以按逐个相加的方式进行,但这样的算法程序太长,操作不方便。按怎样的算法结构可以简单算法过程呢?如何表示这种算法程序?解 借助循环语句。 I=3 SUM=0 WHILE I<100 SUM=SUM+I I=I+3 W
2、END PRINT SUM END【范例解读】例1.将5名学生的一门功课的成绩依次输入并计算输出平均成绩。解 i=1 SUM=0 DO INPUT “请输入成绩:”;ai SUM=SUM+aii=i+1LOOPUNTILi>5A=SUM/5PRINTAEND 例2.1990年我国人口为11亿。如果每年的人口增长率为1.5%,多少年后人口达到或超过15亿? 设计一个算法解决上面的问题。画出程序框图,写出算法程序。解 根据题意,n年后人口为11(1+1.5%)n,现在就是找使11(1+1.5%)n>15的最小正整数n的值。为此可考虑用循环语句,从n=1开始检验
3、。此算法的程序框图是n←111(1+1.5%)n>15输出nYn←n+1N33此算法程序为M=11N=1WHILEM<15M=M*(1+0.015)^nn=n+1WENDPRINTnEND【归纳点拔】1.对含有循环结构的算法,在表示这个算法程序时用循环语句;2.本书介绍了两种类型的循环语句:DO语句和WHILE语句,这两种循环语句分别对应于直到型循环结构和当型循环结构的算法结构,即DO语句在执行过程中先操作,后判断,WHILE语句在执行过程中先判断后操作3.循环语句也可以嵌套,嵌套的形式类似于条件语句。如UNTIL语句的嵌套可表示为I=1DO AJ=1 DO
4、 BJ=J+1 LOOPUNTILJ>mI=I+1 LOOPUNTILI>n END其中A和B是两个循环操作的步骤。【测试反馈】1.下列程序运行次数是A、B、C、D中的哪一种?………………………………(D) I=7DO PRINT II=I+5 LOOPUNTILI>90 END A 14 B 15 C 16 D 17提示:I从7开始,每操作一次后加5,接着再操作一次,直至I>90为止,而7+5×17>90,故操作了17次。2.下面的程序运行后输出的结果是………………………………………………(C) I=1 WHILE I<
5、8I=I+2S=2*I+3WEND33PRINTSENDA17 B 19 C 21 D 23提示:对S来说,只有最后一次操作是有效的,而根据程序,I最后一次操作时的先取7,加2后取9,故S=2×9+3=21,应选C。3.要使以下UNTIL循环执行20次,循环变量的初值应当是(初始值是14) K=DOK=K-1LOOPUNTILK<-5END提示:根据程序知,每循环操作一次,K值减小1,而最后一次操作时K的值为-5,注意到先操作后判断的特点,要循环操作20次,初始的K值应为14。4.下列程序的功能为输出如下的图形,请将程序补充完整**
6、******************************I=1DO PRINT TAB(10+I)J=1 DO PRINT “*”;J=J+1 LOOPUNTILJ> (8)I=I+1 LOOPUNTILI>4 END(说明:其中的“TAB(n)”的功能是行前空n个字符)提示:每行打印8个*,故应填8。5.已知函数f(x)=,实数a1=f(1),a2=f(a1),an+1=f(an)。试写出用循环语句表示的求a8的算法,画出程序框图,并写出算法程序。A←1A←f(A)n←1n←n+1n<=8N输出AY解程序框图:33 程序 A=1 n
7、=1 WHILE n<=8 A=A/(1+A)n=n+1WENDPRINTAEND6.将1开始的奇数按顺序累加,直到其和等于或大于100为止。要求输出表示这些奇数相加并得到运算结果的算式。i←1n←0sum←0sum←sum+iSum<100i←i+2n←n+1Y输出“+”;iN输出“=”;sum输出sum,n输出i解程序框图 此算法程序为:i=1PRINTin=1sum=0WHILEsum<100Sum=sum+ii=i+2n=n+133PRINT“+”;iWENDPRINT“=”;sumPRINTsun,nEND7