1、1.2.3 循环语句 主备人:张书亭 审核人:高一全体数学老师 【明目标、知重点】 1.正确理解循环语句的概念,并掌握其结构; 2.会应用条件语句和循环语句编写程序; 3.经历对现实生活情境的探究,认识到应用计算机解决数学问题的方便简捷. 【填要点、记疑点】 1.循环语句 循环语句与程序框图中的循环结构相对应,一般程序设计语言中都有直到型(UNTIL)和当型(WHILE)两种循环语句结构,分别对应于程序框图中的直到型和当型循环结构. 2.循环语句的格式、功能及程序框图的对应关系 名称 直到型 当型 格式
2、 DO 循环体 LOOP_UNTIL条件 WHILE 条件 循环体 WEND 过程 先执行一次DO和UNTIL之间的循环体,再判断UNTIL后的条件是否符合,如果不符合,继续执行循环体,然后再检查上述条件,如果仍不符合,再次执行循环体,直到条件符合时为止.这时不再执行循环体,跳出循环体执行UNTIL语句后面的语句 先判断条件的真假,如果条件符合,则执行WHILE和WEND之间的循环体,然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止,这时不再执行循环体,跳出循环体,执行WEND后面的语句 对应程序框图 【探要点、究所然
3、 [情境导学] 在我们日常的班级管理中,班主任对违犯纪律同学的处罚一般是让其写检查,有的同学的检查避重就轻,轻描淡写的几句话就想应付过去,班主任看后往往会说:“认识不深刻,拿回去重写,直到认识深刻为止”.班主任老师无意中应用了算法语句中的知识,你想知道应用的是什么算法语句吗? 探究点一 直到型循环语句 问题 对于顺序结构、条件结构的算法或程序框图,我们知道了用什么语句写程序,那么对于循环结构的算法或程序框图,我们又该如何转化为计算机能够理解的算法语言? 思考1 直到型循环结构的程序框图是什么? 答 思考2 阅读教材29页下半页,你能说出什么是循环体?直到型循环结构对应的循环
4、语句的一般格式如何设定吗? 答 循环体是由计算机反复执行的一组语句构成的.直到型循环结构对应的循环语句的一般格式: DO 循环体 LOOP UNTIL 条件 思考3 计算机是按怎样的顺序执行UNTIL语句的? 答 先执行循环体,然后再检查条件是否成立,如果不成立就重复执行循环体,直到条件成立退出循环. 例1 计算1+2+3+…+100的值有如下算法: 第一步,令i=1,S=0. 第二步,计算S+i,仍用S表示. 第三步,计算i+1,仍用i表示. 第四步,判断i>100是否成立.若是,则输出S,结束算法;否则,返回第二步. 请利用UNTIL语句写出这个算法对应
5、的程序. 解 i=1 S=0 DO S=S+i i=i+1 LOOP UNTIL i>100 PRINT S END 反思与感悟 控制循环次数的变量要综合考虑初始化时和LOOP UNTIL后两处,若初始值为1,则循环体中累加,若初始值为循环的次数,则循环体中递减. 跟踪训练1 在下面的程序运行中,计算机输出的结果是________. x=20 DO x=x-3 LOOP UNTIL x<0 PRINT x END 答案 -1 解析 当循环6次后x的值为20-18=2,此时2<0不成立,因此再循环一次,所以得到的x的值为2
6、-3=-1,因此时-1<0,满足条件,所以结束循环,输出-1. 探究点二 当型循环语句 思考1 当型循环结构的程序框图是什么? 答 当型循环结构: 思考2 阅读教材30页中间一段内容,你能说出当型循环结构对应的WHILE语句是什么吗? 答 WHILE 条件 循环体 WEND 思考3 计算机是按怎样的顺序执行WHILE语句的? 答 先判断指定的条件是否为真,若条件为真,执行循环条件,然后再检查上述条件,如果仍为真,再次执行循环体,这个过程反复执行,直到条件为假时退出循环. 思考4 通过比较,你觉得WHILE型语句与UNTIL型语句之间有什么区别呢?
7、 答 它们的区别:在WHILE语句中,先判断指定的条件,当条件满足时执行循环体;在UNTIL语句中,先执行循环体再判断条件是否成立,当条件不满足时执行循环体. 例2 计算1+2+3+…+100的值又有如下算法: 第一步,令i=1,S=0. 第二步,若i≤100成立,则执行第三步;否则,输出S,结束算法. 第三步,S=S+i. 第四步,i=i+1,返回第二步. 请利用WHILE语句写出这个算法对应的程序. 解 i=1 S=0 WHILE i<=100 S=S+i i=i+1 WEND PRINT S END 反思与感悟 (1)计算机执行当型循环语
8、句时,先判断条件的真假,若条件为真,执行循环体,若为假则退出.这是确定是否应用当型语句的关键. (2)当型循环语句中WHILE和WEND成对出现. (3)判断条件往往是控制循环次数的变量. 跟踪训练2 分别用WHILE和UNTIL两种语句编写程序,求出使不等式12+22+32+…+n2<1 000成立的n的最大正整数值. 解 方法一 S=1 i=2 WHILE S<1 000 a=i^2 S=S+a i=i+1 WEND i=i-2 PRINT “n的最大正整数值为”;i END 方法二 S=1 i=2 DO a=i^
9、2 S=S+a i=i+1 LOOP UNTIL S>=1 000 i=i-2 PRINT “n的最大正整数值为”;i END 例3 已知函数y=x3+3x2-24x+30,写出连续输入自变量的11个取值,分别输出相应的函数值的程序. 解 程序为 n=1 DO INPUT x y=x^3+3*x^2-24*x+30 PRINT y n=n+1 LOOP UNTIL n>11 END 反思与感悟 (1)循环次数的控制往往是判断条件,在循环体内要控制条件的改变,否则会陷入死循环. (2)控制循环次数的变量要综合考虑初始化
10、时和LOOP UNTIL后两处,若初始值为1,则循环体中累加,若初始值为循环的次数,则循环体中递减. 跟踪训练3 设计一个计算1×3×5×7×…×999的算法. 解 程序框图如图所示: S=1 i=3 DO S=S*i i=i+2 LOOP UNTIL i>999 PRINT S END 【当堂测、查疑缺】 1.关于循环语句的说法不正确的是 ( ) A.算法中的循环结构由WHILE语句来实现 B.循环语句中有直到型语句和
11、当型语句,即UNTIL语句和WHILE语句 C.一般来说UNTIL语句和WHILE语句可以互相转换 D.算法中的循环结构由循环语句来实现 答案 A 解析 算法中的循环结构由循环语句来实现,循环语句包括UNTIL语句和WHILE语句两种不同的格式,且一般情况下这两种语句可以相互转换.所以选项A是错误的,其余都正确. 2.下列问题可以设计成循环语句计算的有 ( ) ①求1+3+32+…+39的和; ②比较a,b两个数的大小; ③对于分段函数,要求输入自变量,输出函数值; ④求平方值小于100的最大整数. A.0个
12、 B.1个 C.2个 D.3个 答案 C 解析 ①和④用到循环语句;②③用不到.故选C. 3.下列方框中为一个求20个数的平均数的程序,在横线上应填充的语句为 ( ) S=0 i=1 DO INPUT x S=S+x i=i+1 LOOP UNTIL —————— a=S/20 PRINT a END A.i<=20 B.i<20 C.i>=20 D.i>20 答案 D 解析 由于此程序使用的是直到型循环结构,即不满
13、足条件时执行循环体,又因为是20个数的平均数,当i=20时必须再循环一次,S才是20个数的和,当i=21时必须结束循环,所以应填“i>20”. 4.如图所示的程序运行结果是 ( ) i=1 S=0 WHILE i<4 S=S*i+1 i=i+1 WEND PRINT S END A.3 B.7 C.10 D.17 答案 C 解析 该程序共进行了三次循环,第一次循环S=1,i=2,第二次循环S=3,i=3,第三次循环S=10,i=4,4<4不成立,结束循环,故选C. 【呈重点、现规律】 应用循环语句编写程序要注意以下三点: (1)循环语句中的变量一般需要进行一定的初始化操作,也就是要设置一些变量的初始值. (2)循环语句在循环的过程中需要有“结束”的语句,程序中最忌“死循环”. (3)在循环中要改变循环条件的成立因素. 程序每执行一次循环体,循环条件中涉及到的变量就会发生改变,且在步步逼近跳出循环体的条件. 8






