基本算法语句-循环语句2

文档属性

名称 基本算法语句-循环语句2
格式 rar
文件大小 47.8KB
资源类型 教案
版本资源 苏教版
科目 数学
更新时间 2010-02-28 19:50:00

图片预览

文档简介

课件13张PPT。复习回顾练习1 求最小的正整数I,使1×3×5×…×I>10000.请写出算法.
解法1: 用“While”
语句可描述如下:
T←1     
I←( ) ?????
While T≤10000  
   I←I+2
T←T×I  
End While 
PrintI T←1     
I←3 ????
While T≤10000  
   T←T×I
I←I+2  
End While
n←I-2 
Print “I=” ; n解法2: 用“While”语句
可描述如下:练习2.2000年我国人口数约为13亿.如果每年的人口自然增长率为15‰,那么多少年后我国人口将达到或超过15亿?
这个问题可通过循环方式完成计算,即每一次在原有的基础上增加15‰,一直达到或超过15亿,再记下循环次数.试用循环语句表示这一过程.
解:分析:由于循环次数是未知的,因而可以用“While”语句完成.
设人口数为R亿,人口自然增长率为k,经历年数为n,则其伪代码为:R←13
k←0.015
n←0
While R<15
n←n+1
R←R(1+k)
End While
Print n 例题 抛掷一枚硬币时,既可能出现正面,也可能出现反面,预先作出确定的判断是不可能的,但是假如硬币质量均匀,那么当抛掷次数很多时,出现正面的频率应接近于50%.试设计一个循环语句模拟抛掷硬币的过程,并计算抛掷中出现正面的频率.
分析 抛掷硬币的过程实际上是一个不断重复地做同一件事情的过程,利用循环语句,我们容易在计算机上模拟这一过程.
在程序语言中,有一个随机函数“Rnd”,它能产生0到1之间的随机数.这样,我们可用大于0.5的随机数表示出现正面,不大于0.5的随机数表示出现反面.
不妨设抛掷硬币n次,那么我们就可以用“For”语句来完成. s←0 (s表示出现正面的次数)
Read n (n表示掷币的次数)
For i From 1 To n
If Rnd>0.5 Then
s←s+1
End If
End For
p←s/n
Print“正面向上的频率为”;p解法1:算法的伪代码为: s←0 (s表示出现正面的次数)
Read n (n表示掷币的次数)
i←1
While i≤n
If Rnd>0.5 Then
s←s+1
End If
i←i+1
End While
p←s/n
Print“正面向上的频率为”;p解法2:用“While”语句描述的伪代码为:S1 T←1;
S2 I←3;
S3 如果I≤99,那么转S4,
否则转S6;
S4 T←T×I;
S5 I←I+2,转S3;
S6 输出T.S1 T←1;
S2 I←3;
S3 T←T×I;
S4 I←I+2;
S5 如果I>99,那么转S6,
否则转S3;
S6 输出T.问题探究3
请把下面的算法改写成直到型循环.直到型循环可用右面的语句来描述!Do
循环体
Until p
End Do这个语句称为直到型语句S1 T←1;
S2 I←3;
S3 T←T×I;
S4 I←I+2;
S5 如果I>99,那么转S6
否则转S3;
S6 输出T.Do
循环体
Until p
End Do上面的算法用直到型语句
“Do…End Do”表示为:T←1
I←3
Do
T←T×I
I←I+2
Until I>99
End Do
Print T直到型语句特点是:
先执行后判断练习3.某纺织厂2007年的生产总值为300万元,如果年生
产增产率为5﹪,计算在多少年后生产总值超过400万元.解:算法的伪代码为:
P← 300
k ←5%
n ←0
While P≤400
n←n+1
P←P(1+k)
End While
Print n解:算法的伪代码为:
P← 300
k ←5%
n ←0
Do
n←n+1
P←P(1+k)
Until P>400
Print n练习4. 1,1,2,3,5,8,13,……这一列数的规律是:
第1个和第2个数是1,从第3个数起,该数是其前面2个数之和.试用循环语句描述计算这列数中第20个数的算法.解:算法的伪代码为:
a←1
b←1
m←0
For n From 3 To 20
m←a+b
a←b
b←m
End For
Print m 如果求第20个数及前20个数的和,算法的伪代码是什么?解:算法的伪代码为:
a←1
b←1
m←0
S←0
For n From 3 To 20
m←a+b
a←b
b←m
S←S+m
End For
Print m
Print m S 练习5 某班有50名学生,现将他们某次测试的成绩分为3个等级:不低于80分为A,低于60分为C,其余为B.试用条件语句表示输出每个学生的相应的成绩等级的算法.解:设学生的学号为n,对应的成绩为a.
则该算法的伪代码为:
For I From 1 To 50
Read n,a
If a≥80 Then
Print n,A
Else
If a≥60 Then
Print n,B
Else
Print n,c
End If
End If
End For
练习6 写出用区间二分法求方程f(x)=0在区间[a,b]内部的一个近似解(误差不超过ε)的一个算法.解:伪代码为:
Read a,b,ε
Do
x0←(a+b)/2
If f(x0)=0 Then Exit Do
If f(a)f(x0)<0 Then
b←x0
Else
a←x0
Until |a-b|<ε
End Do
Print x0小结: