精选教育第二章32docWord文档下载推荐.docx
《精选教育第二章32docWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《精选教育第二章32docWord文档下载推荐.docx(20页珍藏版)》请在冰点文库上搜索。
![精选教育第二章32docWord文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/6/6e677475-181b-473a-82c3-a4106772b861/6e677475-181b-473a-82c3-a4106772b8611.gif)
题型一 For语句的应用
【例1】 编写一个计算12+32+52+…+9992的算法,画出算法框图,并用For语句描述这个算法.
解 For语句描述算法为:
S=0
For i=1to999
S=S+i^2
i=i+2
输出S.
算法框图如图所示.
规律方法 1.For语句是表达循环结构最常见的语句之一,它适用于预先知道循环次数的循环结构,有些循环中如果不能直接看出循环次数,则可通过题目中的规律先求出循环次数再写循环语句.
2.用For语句设计程序的一般思路:
①确定循环次数;
②把反复要做的工作,作为循环体放在For与Next之间.
【训练1】 请阅读下列用For语句给出的算法,画出算法框图并说明该算法的处理功能.
For i=1To20
S=S+i
解 算法的框图如图所示,
因此,这个算法实际上处理的是求和S=1+3+5+7+9+11+13+15+17+19.
题型二 DoLoop语句的应用
【例2】 设计一个求满足1+3+5+…+i>500的最小自然数i的算法框图,并用DoLoop语句描述这个算法.
解 算法框图如图:
DoLoop语句描述算法为
i=1
S=S+i
i=i+2
LoopWhile S<
=500
i=i-2
输出i.
规律方法 DoLoop语句,先执行一次循环体,若符合条件,继续执行循环体;
当不符合条件时,跳出循环,执行DoLoop语句后的语句.
【训练2】 根据下面的算法语句,绘制算法框图,指出输出的最后结果是什么?
并将它改为另一种循环,画出相应的算法框图.
算法如下:
For i=3To99
S=S+i^3
解 算法语句对应的算法框图如图1所示,
图1
它用的是“For”语句,最终输出的结果是33+53+…+993,利用“DoLoop语句”可以改为如下
i=3
S=S+i^3
LoopWhile i<=99
相应算法框图如图2所示:
图2
【探究1】 高一
(1)班共60人,市青少年保护中心抽样检测同学们的身体素质,要求学号被3整除的同学参加体检,已知学员是从1到60号,请编写输出参加体检的同学学号的一个算法及算法框图.
解 算法框图为
方法一 运用For语句:
For S=0To60
S=S+3
输出S
【探究2】 某人用分期付款的方式购买一台价格为1150元的冰箱,如果购买时先付150元,以后每月付50元,并加入上次欠款利息,一个月后付第一个月的分期付款,若月利率为1%,购买冰箱的钱全部付清后,实际共付出的款额是多少元?
请编写一个算法语句解决这个问题.
解 购买时付款150元,余款1000元,分20次分期付款,并且每次要加上余款的利息,可以看出每次付款数组成一个数列{an}.
a1=50+(1150-150)×
1%=60(元),
a2=50+(1150-150-50)×
1%=59.5(元)
an=50+[1150-150-(n-1)×
50]×
1%=60-
(n-1)(n=1,2,…,20)
∴a20=60-
×
19=50.5
总和S=150+60+59.5+…+50.5.
算法语句如下:
a=150
m=60
S=S+a
Do
S=S+m
m=m-0.5
i=i+1
LoopWhilei<=20
【探究3】 某高中男子体育小组的100m赛跑的成绩(单位:
s)如下:
12.1,13.2,12.7,12.8,12.5,12.4,12.7,11.5,11.6,11.7.
从这些成绩中搜索出小于12.1s的成绩,画出算法框图,并用相应的算法语句描述该算法.
解 算法框图如右:
用算法语句描述如下:
For i=1 To 10
输入gi
If gi<
12.1 Then
输出gi
EndIf
i=i+1
规律方法 1.本题是循环语句和条件语句的综合运用,在执行循环体的过程中嵌套着条件语句,即判断gi<12.1是否成立,在编写这样的含有条件语句和循环语句的混合语句时,应明确循环体与条件之间的关系.
2.DoLoop语句能表达不知循环次数的循环结构,常与选择结构综合考查,在读程序时,要注意用列表法把循环体中的变量的值列出来,从中观察规律,检验While后的条件是否被满足,一旦不满足条件,循环停止.
课堂达标
1.下列问题可以设计成循环语句计算的有( )
①求1+3+32+…+39的和;
②比较a,b两个数的大小;
③对于分段函数,要求输入自变量,输出函数值;
④求平方值小于100的最大整数.
A.0个B.1个
C.2个D.3个
解析 ①和④用到循环语句;
②③用不到.故选C.
答案 C
2.执行如图所示的算法框图,则输出的k的值是( )
A.3B.4
C.5D.6
解析 s=1+(1-1)2=1,不满足判断框中的条件;
k=2,s=1+(2-1)2=2,不满足判断框中的条件;
k=3,s=2+(3-1)2=6,不满足判断框中的条件;
k=4,s=6+(4-1)2=15,不满足判断框中的条件;
k=5,s=15+(5-1)2=31,满足判断框中的条件,
退出循环,输出的结果为k=5.故选C.
3.下列程序输出的结果是________.
S=S*2+1
i=i+1
Loop While i<
=4
解析 由算法语句可知,该循环体共循环4次,分别为S=2×
0+1=1,S=2×
1+1=3,S=2×
3+1=7,S=2×
7+1=15.
答案 15
4.下面是求1×
2×
3×
4×
5×
6×
7×
8×
9×
10的一个算法语句,将其补充完整.
a=10
b=1
b=a*b
a=________
LoopWhile________
输出b.
解析 a的初始值为10,故循环体中的值应该递减,即a从10减小到1,循环体的条件应为a≥1.
答案 a-1 a>
=1
5.对任意正整数n,设计一个程序求S=1+
+
+…+
的值.
解 程序如下:
输入 n;
S=S+1/i
LoopWhile i<n
输出 S.
课堂小结
1.循环语句与条件语句的关系:
循环语句中一定有条件语句,条件语句是循环语句的一部分,离开条件语句,循环语句无法循环;
但条件语句可以脱离循环语句单独存在,可以不依赖循环语句独立地解决问题.
2.应用循环语句描述算法应注意的问题:
(1)循环语句中的循环变量,一般要合理设置初始值;
(2)在循环过程中需要有“结束”的语句;
(3)要注意For语句和DoLoop语句各自的适用条件与执行步骤的区别.
基础过关
1.下列程序中循环语句的循环终止条件是( )
m=1
m=m+3
LoopWhile m<
10
输出m.
A.m=10B.m<
10
C.m>
10D.m≥10
解析 当m<
10不成立即m≥10时,循环终止.执行DoLoop语句后的语句.
答案 D
2.下面给出的四个框图中满足DoLoop语句的是( )
解析 当执行DoLoop语句时,一般是先执行一次循环体,若符合条件,继续执行循环体,直到不满足条件为止.
3.以下程序:
For i=1 To 5
P=2*i-1
S=S+1/P
该程序描述的算法表达式是( )
A.1+
B.1+
C.1+
D.1+
4.下面程序执行后,输出的结果是________.
i=11
S=1
S=S*i
i=i-1
LoopWhile i>=9
解析 分析程序知S=1×
11×
10×
9=990.
答案 990
5.下面程序运行的结果是________.
x=100
x=x+10
LoopWhilex<=200
输出 x,i.
解析 每次执行循环体后x与i的值对应如下.
x
110
120
130
140
150
160
170
180
190
200
i
2
3
4
5
6
7
8
9
11
答案 200,11
6.计算1+2+3+…+100的值有如下算法:
1.令i=1,S=0.
2.计算S+i,仍用S表示.
3.计算i+1,仍用i表示.
4.判断i≤100是否成立.若是,则返回第二步;
否则,输出S,结束算法.
请利用DoLoop语句写出这个算法对应的语句.
解 语句如下:
S=S+i
LoopWhile i<
=100
输出S
7.设计一个计算1+
的算法,并画出算法框图写出算法语句.
解 原式=1+
,计数变量在指数位置上,累积变量与计数变量的初始值都可看作1,利用循环结构设计算法.
(1)S=1;
(2)i=1;
(3)S=S+
;
(4)i=i+1;
(5)如果i≤20,则返回(3),重新执行(3)、(4)、(5),否则输出S.
语句如下:
Fori=1To20
S=S+1/(3i)
相应算法框图如下图所示:
能力提升
8.读下面甲、乙两个程序:
甲:
For i=1 To 1000
S=S+i
i=i+1
乙:
i=1000
i=i-1
LoopWhile i≥1
对甲、乙两程序和输出结果判断正确的是( )
A.程序不同,结果不同
B.程序不同,结果相同
C.程序相同,结果不同
D.程序相同,结果相同
解析 甲中S=1+2+3+…+1000,乙中S=1000+999+…+2+1.
答案 B
9.执行如图的算法框图,如果输入的N=4,那么输出的S等于( )
B.1+
D.1+
解析 当输入的N=4时,由于k=1,S=0,T=1,因此T=
=1,S=1,k=2,此时不满足k>4;
当k=2时,T=
,S=1+
,k=3,此时不满足k>4;
当k=3时,T=
,k=4,此时不满足k>4;
当k=4时,T=
,k=5,此时满足k>4;
因此输出S=1+
,故选B.
10.运行下面的语句,输出的值为________.
i=i+1
LoopWhileS<
18
解析 由于循环体是先执行S=S+i,再执行i=i+1,然后进行判断,当S=1+2+3+4+5=15时,执行i=5+1=6,这时15<
18成立,再循环一次S=15+6=21,i=6+1=7,这时再判断21<
18不成立,于是i=7.
答案 7
11.执行下面算法语句,输出的结果是________.
A=1
B=1
A=A+B
B=A+B
LoopWhileB<
15
C=A+B
输出C.
解析 循环结构中的循环体的作用是将前两个数相加,得到后一个数;
如果没有循环条件的限制,程序中的循环结构将连同初始值,依次给A、B赋值为1、1,2、3,5、8,13、21,…,其中第一,三,五,…个数为A的值,第二,四,六,…个数为B的值;
可见,当B=21时,循环结束,此时A=13,所以,C=A+B=34.
答案 34
12.用循环语句书写求1+
的算法,并画出算法框图.
解 算法语句如下:
Fori=1To1000
13.(选做题)设计算法求
的值,并画出算法框图及编写算法语句.
解 算法如下:
第一步:
令S=0,i=1;
第二步:
若i≤99成立,则执行第三步;
否则,输出S,结束算法;
第三步:
S=S+
第四步:
i=i+1,返回第二步,
算法框图:
或
算法语句:
S=0i=1
Fori=1To99Do
S=S+1/(i*(i+1))或S=S+1/(i*(i+1))
Nexti=i+1
输出S.LoopWhilei<=99