1819 第1章 12 123 循环语句.docx
《1819 第1章 12 123 循环语句.docx》由会员分享,可在线阅读,更多相关《1819 第1章 12 123 循环语句.docx(12页珍藏版)》请在冰豆网上搜索。
1819第1章12123循环语句
1.2.3 循环语句
学习目标:
1.理解循环语句的两种格式及功能.(重点)2.掌握两种循环语句的使用条件.(易混点)3.正确应用循环语句编写程序.(难点)
[自主预习·探新知]
循环语句
1.循环语句的概念
用来处理算法中的循环结构的语句.
2.在Scilab语言中,for循环和while循环的格式
名称
格式
适合条件
作用
for循环
for循环变量=初值:
步长:
终值循环体;end
用于预先知道循环次数的情形
用来控制有规律的重复运算或者在程序中需要对某些语句进行重复的执行
while循环
while表达式循环体;end
用于预先不知道循环次数的情形
[基础自测]
1.思考辨析
(1)在循环次数不确定时,可使用while循环语句.( )
(2)while语句是先判断条件,后执行循环体.( )
(3)在for循环语句中,结果为真时终止循环,结果为假时执行循环体.( )
[答案]
(1)√
(2)√ (3)×
2.下面循环语句中,循环终止时,n等于( )
A.6 B.7 C.8 D.9
C [当n≤7成立时,执行循环体n=n+1,直至n=8时终止循环.]
3.下面程序的作用是( )
A.求1+3+…+9+11
B.求1+2+3+…+10
C.求1×3×5×…×11
D.求1×2×3×4×…×10
B [i的初值为1,sum的初值为0,步长为1.程序的处理过程为:
第1轮的结果为:
sum=0+1=1,i=1+1=2;第2轮的结果为sum=1+2,i=2+1=3;第3轮的结果为:
sum=1+2+3,i=3+1=4;…;第10轮(最后一轮)的结果为:
sum=1+2+3+4+5+6+7+8+9+10,i=10+1=11.i=11>10,跳出循环.故选B.]
4.执行语句“for n=1:
50”时.
(1)变量n的第1个值为________.
(2)变量n的第2个值为________.
(3)变量n的最后1个值为________.
(1)1
(2)2 (3)50 [“for n=1:
50”的意思是n的初值为1,步长为1,终值为50,因此变量n的第1个值是1,第2个值是2,最后1个值是50.]
[合作探究·攻重难]
循环语句的编写
[探究问题]
1.循环语句与条件语句有什么关系?
编写程序时,什么情况下使用循环语句?
[提示] 循环语句中一定有条件语句,条件语句是循环语句的一部分,离开条件语句,循环语句无法循环,但条件语句可以脱离循环语句单独存在,可以不依赖循环语句独立地解决问题.
在问题处理中,对不同的运算对象进行若干次相同运算或处理时,一般用到循环结构,在编写程序时要用到循环语句.
2.两种循环语句执行循环体的顺序相同吗?
[提示] 两种循环语句执行循环体的顺序不同.在for循环语句中,循环变量的值和终值比较,结果为真时执行循环体,结果为假时,停止循环.在while循环语句中,当表达式的结果为真时执行循环体;结果为假时,停止循环.
3.在两种循环语句中,循环体执行的次数相同吗?
[提示] 在两种循环语句中,循环体执行的次数是不同的,由于for语句是先执行循环体再判断条件,因此,任何一个for语句中,循环体至少要执行一次,直到满足条件为止;而while语句是先判断条件,因此,循环体可能一次也不执行就退出循环体.
画出计算12+32+52+…+9992的程序框图,并写出程序.
[思路探究] 根据累加的特点,用循环结构,然后用for循环语句编写.
[解] 由题意知各项指数相同,底数相差2,可以借助于循环结构设计算法.
①程序框图:
②程序为:
母题探究:
1.(变条件)用for循环语句写出求1+
+
+…+
的值的计算程序.
[解]
2.(变结论)本例若用while循环语句写程序,该如何写?
请你尝试一下.
[解]
[规律方法] 1.for循环语句的格式:
2.根据for语句中所给定的初值、终值和步长,来确定循环次数,反复执行循环体内各语句.
3.执行过程:
通过for语句进入循环,将初值赋给循环变量,当循环变量的值不超过终值时,则顺序执行循环体内的各个语句,遇到end,将循环变量增加一个步长的值,再与终值比较,如果仍不超过终值范围,则再次执行循环体,这样重复执行,直到循环变量的值超过终值,则跳出循环.
编写程序求2×4×6×…×100的值.
[思路探究] 可用while循环语句编写,循环的条件是累乘变量小于等于100.
[解] 程序框图如下:
程序如下:
母题探究:
1.(变条件)写出求平方值小于1000的最大整数的计算程序.
[解] 用Scilab的格式来解决这个问题.
在输入完程序的第三行后,击Enter键,再在提示符下输入j,击Enter键后,输出最大的j值.
2.(变结论)本例能否用for循环语句写程序?
请你尝试一下.
[解]
[规律方法]
1.计算机执行while型循环语句时,先判断条件的真假,若条件为真,执行循环体,若为假则退出.这是确定是否应用while型语句的关键.
2.while型循环语句中while和end成对出现.
3.判断条件往往是控制循环次数的变量.
读程序
下列程序语句的算法功能是________.
计算
+
+
+…+
的值 [该程序为while循环语句,初始值S=0,i=1,当i≤99时,执行循环体S=S+
,i=i+1,故其算法功能是计算
+
+
+…+
的值.]
[规律方法] 读循环语句程序时,首先应看清是for循环语句还是while循环语句,再根据两种循环语句的特点逐步运行程序,直至得出答案.
[跟踪训练]
1.下面的程序运行后第3个输出的数是________.
2 [第一次输出的数是x=
+
=1,
第二次输出的数是x=1+
=
,
第三次输出的数是x=1+
+
=2.]
循环语句的实际应用
一球从100m高度落下,每次落地后反跳回原高度的一半,再落下.在第10次落地时,共经过多少路程?
第10次下落多高?
[思路探究] 可用for语句编写,注意循环终止的条件.
[解] 算法分析:
第1次下落的高度h1=100;
第2次下落的高度h2=
=50;
……
第10次下落的高度h10=
.
得到递推公式为h1=100,hn+1=
,n=1,2,…,9.
到第10次落地时,共经过了h1+2h2+…+2h10(m).
由以上分析,可写出Scilab程序如下:
运行该程序后,输出结果为
S=299.60938,
h=0.1953125.
[规律方法] 利用循环语句编写程序解决实际应用问题的步骤:
(1)审清题意;
(2)建立数学模型;(3)设计算法分析解决数学问题;(4)编写程序.
[跟踪训练]
2.某玩具厂2015年的产值为200万元,如果年生产增长率为5%,计算最早哪一年生产总值超过400万元,画出程序框图,并写出程序.
[解] 程序框图如图所示:
程序如下:
[当堂达标·固双基]
1.关于循环语句的说法不正确的是( )
A.算法中的循环结构由while语句来实现
B.循环语句中有for语句和while语句
C.一般来说for语句和while语句可以互相转换
D.算法中的循环结构由循环语句来实现
A [算法中的循环结构由循环语句来实现,循环语句包括for语句和while语句两种不同的格式,且一般情况下这两种语句可以相互转换.所以选项A是错误的,其余都正确.]
2.下面程序输出的结果为( )
A.17 B.19 C.21 D.23
C [S=2×9+3=21.]
3.有以下程序段,其中描述正确的是( )
A.while循环执行10次
B.循环体是无限循环
C.循环体语句一次也不执行
D.循环体语句只执行一次
C [对于while语句条件为真,则执行循环体,而本题k=8,不满足条件k=0,所以循环体语句一次也不执行.]
4.下面是求1~1000内所有偶数的和的程序,把程序框图补充完整,则( )
图124
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.设计一个计算1+3+5+7+…+99的值的程序,并画出程序框图.
[解] 程序如下:
程序框图如图所示.