高二数学 基本算法语句——循环语句
- 格式: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
教后感言