高二数学 基本算法语句——循环语句

  • 格式:doc
  • 大小:31.50 KB
  • 文档页数:6

word

1 / 6 基本算法语句——循环语句

教学

目标 1.掌握两种循环语句的一般形式,进一步体会算法的基本思想.

2.能够熟练地运用两种循环语句.

重难点 两种循环语句的形式和特点

方法及教具

教学过程 备注

一、问题情境

猴子第一天摘下若干个桃子,当即吃了一半,觉得还不过瘾,又多吃了一个.第二天将剩下的桃子吃掉一半,又多吃了一个,以后每天都吃前一天剩下的一半加一个.到第十天想吃时只剩下一个桃子了.求第一天共摘了多少个桃子?

分析:第十天的桃子数S10=1;第九天的桃子数S9=2×(S10+1)=4;第八天的桃子数S8=2(S9+1)=10;第七天的桃子数…这样不难算出第一天的桃子数.在计算每天剩下的桃子个数时步骤是相同的,即用后一天的桃子数加1再乘以2,直到算出第一天的桃子数为止.

该过程可以交给计算机做,能否设计一个算法?试画出流程图.

二、学生活动

在本课之前学生已经学习了流程图以及算法设计的三种结构,所以将这个问题的解决留给学生.

三、建构数学

能不能写出该算法的伪代码呢?

用条件语句来表示选择结构.介绍两种循环语句.

1.For循环语句

一般形式:

开始

结束 s ← 1

i ← 1

i ← i+1

s ← 2(s+1)

i≤9 Y

N

输出s word

2 / 6 For I From“初值”To“终值”Step“步长”

End For

其中“For”和“End For”之间的步骤“…”

称为循环体.若步长为1,“Step‘步长’”可以省略不写.

2.While循环语句

一般形式:While A

End While

其中A表示判断执行循环的条件.“While”和

“End While”之间的步骤“…”称为循环体.

“While”循环语句的特点是前测试,即先判断,后执行.若初始条件不成立,则循环体的内容一次也不执行.

用这两种循环语句可以写出上述问题的伪代码:

四、数学运用

书上两个例子:

•试设计一个算法,计算1×3×5×7×…×99.

s←1

s←1

For i From 3 To 99 Step 2

i←1

s←s×i

End For

Print s

While i≤99

s←s×i

i←i+2

EndWhile

word

3 / 6 Print s

End

•试设计一个算法,找出满足1×3×5×7×…×>10000的最小整数.

s←1

i←3 说明:

While s≤10000 (1)从这两个例子中体会两种循环语句的区别:

s←s×I一般地,当循环次数已经确定时,可用“For”循环

i←i+2 语句(从第一个例子中可以看出:在循环次数确定时,

End While 使用“For”循环语句书写更为简便);

i←i-2 当循环次数不能确定时,可用“While”循环语句;

(2)在第二个例子中,循环语句结束后注意要将i的

PrintI值减去2才是题中所要求的最小整数.

End

例4 抛掷一枚硬币时,既可能出现正面,也可能出现反面,预先作出确定的判断是不可能的,但是假如硬币质量均匀,那么当抛掷次数很多时,出现正面的频率应接近于50%.试设计一个循环语句模拟抛掷硬币的过程,并计算抛掷中出现正面的频率.

解:本题算法的伪代码如下:

s←0

Read n

For i From 1 to n

If Rnd>0.5 Then s←s+1

End For

Print 出现正面的频率为sn

说明:随机函数“Rnd”可以产生0与1之间的随机数.该算法中用大于0.5的随机数表示出现正面,不大于0.5的随机数表示出现反面.若将伪代码中的“Rnd>0.5”改为“Rnd<0.5”,其效果是一样的.还要注意word

4 / 6 本题的循环体是一个“行If语句”,故不需要写“End If”.

思考:能否用“While”循环语句写出伪代码?

练习:课本23页

补充:1.设计一个求1+12+13+14+…+1100值的算法.

解:本题算法的伪代码如下:

s←1

i←2

While i≤100

s←s+1i

i←i+1

End While

Print s

由于本题循环次数已定,故也可用“For”循环语句实现:

s←1

i←2

For i From 1 to 100

s←s+1i

End For

Print s

2.设计一个求小于1000的完全平方数的和的算法.

解法一: s←0

i←1

While i×i<1000

s←s+i×i

i←i+1

End While

Print s

解法二: i←1

While i×i<1000

i←i+1

End While

n←i-1 word

5 / 6 s←0

For j From 1 to n

s←s+j×j

End For

Print s

说明:循环次数不确定时,一般采用“While”循环语句,但有时也可先粗略估算循环的次数,再用“For”循环语句来实现算法.

3.求12+22+32+…+n2<1000成立的n的最大整数值,用伪代码写出算法过程.

解:本题算法的伪代码如下:

s←1

i←2

While s<1000

s←s+i2

i←i+1

End While

i←i-2

Print i

说明:(1)本题的循环条件是累加和小于1000;

(2)在循环体外设置“i←i-2”的原因是:在循环体内判断s<1000时执行了两次i←i+1,导致不符合要求,从而i的值应该减去2.

五、回顾小结

要实现循环结构就要用到循环语句.循环语句包括“For循环”和“While循环”.

1.For循环语句的一般形式:

For I From“初值”to“终值”step“步长”

End For

其中“For”和“End For”之间的步骤“…”称为循环体.若步长为1,“step‘步长’”可以省略不写.

2.While循环语句的一般形式:

While A

End While word

6 / 6

其中A表示判断执行循环的条件.“While”和“End

While”之间的步骤“…”称为循环体.“While”循环语句的特点是前测试,即先判断,后执行.若初始条件不成立,则循环体的内容一次也不执行.

3.一般地,当循环次数已经确定时,可用“For”循环语句;当循环次数不能确定时,可用“While”循环语句.

六、课外作业:

课本24页2,3,4,5,6

教后感言