人教A版高中数学必修三1.2.3循环语句
- 格式:ppt
- 大小:582.00 KB
- 文档页数:16
1.2.3循环语句[读教材·填要点]两种循环语句的对比名称直到型当型程序结构框图格式DO循环体LOOP_UNTIL条件WHILE条件循环体WEND执行步骤先执行一次DO和UNTIL之间的循环体,再对UNTIL后的条件进行判断,如果条件不符合,继续执行循环体,然后再检查上述条件,如果条件仍不符合,再次执行循环体直到某一次条件符合为止.这时不再执行循环体,跳出循环体执行UNTIL语句后面的语句先判断条件的真假,如果条件符合,就执行WHILE和WEND之间的循环体,然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止,这时不再执行循环体,跳出循环体,执行WEND后面的语句1.何时应用循环语句?提示:在问题处理中,经常要对某一步骤或若干步骤重复执行多次,即对不同的运算对象进行若干次的相同运算或处理,这种模式就对应程序设计中的循环结构,在算法中的循环结构就是由循环语句来实现的.2.当型循环(WHILE)语句与直到型循环(UNTIL)语句在执行循环体上有何区别?提示:①当型循环先判断条件后执行,循环体可能一次也不执行;②直到型循环先执行一次循环体再判断条件,循环体至少执行一次;③对同一个算法,当型循环语句与直到型循环语句中的条件是相反的.UNTIL语句的应用[例1]编写程序计算12+32+52+…+9992,并画出相应的程序框图.[自主解答]程序如下:程序框图如下图:S=0i=1DOS=S+i^2i=i+2LOOP UNTIL i>999PRINT SEND例若将“12+32+52+…+9992”改为“12+22+32+42+…+9992+1 0002”,则结果又如何呢?解:程序如下:S=0i=1DOS=S+i^2i=i+1LOOP UNTIL i>1 000PRINT SEND程序框图如下图:——————————————————1.直到型循环语句中先执行一次循环体,再判断条件是否满足,以决定继续循环还是退出循环.2.循环次数的控制往往是判断条件,在循环体内要有控制条件的改变,否则会陷入死循环.3.控制循环次数的变量要综合考虑初始化时和LOOP UNTIL后两处,若初始值为1,则循环体中累加,若初始值为循环的次数,则循环体中递减.——————————————————————————————————————1.输入100个数,将其中正数的个数输出,写出程序.解:程序:i=0m=0DO INPUT x i=i+1IF x>0THENm=m+1END IFLOOP UNTIL i>=100PRINT mENDWHILE语句的应用[例2]编写程序求2×4×6×…×100的值.[自主解答]程序框图:程序:i=2m=1WHILE i<=100m=m*ii=i+2WENDPRINT mEND——————————————————1.计算机执行当型循环语句时,先判断条件的真假,若条件为真,执行循环体,若为假则退出.2.当型循环语句中WHILE和WEND成对出现.3.判断条件往往是控制循环次数的变量.——————————————————————————————————————2.下面程序的运行结果是()i=1S=0WHILE i<4S=S*i+1i=i+1WENDPRINT SENDA.3B.7C.10 D.17解析:该程序的运行过程是:i=1,S=0,i=1<4成立,S=0×1+1=1,i=1+1=2,i=2<4成立,S=1×2+1=3,i=2+1=3,i=3<4成立,S=3×3+1=10,i=3+1=4,i=4<4不成立,输出S=10.答案:C若1+2+3+4+5+…+n>2 008,试设计一个程序,寻找满足条件的最小整数n.[错解]采用累加的方法,1+2+3+…,一个数一个数地向上加,直到加上一个数刚好大于2 008,这个数就是要找的数.程序如下:S=0i=1WHILE S<=2 008S=S+ii=i+1WENDPRINT“最小整数为”;iEND[错因]循环体中,将i的值累加给S后,i自身加1,这次对S进行判断,若S>2 008,则累加给S的变量i就满足了条件,而i又加1,这时输出的i是满足条件的数的下一个数.本题出错的根本原因在于循环体中语句的先后次序发生变化对程序的影响没有引起重视,另外也没有对结束循环的条件的边界作检验.[正解]法一:S=0i=1WHILE S<=2 008S=S+ii=i+1WENDPRINT“最小整数为”;i-1END法二:S=0i=0WHILE S<=2 008i=i+1S=S+iWENDPRINT“最小整数为”;iEND1.下列关于循环语句的说法,不.正确的是()A.算法中的循环结构只能由WHILE语句来实现B.一般程序设计语言中有当型和直到型两种循环语句结构C.循环语句中有当型和直到型两种语句,即WHILE语句和UNTIL语句D.算法中的循环结构由循环语句来实现答案:A2.下列循环语句,循环终止时,i等于()i=1DOi=i+1LOOP UNTIL i>4A.3B.4C.5 D.6解析:∵LOOP UNTIL i>4.∴当i=5时,循环终止.答案:C3.下面程序运行后的输出结果为()B.19C.21 D.23解析:最后一次执行循环体时,S=2×9+3=21,此时i=8.答案:C4.执行下面的程序语句,输入a=3,b=-1,n=4后,输出的结果是________.解析:循环体被执行了四次, 第一次执行循环体得到的结果是:c =2,a =-1,b =2,i =2;执行第二次得到的结果是:c =1,a =2,b =1,i =3;执行第三次得到的结果是:c =3,a =1,b =3,i =4,执行第四次得到的结果是:c =4,a =3,b =4,i =5,这时的c 被输出.答案:45.下面是一个用于计算11×2+12×3+13×4+…+120×21的程序,试填上适当的语句.答案:SUM =SUM +1i ×(i +1)6.判断所给程序的功能.n=0i=1DOINPUT xIF x<0THENn=n+1END IFi=i+1LOOP UNTIL i>10PRINT nEND解:由循环语句知:共输入10个x. 由条件语句及计数变量n的变化可知:n记录的是满足x<0的x的个数.故本程序的功能是:统计10个数中负数的个数.一、选择题1.i=1S=0WHILE i<=100S=S+ii=i+1WENDPRINT SEND()A.100111+++B.0+1+…+99C.1+2+3+…+99 D.1+2+…+100 答案:C2.关于当型循环语句叙述正确的是()A.总是执行循环体B.执行一次循环体C.满足条件时执行循环体D.遇到WEND就执行循环体解析:对于当型循环语句,条件成立时,执行循环体,否则不执行循环体.答案:C3.如果以下程序运行后输出的结果是132,那么在程序中LOOP UNTIL后面的“条件”应为()B.i>=11C.i<=11 D.i<11解析:该程序中使用了直到型循环语句,当条件不满足时执行循环体,满足时退出循环,由于输出132,故执行了两次循环体,因此条件应为“i<11”.答案:D4.已知程序如图,运行的结果是()j=1WHILE j*j<100j=j+1WENDj=j-1PRINT“j=”;jENDA.j=j-1B.j=100C.j=10D.j=9解析:当j=10时,10×10=100,不再满足于j*j<100,跳出循环体,j=10-1=9.答案:D二、填空题5.下列算法语句的功能是________(只写式子不计算).答案:S =13+15+17+…+119+1216.写出运行下列程序后的输出结果.(1)(2)(2)____________.解析:(1)1+2+3+4+5+6=21>20.∴i =i +1=7(2)同(1)可知i =6.答案:7 67.用UNTIL 语句编写程序,计算11+2+12+3+13+4+…+119+20的值.程序如下:________.解析:横线处应填循环终止的条件,由于该循环语句是直到循环型语句,则满足该条件时循环终止,故填i>19.答案:i>198.下列问题可以设计成循环语句计算的是________.①求1+3+32+…+39的和;②比较a,b两个数的大小;③对于分段函数,要求输入自变量,输出函数值;④求平方值小于100的最大整数.解析:根据循环结构的特点可知,对①④可利用循环结构来实现,因而可设计成循环语句来计算,而②③可用条件语句来计算.答案:①④三、解答题9.(1)求1 000以内的完全平方数并输出.(2)输出1~100中(包括1和100)能被7整除的所有整数.解:(1)程序设计如下:(2)程序设计如下:13亿,现在我国人口平均年增长率为1%.编写程序,计算多少年后我国的人口总数将达到或超过18亿?解:程序:直到型当型y=13i=0DOy=y*1.01i=i+1LOOP UNTIL y≥18 PRINT iEND y=13i=0WHILE y<18 y=y*1.01 i=i+1 WEND PRINT i END。
1.2.3循环语句基础巩固一、选择题1.有人编写了下列程序,则()A.输出结果是1B.能执行一次C.能执行10次D.是“死循环”,有语法错误[答案] D[解析]从循环语句的格式看,这个循环语句是直到型循环语句,当满足条件x>10时,终止循环.但是第一次执行循环体后x=1,由于x=1>10不成立,则再次执行循环体,执行完成后x=1,则这样无限循环下去,是一个“死循环”,有语法错误,循环终止的条件永远不能满足.2.(2015·山东济南模拟)已知如下程序,其运行结果是()j=1WHILE j*j<100j=j+1WENDj=j-1PRINT“j=”;jENDA.j=j-1 B.j=100C.j=10 D.j=9[答案]D[解析]此程序是求使j2<100的最大正整数.又102=100,故输出结果为j=9.3.下图所示的程序运行后,输出的i的值等于()i=0S=0DOS=S+ii=i+1LOOP WHILE S<=20PRINT iENDA.9 B.8C.7 D.6[答案] C[解析]第一次:S=0+0=0,i=0+1;第二次:S=0+1=1,i=1+1=2;第三次:S=1+2=3,i=2+1=3;第四次:S=3+3=6,i=3+1=4;第五次:S=6+4=10,i=4+1=5;第六次:S=10+5=15,i=5+1=6;第七次:S=15+6=21,i=6+1=7;因为S=21>20,所以输出i=7.4.下列程序的功能是()S=1i=1WHILE S<=2012i=i+2S=S×iWENDPRINT iENDA.计算1+3+5+…+2012B.计算1×3×5×…×2012C.求方程1×3×5×…×i=2012中的i值D.求满足1×3×5×…×i>2012的最小整数i[答案] D[解析]执行该程序可知S=1×3×5×…×i,当S≤2012开始不成立,即S>2012开始成立时,输出i,则求满足1×3×5×…×i>2012的最小整数i.5.(2015·吉林长春期末)设计一个计算1×3×5×7×9×11×13的算法.下面所给出的程序中,①处不能填入的数是()A.13 B.13.5C.14 D.14.5[答案] A[解析]当填i<13时,i值顺次执行的结果是5,7,9,11,当执行到i=11时,下次就是i =13,这时要结束循环,因此计算的结果是1×3×5×7×9×11,故不能填13,但填的数字只要超过13且不超过15均可保证最后一次循环时,得到的计算结果是1×3×5×7×9×11×13.6.读下列两段程序:甲:i=1S=0WHILE i<=1000S=S+ii=i+1WENDPRINT SEND乙:i=1000S=0DOS=S+ii=i-1LOOP UNTIL i<1PRINT SEND对甲、乙程序和输出结果判断正确的是()A.程序不同,结果不同B.程序不同,结果相同C.程序相同,结果不同D.程序相同,结果相同[答案] B[解析]程序甲是计数变量i从1开始逐步递增直到i=1000时终止,累加变量从0开始,这个程序计算的是1+2+3+…+1000;程序乙是计数变量从1000开始逐步递减到i=1时终止,累加变量0开始,这个程序计算的是1000+999+…+1.但这两个程序是不同的.两个程序的输出结果都是S=1+2+3+…+1000=500500.[点拨]同一个问题可以有不同的程序,解决这类试题的关键是看分析程序是用哪种算法语句编制的.二、填空题7.写出下列问题的程序时,需用循环语句的是________.①用二分法求x 2-2=0的近似根;②对任意给定的一个大于1的整数n ,判断n 是否为质数;③输入一个实数,输出它的相反数;④输入n 的值,输出1+12+13+ (1)的值. [答案] ①②④[解析] 本题考查循环语句的使用条件.对于③,输入一个实数x 后,只需要输出-x 即可,不需用循环语句.8.(2015·福建省厦门一中月考)如图程序中,要求从键盘输入n ,求1+2+3+…+n 的和,则横线上缺的程序项是①________,②________.[答案] n i <=n[解析] 本题综合考查程序的设计和功能,着重考查了循环语句中条件的使用.程序应先输入一个n 的值,确定要计算前多少项的和,②处应确定计数变量i 满足的条件,即确定终止条件.三、解答题9.设计一个算法计算1×3×5×7×…×99值的算法,画出程序框图,写出程序.[分析] 本题是一个累乘求积的问题,可采用循环语句编写程序.[解析] 算法步骤如下:第一步:S =1;第二步:i =3;第三步:S =S ×i ;第四步:i =i +2;第五步:判断i 是否大于99,若是转到第六步;否则转到第三步,继续执行第三步,第四步,第五步;第六步:输出S ;第七步:算法结束.相应的程序框图如图所示.相应的程序如下:S=1i=3DOS=S*ii=i+2LOOP UNTIL i>99PRINT SEND[点评](1)这是一个有规律的累乘问题,第一个数为1,以后每个数比前一个数大2,共50个数相乘,因此可用循环结构设计算法,用循环语句编写程序.(2)本题中算法程序也可用WHILE语句编写:S=1i=1WHILE i<=99S=S*ii=i+2WENDPRINT SEND10.下面程序的功能是输出1~100间的所有偶数.程序:i=1DOm=i MOD 2IF__①__ THENPRINT iEND IF②__LOOP UNTIL i>100END(1)试将上面的程序补充完整.(2)改写为WHILE型循环语句.[解析](1)①m=0②i=i+1(2)改写为WHILE型循环程序如下:i=1WHILE i<=100m=i MOD 2IF m=0THENPRINT iEND IFi=i+1WENDEND能力提升一、选择题1.下面的程序运行后,输出的结果为()A.13,7 B.7,4C.9,7 D.9,5[答案] C[解析]直接根据当型循环语句的执行情况进行求解即可.该程序是当型循环,根据程序可知最后一次循环时,s=2×5-1=9,i=5+2=7.故输出的结果为9,7.2.如果以下程序运行后输出的结果是132,那么在程序中UNTIL后面的条件应为()i =12S =1DO S =S*i i =i -1LOOP UNTIL 条件PRINT SENDA .i>11B .i>=11C .i<=11D .i<11[答案] D[解析] 程序执行的功能是S =12×11×10×…,输出结果是132,即循环体只执行了两次,即i =10时,就结束了循环.3.下面程序运行后输出结果错误的是( )[答案] D[解析] A 中控制的循环条件是s ≤10,但每次循环先将计数变量i 赋值i =i +1,后给s 赋值s =s +i .从而循环结束后,s =2+3+4+5=14,最后输出s =14.B 中控制循环的变量i 从1变到10,每次循环,循环变量sum =sum +i ,循环结束sum =1+2+3+…+10=55,并将其输出.C 中控制循环的计数变量i 从1变到10,但在每次循环中先给i 赋值i =i +1,然后才赋值sum =sum +i ,故循环结束时,sum =2+3+4+…+11=65,最后输出sum.D 中控制循环的条件是s ≤10,第一次(i =1)循环后,s =0+1=1,第二次(i =2)循环后,s =1+2=3,第三次(i =3)循环后,s =3+3=6,第四次(i =4)循环后,s =6+4=10仍满足条件s ≤10,故再执行第五次(i =5)循环,s =10+5=15,最后输出s =15.故选D.4.下面是求1~1000内所有偶数的和的程序,把程序框图补充完整,则()A .①处为S =S +i ,②处为i =i +1.B .①处为S =S +i ,②处为i =i +2.C .①处为i =i +1,②处为S =S +i .D .①处为i =i +2,②处为S =S +i .[答案] B[解析] 程序框图求的是1~1000内所有偶数的和,故i 步长为2,应有i =i +2,排除A 、C ;i 初值为2,S 应加的第一个偶数为2,而不是4,故语句S =S +i 应在i =i +2的前面,排除D.二、填空题5.下面程序的功能是________.INPUT “n =”;nS =0i =1WHILE i <=nS =S +i i + i =i +1WENDPRINT SEND[答案] 从键盘输入n 的值,输出11×2+12×3+13×4+…+1n n +的值.[解析] 控制循环的变量i 初值1,步长1,终值n .累加变量S 每次循环都加上1i i +, ∴S =11×2+12×3+…+1n n +.6.下面为一个求20的数的平均数的程序,在横线上应填充的语句为________.[答案]i>20[解析]题中循环语句是直到型.循环语句,其循环终止的条件是条件成立,由于是要输出20个数,所以填i>20.三、解答题7.(2015·黑龙江省哈尔滨三中月考)给出30个数:Array 1,2,4,7,11,…,其规律是:第1个数是1,第2个数比第1个数大1,第3个数比第2个数大2,第4个数比第3个数大3,依次类推,要计算这30个数的和,现在已知该问题的算法的程序框图如图所示.(1)请在图中判断框和处理框内填上合适的语句,使之能实现该题的算法功能;(2)根据程序框图写出程序.[探究]本题的算法中涉及三个变量i,p,S,注意各个变量的作用;i为计数变量,另外也为p进行了递加;p表示了参与求和的各个数;S为累加变量,其作用是得到最终的结果.[解析](1)该算法使用了当型循环结构,因为是求30个数的和,故循环体应执行30次,其中i是计数变量,因此判断框内的条件就是限制计数变量i的,故应为i≤30.算法中的变量p实质是表示参与求和的数,由于它也是变化的,且满足第i个数比其前一个数大i-1,第i +1个数比其前一个数大i,故处理框内应为p=p+i.故①处应填i≤30?;②处应填p=p+i.(2)根据程序框图,可设计如下程序:p =1S =0WHILE i <=30S =S +p p =p +ii =i +1WENDPRINT SEND8.(2015·安徽马鞍山调研)用分期付款的方式购买价格为1150元的冰箱,如果购买时先付150元,以后每月付50元,加上欠款的利息,若一个月后付第一个月的分期付款,月利率为1%,那么购买冰箱的钱全部付清后,实际共付出多少元?画出程序框图,写出程序.[思路点拨] 本题实质上是求一系列有规律的数的和,故可用循环语句来实现,算法语句的实际应用就是将实际问题转化为函数问题,进而转化为算法问题,写出算法语句.[解析] 购买时付款150元,余款1000元分20次付清,每次付款数组成一个数列{a n }. a 1=50+(1150-150)×1%=60,a 2=50+(1150-150-50)×1%=59.5,…,a n =50+[1150-150-(n -1)×50]×1%=60-12(n -1)(n =1,2,…,20). ∴a 20=60-12×19=50.5. 总和S =150+60+59.5+…+50.5=1255(元).程序框图如图.程序:专业文档a=150m=60S=0S=S+ai=1WHILE i<=20S=S+mm=m-0.5i=i+1WENDPRINT S END珍贵文档。