循环语句文字素材5人教B版必修3
- 格式:doc
- 大小:300.50 KB
- 文档页数:9
莫愁前路无知己,天下谁人不识君。
《循环语句》
•新题解答
高二.一班共60人,市青少年保护中心来抽样检测同学们的身体素质,要求学号被3整除的同学参加体检,已知学生的学号是从1到60号,请编写输出参加同学学号的一个程序.
解法一:第一步是选择一个变量S表示学号,并赋给初值0;
第二步开始进入WHILE循环语句,首先判断S是否小于60;
第三步为循环表达式(循环体),用WEND来控制循环;
第四步用END来结束程序.
程序框图如图所示:
开始结束输出SS=0S<=60?SS=+3是否
可写出程序如下:
S=0
WHILE S<=60
S=S+3
PRINT S
WEND
END
解法二:第一步是选择一个变量S表示学号,并赋给初值0;
第二步开始进入UNTIL循环语句;
第三步用END来结束程序.
可写出程序如下:
S=0
DO
S=S+3
PRINT S
LOOP UNTIL S>57
END
•思维过程
【例1】求小于1000的完全平方数的和.
解:算法分析:第一步是选择一个变量S表示和,并赋给初值0,再选一个循环变量i,并赋给初值1;
第二步开始进入WHILE循环语句,首先判断i的平方是否小于1000;
第三步为循环表达式(循环体); 莫愁前路无知己,天下谁人不识君。
第四步用WEND来控制循环,结束循环后执行后面的程序;
第五步用END来结束程序.
程序框图如图所示:
开始i=i+1结束ii*<1000 ?S=Sii+*S,i=0=1输出S是否
可写出程序如下:
S=0
i=1
WHILE I*i<1000
S=S+I*i
i=i+1
WEND
PRINT S
END
运行该程序,输出:
S=10416
【例2】求2+4+6+…+20的和.
解:算法分析:
第一步是选择一个变量S表示和,并赋给初值0,选择一个循环变量i,并赋初值1;
第二步开始进入WHILE循环语句,首先判断i是否小于等于10;
第三步为循环表达式(循环体);
第四步用WEND来控制循环,结束循环后执行后面的程序;
第五步用END来结束程序.
程序框图如图所示:
开始结束输出SSi=0,=1i<=10?SSi=+2*ii=+1是否
可写出程序如下:
S=0 莫愁前路无知己,天下谁人不识君。
i=1
WHILE i<=10
S=S+2*i
i=i+1
WEND
PRINT S
END
运行该程序,输出:
S=110.
•变式练习
1.求1-10191413121的值.
解:算法分析:
第一步是选择一个变量S表示和,并赋给初值0,再选一个循环变量i,并赋值为0;
第二步开始进入WHILE循环语句,首先判断i是否小于10;
第三步为循环表达式(循环体),用WEND来控制循环;
第四步用END来结束程序.
可写出程序如下:
S=0
i=1
WHILE i<=10
S=S+(-1) ^(i+1)/i
i=i+1
WEND
PRINT S
END
运行该程序,输出:
S=0.64563492.
2.小明第一天背一个单词,第二天背两个单词,以后每一天比前一天多背一个单词.问他前十天共背了多少个单词?
解:算法分析:
第一步是选择一个变量S表示和,并赋给初值1,再设一个循环变量i,并赋值为1;
第二步开始进入WHILE循环语句,首先判断i是否小于10;
第三步为循环表达式(循环体),用WEND来控制循环;
第四步用END来结束程序.
可写出程序如下:
S=1
i=1
WHILE i<10
i=i+1 莫愁前路无知己,天下谁人不识君。
S=S+i
WEND
PRINT S
END
运行该程序,输出:
S=55.
3.求平方值小于2000的最大整数.
解:可编写程序如下:
H=0
j=1
WHILE j*j<2000
H=j
j=j+1
WEND
PRINT H
END
运行该程序,输出:
H=44.
4.计算1+3+32+…+39.
解:算法分析:
第一步是选择一个变量S表示和,并赋给初值0,再选取一个循环变量i,并赋值为0;
第二步开始进入WHILE循环语句,首先判断i是否小于9;
第三步为循环表达式(循环体),用WEND来控制循环;
第四步用END来结束程序.
可写出程序如下:
S=0
i=0
WHILE i<=9
S=S+3^i
i=i+1
WEND
PRINT S
END
运行该程序,输出:
S=29524.
5.输入一个正整数n,并计算S=11×22×33×…×nn的值.
解:算法分析:
第一步是选择一个变量n,并要求输入初值;
第二步是选择一个变量S表示和,并赋给初值1,再选择一个循环变量i,并赋值为1;
第三步开始进入WHILE循环语句,首先判断i是否小于n;
第四步为循环表达式(循环体),用WEND来控制循环;
第五步用END来结束程序.
可写出程序如下:
INPUT “n=”;n 莫愁前路无知己,天下谁人不识君。
S=1
i=1
WHILE i<=n
S=S*i^i
i=i+1
WEND
PRINTS
END
[典型例题探究]
【例1】求1+413121…+1001的值,用程序语言表示其算法.
分析:设置累加和,用循环语句实现,可用WHILE语句,也可以用UNTIL语句.
解:(方法一)“WHILE语句”
s=1
i=2
WHILE i<=100
a=1/i
s=s+a
i=i+1 规律发现
此处可以改为
s=0
i=1
WEND
PRINT “1+413121…+1001=”;s
END
(方法二) “UNTIL语句”
s=1
i=2
DO
a=1/i
s=s+a
i=i+1
LOOP UNTIL i>100
PRINT “1+413121…+1001=”;s
END
【例2】求12+22+32+…+n2<1000成立的n的最大整数值,用程序语言表示其算法.
分析:设置累加和,用循环语句实现.循环的条件是累加和小于1000. 如果是求1+3+5+7+…+99的值,则关键处“i=i+1”改为“i=i+2”!类似的问题可仿此解决.
解:(方法一)“WHILE语句”
s=1
i=2 此处可改为
s=0
i=1
WHILE s<1000 莫愁前路无知己,天下谁人不识君。
a=i∧2
s=s+a
i=i+1
WEND
i=i-2
PRINT “n的最大整数值为:”;i
END
可直接写成
s=s+I∧2
(方法二)“UNTIL语句”
s=1
i=2
DO
a=i∧2
s=s+a
i=i+1
LOOP UNTIL s>1000
i=i-2
PRINT “n的最大整数值为:”;i
END 在循环体外设置“i=i-2”的原因是:在循环体内判断s<1000时执行了两次i=i+1,导致不符合要求,从而i的值应该减去2.
类似地,将平方改为立方、四次方、开平方等均可设计类似的程序.
【例3】一个小朋友在一次玩皮球时,偶然发现一个现象:球从某高度落下后,每次都反弹回原高度的31,再落下,再反弹回上次高度的31,如此反复.假设球从100 cm处落下,那么第10次下落的高度是多少?在第10次落地时共经过多少路程?试用程序语言表示其算法. 生活中处处存在数学问题,只要留心便会发现许多有趣的问题.
分析:第一次下落时高度h1=100 cm,经过一次;第二次下落时高度h2=31hcm,经过2次;第三次下落时高度h3=32h cm,经过2次……第十次下落时高度h10=39h cm,经过2次.经过的总路程是各次高度的和.
解:s=0
h=100
s=s+h
i=2 可画示意图帮助分析
h
h
h h 1
2
3 4 …
WHILE i<=10
h=h/3
s=s+2*h
i=i+1
WEND
PRINT “第10次下落的高度为:”;h
PRINT “第10次落地时共经过的路程为:”;s
END
【例4】已知m、n是两个正整数,求m+n<10的所有正整数对m、n. 若用UNTIL语句,则为:
DO
h=h/3
s=s+2*h
i=i+1
LOOP UNTIL i>10
分析:当m=1时,n可取1,2,3,4,5,6,7,8;当m=2时,n可取1,2,3,4,5,6,7;当m=3时,n可取1,2,3,4,5,6;…;当m=8时,n取1.利用循环语句实现上述算法. 用列举法找出规律;对m,n都是循环的.