您好,欢迎访问三七文档
1.2基本算法语句1.2.3循环语句第一章算法初步课前自主预习1.当型(WHILE型)当型(WHILE型)循环也称为“前测试型”循环,它的一般格式是程序框图为:当计算机遇到WHILE语句时,先,如果条件符合,就执行,然后再检查上述条件,如果条件仍符合,再次执行循环,反复进行该过程,直到为止,这时,计算机不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句.□03判断条件的真假□04WHILE与WEND之间的循环体□05某一次条件不符合2.直到型(UNTIL型)直到型(UNTIL型)循环也称为“后测试型”循环,它的一般格式是程序框图为:当计算机遇到UNTIL语句时,先,再检查条件的真假,如果,就跳出循环体,执行LOOPUNTIL之后的语句;否则,就再次执行,直到为止.□08执行循环体□09条件符合□10DO与LOOPUNTIL之间的循环体□11条件符合3.两种循环语句的区别执行的顺序不同执行UNTIL语句时,先执行循环体,再判断条件,直到条件满足;执行WHILE语句时,先判断条件,再执行循环体,直到条件不满足条件的内容不同UNTIL语句中的条件是循环结束的条件,满足此条件时,执行循环体后面的语句,不满足时执行循环体;WHILE语句中的条件是执行循环体的条件,满足此条件时,执行循环体,否则执行循环体后面的语句循环体的执行次数不同由于UNTIL语句是先执行循环体再判断条件,因此,任何一个UNTIL语句中,循环体至少要执行一次,直到条件满足;而WHILE语句是先判断条件,因此,循环体可能一次也不执行就退出循环体1.判一判(正确的打“√”,错误的打“×”)(1)循环语句与程序框图中的循环结构相对应.()(2)直到型循环结构对应WHILE语句.()(3)计算机执行UNTIL语句时,先执行一次循环体,再对UNTIL后的条件进行判断.()√×√2.做一做(1)设计程序求解下列问题时,不能用循环语句的是()A.输入每个同学的数学成绩,求全班同学的平均数学成绩B.求分段函数的函数值C.求连续100个自然数的平方和D.输入100个数,从中找出最大的数解析B是求分段函数的函数值,需要用条件语句;A,C,D涉及累加和多次赋值,均可以用循环语句解决.(2)对于下面一个程序:M=5N=0WHILEN<15N=N+MM=M-1WENDPRINTMEND运行后输出的结果为________.0解析执行过程如下:M=5,N=0,当N=015时,N=0+5=5,M=5-1=4;当N=515时,N=5+4=9,M=4-1=3;当N=915时,N=9+3=12,M=3-1=2;当N=1215时,N=12+2=14,M=2-1=1;当N=1415时,N=14+1=15,M=1-1=0,当N=15时不小于15,终止循环,最后输出M的值为0.(3)下列算法语句的功能是________________________________.计算S=13+15+17+…+119+121的值解析该循环语句是直到型循环,直到满足条件i10时跳出循环,∴到12×10+1时结束,即计算S=13+15+17+…+119+121.课堂互动探究探究1UNTIL语句的应用例1(1)下面为一个求1,2,3,…,20的平均数程序,在横线上应填充的语句为()A.i>20B.i<20C.i>=20D.i<=20S=0i=1DOS=S+ii=i+1LOOPUNTILa=S/20PRINTaENDi=11s=1DOs=s*i;i=i-1LOOPUNTILi<9PRINTsEND(1)(2)(2)如图程序执行后输出的结果是________.990[解析](1)由题意知横线处应填i>20.(2)i=11时,s=1×11=11;i=10时,s=11×10=110;i=9时,s=110×9=990;i=8时,i<9成立,输出s的值为990.拓展提升直到型循环语句应用时的注意事项(1)循环终止的条件,在设置结束循环的条件时最好做“边界的检验”,注意是用“”还是“≥”等问题,防止多循环一次或少循环一次.(2)直到型循环语句中先执行一次循环体,再判断条件是否满足,以决定继续循环还是退出循环.【跟踪训练1】根据要求,求满足1+2+3+…+n500的最小的自然数n.(1)下面是解决该问题的一个程序,但有3处错误,请找出错误并予以更正;i=1S=1n=0DOS=S+ii=i+1n=n+1LOOPUNTILS500PRINTn+1END(2)画出执行该问题的流程图.解(1)错误1:“S=1”改为“S=0”;错误2:“S500”改为“S500”;错误3:“PRINTn+1”改为“PRINTn”.(2)流程图如图:探究2WHILE语句的应用例2(1)下列程序运行后输出的结果为()i=1WHILEi<5i=i+2WENDPRINTiENDA.1B.3C.5D.7(2)给出的30个数,1,2,4,7,11,…,其规律是第1个数是1,第2个数比第1个数大1,第3个数比第2个数大2,第4个数比第3个数大3…依次类推,要求计算这30个数的和,写出程序.[解析](1)该程序的执行过程是i=1,i=1<5,执行“是”;i=1+2=3,i=3<5,执行“是”;i=3+2=5;i=5不小于5,执行“否”.所以输出i的值为5.(2)程序如下:i=1P=1S=0WHILEi<=30S=S+PP=P+ii=i+1WENDPRINTSEND拓展提升1.WHILE语句的适用类型当型循环也叫“前测试”循环,也就是我们所讲的“先测试后执行”“先判断后执行”.2.使用WHILE语句应注意的五点(1)当型循环以WHILE开头,以WEND作为结束标志.WEND是WHILEEND的缩写,表示“WHILE循环到此结束”.(2)一般来讲,WHILE语句与UNTIL语句可以相互转化.(3)执行WHILE语句时,先判断条件,再执行循环体,然后再判断条件,再执行循环体,反复执行,直至条件不满足.(4)WHILE语句中的条件是指循环体的条件,满足此条件时,执行循环体,不满足时,则执行循环结构后面的语句.(5)WHILE语句由于先判断条件,再执行循环体,因此,循环体可能一次也不执行就退出循环结构.【跟踪训练2】给出程序框图如图所示,据此编写相应的程序.解程序如下:i=1WHILEi=10INPUTGiIFGi12.1THENPRINTGiENDIFi=i+1WENDEND探究3直到型与当型语句的转换例3编写一个程序,求满足1+12+13+…+1n10的n的最小值.[解]用WHILE语句编写的程序如下:S=1n=1WHILES=10n=n+1S=S+1/nWENDPRINTnEND用UNTIL语句编写的程序如下:S=1n=1DOn=n+1S=S+1/nLOOPUNTILS10PRINTnEND[变式探究]将本例中“”改为“≤”,“最小值”改为“最大值”,程序将如何改?解将两程序中PRINT后面的n改为n-1即可.拓展提升在循环体中注意控制循环变量的选择这类问题在编写程序时,首先要确定决定运算次数的变量,然后确定变量与运算次数的关系,利用此种关系,把运算次数当作一个确定的量,从而把问题转化成循环次数确定的问题来解决.【跟踪训练3】阅读下列甲、乙两个程序:甲:乙:i=1S=0WHILEi=100S=S+ii=i+1WENDPRINTSENDi=100S=0DOS=S+ii=i-1LOOPUNTILi1PRINTSEND对甲、乙两个程序和输出结果判断正确的是()A.程序不同,结果不同B.程序不同,结果相同C.程序相同,结果不同D.程序相同,结果相同解析甲程序开始时i=1,S=0,第一次执行循环体后,S=0+1=1,i=1+1=2,条件符合;第二次执行循环体后,S=1+2,i=2+1=3;…根据程序可知当i=100时,条件符合,执行循环体后,S=1+2+3+…+100,i=101;当i=101时,条件不符合,计算机跳出循环,接着执行WEND之后的语句,即输出S.故S=1+2+3+…+100.乙程序开始时i=100,S=0,第一次执行循环体后,S=0+100=100,i=100-1=99,条件不符合;第二次执行循环体后,S=100+99,i=99-1=98,条件不符合;…根据程序可知当i=0时,条件符合,终止循环,输出S.故S=100+99+…+1.综上可知,两程序不同,结果相同.探究4循环语句和条件语句的嵌套例4请根据如图所示的程序框图写出相应的算法语句.[解]编写的算法语句如下:i=1DOr=24MODiIFr=0THENPRINTiENDIFi=i+1LOOPUNTILi24END拓展提升本题在循环结构中包含条件结构,所以在写混合语句时,应明确循环体和条件结构之间的关系,此类循环语句嵌套条件语句问题的解题思路是:先确定外层的循环语句,再逐步确定内层的条件,一定要保证内层的变量与外层的变量不能冲突,以免引起矛盾.【跟踪训练4】给出以下10个数:4,10,70,33,95,74,29,17,60,30,要求将大于40的数找出来,画出求解该问题的程序框图,并写出程序.解程序框图如图.程序如下:i=1DOINPUTxIFx>40THENPRINTxENDIFi=i+1LOOPUNTILi>10END1.循环语句的作用循环语句主要用来实现算法中的循环结构.在算法中需要反复执行相同的步骤时,我们通常采用循环语句,如在计算累乘积或累加和时常常使用循环语句.2.应用循环语句编写程序时应注意的问题(1)循环语句中的变量一般需要进行一定的初始化操作.(2)在循环体中一定要改变控制条件的变量的值,否则会出现“死循环”,并且循环体每执行一次,控制条件中的变量就应更逼近满足跳出循环体的条件.(3)与条件语句一样,循环语句也可以嵌套,但应注意内层与外层的对应关系.3.两种循环语句的区别当型循环语句先对条件进行判断,根据判断的结果决定是否执行循环体,因此又称“前测试型”循环;直到型循环语句则是先执行一次循环体,再对条件进行判断,然后根据判断的结果决定是否继续执行循环体,因此又称“后测试型”循环.也就是说直到型循环语句至少执行一次循环体,而当型循环语句则可能一次也不执行循环体,但二者本质上是相同的,可以互相转化.也可以从对应的程序框图来加以区分,它们对应的程序框图如下两图所示.当型循环结构直到型循环结构随堂达标自测1.下列四个程序框图中,能用UNTIL语句描述的是()解析UNTIL语句对应的程序是先进入循环体,再判断条件是否满足,若满足,则退出循环体,否则再次进入循环体.2.关于WHILE语句的一般格式,下列说法正确的是()A.总是执行循环体B.执行一次循环体C.条件为真时,执行循环体D.遇到WEND就结束解析执行WHILE语句时,先判断条件,若条件成立,就执行循环体,再判断,为真,继续执行,直到条件为假时结束循环.3.以下程序:x=-2DOx=x*xLOOPUNTILx10PRINTxENDA.循环体执行1次B.循环体执行2次C.循环体执行4次D.循环体执行10次解析本题考查UNTIL语句的执行方式.第一次执行循环体时,x=(-2)×(-2)=4,不符合条件,继续执行循环体,此时x=4×4=16,符合条件,结束循环,循环体执行2次.4.下面的程序运行后第三次输出的数是________.i=1x=1DOPRINTxi=i+1x=x+1/2LOOPUNTILi>5END2解析该程序中关键是循环语句,第一次输出的数是1,第二次输出的数是x=1+12=32,第三次输出的数是x=1+12+12=2.5.已知算法如下:若输入变量n的值为3,则输出变量s的值为________;若输出变量s的值为30,则输入变量n的值为________.12解析该程序的作用是累加并输出s=0+2×1+2×2+2×3+…+2n,若输入变量n的值为3,则输出变量s的值为s=0+2×1+2×2+2×3=12;若输出变量s的值为30,由于0+2×1+2×2+2×3+…+2n=30,解得n=5,则
本文标题:2019-2020学年高中数学 第一章 算法初步 1.2 基本算法语句 1.2.3 循环语句课件 新
链接地址:https://www.777doc.com/doc-8285873 .html