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