循环语句文字素材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都是循环的.