登录 / 注册
首页>人教版高中数学必修3>1.2.3循环语句

免费下载高中必修3数学公开课《1.2.3循环语句》课件ppt

以下为幻灯片页面截图,请点击左边“我要下载”按钮免费下载无水印完整文件
免费下载高中必修3数学公开课《1.2.3循环语句》课件ppt免费下载高中必修3数学公开课《1.2.3循环语句》课件ppt
1.2.3 循环语句
问题提出
1.两种条件语句的一般格式分别是什么?
在算法程序语言中,一般通过循环语句来处理算法中的循环结构。
我们知道,在实际问题中会遇到许多有规律的重复运算,或者在程序中需要对某些语句进行重复执行,这样就需要用到循环语句进行控制。
Scilab程序语言中提供了两种循环语句:for 循环和while 循环。
当型(While型)循环结构
直到型(Until型)循环结构
两种循环结构:
一、 for循环语句
for 循环语句的一般格式:
for 循环变量=初值:步长:终值
循环体;
end
这是一种“直到型”循环结构。
解答:用for循环语句来实现计算
S=0;
for i=1:1:1000
S=S+i;
End
S
例1. 求1+2+3+…+1000=?
算法思想:可以采用重复计算,而且数字1、2、3、…、1000是有规律的一列数,逐渐循环递增,每次增幅为1.
第二步开始进入for循环语句,首先设i为循环变量,分别设定其初值、步长、终值。这里初值为1,步长为1(步长是指循环变量i 每次增加的值。步长为1,可以省略不写,若为其他值,则不可省略),终值为1000。
第三步为循环表达式(循环体)。
第四步用“end”控制结束一次循环,开始一次新的循环。
对循环体的认识:
对第三步循环表达式“S=S+i”的理解:
i=1 S=S+i 是 S=S+1,并把0+1赋值给S, 第一次循环结束时S为1,此时S记录了第一个数的值,遇到“end”开始第二次循环;
i=2 S=S+i 是 S=S+2,并把1+2赋值给S, 第二次循环结束S为1+2=3,此时S记录了前两个数的和,遇到“end”开始第三次循环;
i=3 S=S+i 是 S=S+3,并把(1+2)+3赋值给S,第三次循环结束时S为1+2+3=6,此时S记录的是前三个数的和,遇到“end”开始第四次循环;
……
一直到i=1000, 此时S为1+2+3+……+1000.
结果输出:
注意:如果在程序的第三行后,去掉分号,再运行程序,可以在屏幕上显示每一步循环输出的结果。
S=0;
for i=1:1:1000
S=S+i
End
S
S=0;
for i=1:1:1000
S=S+i;
End
S
认真比较两个程序的区别!
在例1的程序中,如果我们将初值、步长、终值、循环体分别改变,情形又如何呢?
1. 将初值改变,如改为“i=100:1:1000”则该程序描述的算法为求和
“100+101+102+……+1000 .
2. 终值改变的情形类似.
如改为“i=1:1:100”则该程序描述的算法为求和“1+2+3+……+100 .
3.将步长改变,如改为“i=1:2:1000,则表示求和1+3+5+……+999;
如改为“i=1:3:1000”,则表示求和1+4+7+……+1000;
4.将循环体改变,如改变为“S=S+1/i”,则表示求和
解:从题目可以看出,分母是有规律递增的,可以引入累加变量Sum和计数变量i,且sum=sum+1/i是反复进行的,可用循环结构及语句来描述算法.
S=0;
for i=2:2:200
S=S+1/i;
End
S
开始
S=S+1/i
S=0, i=2
结束
输出S
i=i+2
i>200


二、 while循环语句
While 循环语句的一般格式为:
while 表达式
循环体;
end
这是一种“当型”循环结构。
说明:当程序执行时,遇到while语句,先对表达式所描述的条件进行判断,如果条件成立,则执行while和end之间的循环体,然后再判断上述条件,再次执行循环体,这个过程反复执行,直到某一次不符合条件为止,这时不再执行循环体,将跳到end语句后,执行end后面的语句;
While 表达式
循环体
End
例3. 求平方值小于1000的最大整数。
解答:Scilab的格式来解决这个问题
--> j=1;
--> while j*j<1000, j=j+1; end
--> j=j-1;
--> j
j=
31.
在输入完程序的第二行后,击Enter键,再在提示符下输入j,击Enter键后,输出最大的j值.
步骤:
第一步是选择一个变量j表示数值,并赋给初值1;
第二步开始进入while循环语句
循环体:j*j<1000, j=j+1;
解释:j=1时,1*1=1<1000, j=1+1=2;遇到end开始第二次循环;
j=2时,2*2=4<1000, j=2+1=3; 遇到end开始第三次循环;…
第三步单击Enter键,再在提示符输入j,击Enter键,输出最大j值
例4.用while循环语句编写一个程序,计算1×3×5×……×99.
解:程序为:
S=1;
i=1;
while i<=99
S=S*i;
i=i+2;
end
S
例5. 一球从100m高度落下,每次落地后反跳为原高度的一半,再落下。在第10次落地时,共经过多少路程?第10次下落多高?
解:算法分析:
第1次下落高度h1=100;
第2次下落高度h2=50;
……
第10次下落高度h10=h9/2.
递推公式:h1=100, hn+1=hn/2,
n=1,2,……,9.
到第10次落地时,共经过了
h1+2h2+2h3+……+2h10(m).
S=0;
h=100;
S=S+h;
for i=2; 10, h=h/2; S=S+2*h; end
S
h
例6.计算 的值。
要求用两种循环语句分别写出程序。
解:用循环结构实现算法需搞清初值是谁.
用for语句书写程序:
x=1/6;
for i=1:1:4
x=1/(6+x);
end
Print(%io(2),x)
用while语句书写程序:
x=1/6;
i=1;
while i<=4
x=1/(6+x);
i=i+1;
end
Print(%io(2),x)
例7. 编程求12-22+32-42+……+992-1002的值.
解:这可以通过分别求奇数项与偶数项的和,然后综合起来;也可以运用求余数换算modulo(n,k)编写,下面的程序:
函数modulo(n,k)的意义是求整数n除以k所得到的余数。
S=0
for i=1:1:100
if modulo(i,2)=1
S=S+i^2;
else S=S-i^2;
end
end
Print(%io(2),S)
例8.试用算法语句表示:寻找满足1×3×5×7×……× >10000的最小整数的算法.
解:本例中循环的次数不定,因此可用“While循环”语句,具体描述如下:
S=1;
i=1;
While S≤10000
i=i+2;
S=S*I;
End
Print(%io(2), i)
练习题
1、编写程序,计算函数f(x)=x2-3x+5当x=1,2, 3,…,20时的函数值。
x=1;
while x<=20
y=x^2-3*x+5;


x=x+1;
end
for x=1:1:20
y=x^2-3*x+5;


x=x+1;
end
m=1;
i=1;
n=input( “n=”);
While i<=n
m=m*i;
i=i+1;
end
print(%io(2),m)
2.编写一个程序,输入正整数n,计算它的
阶乘n!(n!=n*(n-1)*…*3*2*1)。
m=1;
n=input( “n=”);
for i=1:1:n
m=m*i;
i=i+1;
end
print(%io(2),m)
3、根据下面的程序,画出其算法的程序框图.
i=-1;
while i<=1
y=i*i*i;
i=i+0.2;
y
end
开始
y=i*i*i
i=-1
结束
输出y
i=i+0.2
i<=1