循环结构复习
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
循环变量 参与运算
π/4=1 – 1/3 +1/5 – 1/7 + 1/9 - ……,要求最后一项小于10-6为止
(注意正负号的处理)
一般处理步骤:变量赋初值,累加变量根据实际需要设为0或其他值,累乘
变量一般赋值为1
(1) Var i: integer;
n, s: longint; Begin N:=1; s:=0; For i:= 1 to 20 do Begin
例2、求两个自然数M和N的最小公倍数
program ex (input, output);
var d, a, b:integer;
begin
write('please input a and b ='); readln(a,b);
if a<b then
begin
a:=a+b;
{交换a,b的值,使得a里存放较大的数}
【分析】只知循环终止的条件,而不知道具体循 环多少次,所以必须采用条件循环语句来写该程 序
例4、猜价格:中央电视台的“幸运52”栏目深受观众喜爱,其中的“猜商品价
格”的节目更是脍炙人口,现在请你编一个程序模拟这一游戏:由计算机随机
产生200至5000之间的一个整数,作为某件商品的价格,然后由你去猜是多少,
if guess=price then writeln(‘Ok’);
Until guess=price;
writeln(t);
End.
三、循环的嵌套
与分支结构的嵌套类似,当一个循环体中又 包含一个循环体时,称为“循环嵌套”。其 中,外面的循环称为“外层循环”,包含在 外层循环中的循环称为“内层循环”。根据 循环嵌套的层数的不同,又有双重循环、三 重循环等。
while 条件 do begin 语句1 break; 语句2 end;
程序运行到break时,便按照上图所示方式,直接 跳出当前循环
四、循环的跳出
而有些时候,我们只需要跳过某一次循环,可以使 用continue跳过循环,例如:
for i=1 to 100 do begin if i mod 2 =0 then continue; sum:=sum+i;
例1、一张纸的厚度为0.2mm(假设纸张无限大),将 这张纸对折多少次之后就可以超过珠穆朗玛峰的高 度(8848m)?
program ex1(input,output); var thick:real; n:integer; begin thick:=0.2; n:=0; while thick<=8848000 do begin thick:=thick*2; inc(n); end; writeln(n); end.
Begin
Randomize;
price := Random(4801)+200;
t := 0;
Repeat
t := t+1;
write(‘Qing cai yi ge zheng shu : ‘);
readln(guess);
if guess>price then writeln(‘Gao’);
if guess<price then writeln(‘Di’);
二、条件循环
repeat和while循环是条件循环
while循环是当型循环,当循环条件满足 时循环,直到条件不满足为止。
repeat循环是直到型循环,当循环条件不 满足时循环,直到条件满足为止。
条件循环的循环体内必须包含能改变控制 变量取值的语句,影响条件式的值,最终使 条件式为假(或真),结束循环。
循环结构程序设计复习
一、计数循环
For循环是一种自动计数循环 For循环的两种格式:
For 循环变量:=初值 to 终值 do 循环体 For 循环变量:=初值 downto 终值 do 循环体
循环变量在循环体中不出现,其作用仅仅是控制循环体执行的次数 次数=终值-初值+1
循环变量在循环体中出现,参与运算,不改变循环次数 循环变量在循环体中出现,被重新赋值,则改变循环次数,这种情况在pascal中 不允许出现
end;
执行过程:程序首先判断i是否为偶数,若为偶数 则跳过这次循环直接执行下一次循环,该程序的功 能为__0_~_1_00_的__奇__数_求__和__?
注意:循环在嵌套过程中,采用缩进形式
例如 for …… do Begin
……
外
循 while<条件>do
环
…… 内循环
end;
repeat
……
while…… do
……
外 循
for ……do
环
……
内循环
end;
until……;
四、循环的跳出 有些时候,有些条件已经满足了,我们不需要循环 继续执行了,就可以用break跳出循环,例如:
若你猜的数大了,则计算机输出提示“Gao”,若你猜的数小了,则计算机输出 提示“Di”,然后你根据提示继续猜,直到你猜对了,计算机会提示“Ok”,并 统计你猜的总次数。
Program ex5; Var t,price,guess: integer;
price:=trunc(random*4801)+200
b:=a-b;
a:=a-b;
end;
可以用其他方法求最小公倍数吗?
d:=a; repeat
可以先求两数最大公约数,a*b/最大 公约数
if d mod b<>0 then d:=d+a;
until d mod b=0;
writeln(d);
end.
例3、1600年前我国的一部经典数学著 作中有题:“今有物,不知其数,三 三数之,剩二;五五数之,剩三;七 七数之,剩二,问物几何。”求最小 解
计数循环的应用
program ex1 var a:integer;
循环了多少次?
begin
for a:=1 to 20 do writeln(a); Readln;
writeln(a);
end.
当循环结束时,a的值为多少?
20
计数循环用于累加和累乘,如:
(1)求s=1!+2!+……+20! (2)求π的值。
n:=n*i; s:= s+n; End; ห้องสมุดไป่ตู้riteln ( ‘s=’ , s) ; end.
(2) var s: real;
t, n: integer; Begin
N:=1; s:=0; t: =1; While 1/n >=0.000001 do begin
S:=s+t*1/n; N:=n+2; t:= -t; End; Writeln(4*s:0:0) End.