2.3.2循环语句
学案
1.理解For循环语句和Do
Loop循环语句在算法语句中的作用.
2.能举例说明循环语句的作用,并掌握循环流程分析的方法,进一步体会算法的基本思想.
1.For语句
(1)格式:
(2)适用于预先________循环次数的循环结构.
①在For语句里,我们默认循环变量每次的增量为1,增量不为1的情况,需用参数Step,即“For循环变量=初始值To终值Step增量”.
②For语句的执行流程:当程序执行时,遇到For语句,首先把初始值赋予循环变量,记下终值,并比较初始值和终值,如果初始值不超过终值,开始执行循环体,执行到Next语句时循环变量加1并且与终值比较,若不超过终值,则继续执行循环体,否则退出循环.
【做一做1】下列程序中的For语句终止循环时,S等于( ).
S=0
For M=1
To
10
S=S+M
Next
输出S
A.1
B.5
C.10
D.55
2.Do
Loop语句
(1)格式:
(2)适用于预先________循环次数的循环结构.
(3)Do
Loop语句的执行流程:先进入循环体,执行一次循环体后,检查While后的条件是否被满足,“是”则继续执行循环体,“否”则退出循环体.
For语句和Do
Loop语句的异同
For语句和Do
Loop语句都是表达循环结构的算法,但是它们在表达方式和功能上又有一定的区别,主要表现在以下几点:
(1)书写形式不同.
(2)作用不同:For语句主要适用于预先知道循环次数的循环结构;如果预先不知道循环次数,则使用Do
Loop语句.
(3)For语句中循环条件在前,首先判断循环条件,如果条件不满足一次也不能执行循环体;而Do
Loop语句中循环条件在后,即使刚开始不满足条件也要执行一次循环体.
【做一做2】请用Do
Loop语句设计一个算法求平方小于1
000的所有正整数的平方和.
什么时候使用循环语句?
剖析:循环结构是算法中的基本结构,循环语句是实现这一算法的基础,它能解决那些需要重复进行运算的问题,把循环结构的算法转化为易于理解的类似计算机的语言,从而实现程序在计算机上的运行.例如,要求1+2+3+…+100的计算就要反复进行加法运算,就可以使用循环语句实现.
循环语句主要有两种类型:
(1)For语句是表达循环结构最常见的语句之一,其格式为:
(2)另一种是Do
Loop语句,其格式为:
题型一
For语句的基本应用
【例题1】使用For语句设计算法,计算1+3+5+…+999的值.
分析:每次加的数都比前一个数大2,这是该问题的规律,怎么利用这个规律呢?在计算机上我们用For语句,把循环变量的增量设为2,这样就实现了每次加的数比前一个数大2.
反思:用For语句描述算法的步骤是:(1)首先明确循环的次数;(2)设置循环变量控制循环的次数,并给定初始值和终值;(3)套用For语句的一般形式.
题型二
For语句与条件语句的综合应用
【例题2】用For语句描述一个算法,找出满足以下三个条件的矩形:(1)四条边长均为整数;(2)面积值与周长值相等;(3)各边长都不超过400.
反思:本题算法语句中省略了增量1,当循环变量的增量为1时,常省略.
题型三
Do
Loop语句的基本应用
【例题3】用基本语句描述一个算法,求满足1+3+5+…+n>500的最小自然数n.
分析:结束循环的条件是和大于500,可以用累加的方法,一个数一个数地加到累加器中,每加一个数就把累加器的值与500比较,直到大于500为止.
由于预先不知道循环次数,故用Do
Loop语句描述该算法.
反思:对于重复执行某操作的算法,一般用循环语句来实现.如果预先不知道循环的次数,一般用Do
Loop语句来实现.
题型四
易错辨析
【例题4】设计程序计算并输出+++…+的值.
错解:用For语句描述为:
S=0
For
i=1
To
17
m=1/(2
i+1)
S=S+m
Nest
输出S
错因分析:原式中共有18个数相加,错解中由“i=1
To
17”共循环17次,结果错误.
1下列关于For循环的说法错误的是( ).
A.在For循环中,循环表达式也称为循环体
B.在For循环中,步长为1,可以省略不写;若为其他值,则不可省略
C.理解For循环关键是理解为循环变量设定初值、步长、终值
D.在For循环中,“End”控制结束一次循环,开始一次新的循环
2下列程序的运行结果为( ).
A.5
B.6
C.7
D.8
3下列程序的运行结果为( ).
A.6
B.7
C.8
D.9
4如图,把求的值的程序补充完整,则(1)__________;(2)__________.
5设计一个计算1×3×5×…×99的程序.
答案:
基础知识·梳理
1.(1)初始值 终值 (2)知道
【做一做1】D
2.(1)条件为真 (2)不知道
【做一做2】解:用算法语句描述为:
S=0
i=1
Do
S=S+i2
i=i+1
Loop
While
i2<1
000
输出S
典型例题·领悟
【例题1】解:用For语句描述为:
S=0
For
i=1
To
999
Step
2
S=S+i
Next
输出S
【例题2】解:用For语句描述为:
For
a=1
To
400
For
b=1
To
400
If
a
b=2(a+b)
Then
输出a,b
End
If
Next
Next
【例题3】解:用Do
Loop语句描述为:
i=1
sum=0
Do
sum=sum+i
i=i+2
Loop
While
sum≤500
i=i-2
输出i
【例题4】正解:
S=0
For
i=1
To
18
m=1/(2
i+1)
S=S+m
Next
输出S
随堂练习·巩固
1.D
2.B 由于0+1+2+3+4+5=15,0+1+2+3+4+5+6=21,∴i=6.
3.B S=0,i=1;S=0+1,i=2;…;S=0+1+2+3+4+5,i=6,由于此时S=15<20,∴继续执行S=0+1+2+3+4+5+6,i=6+1=7,此时S=21>20,故i=7.
4.(1)S=S+1/[i
(i+3)] (2)i≤50
5.解:算法程序为
i=1
S=1
For
i=1
To
99
S=S
i
i=i+2
Next
输出S