while循环和repeatuntil循环

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
program xy; var
s : real; n : integer;{n表示项数} begin s:=0.0;n:=0; while s<=10 do{当s的值还未超过10时}
begin n:=n+1;{项数加1} s:=s+1/n;{将下一项值累加到s}
end; writlen(n);{输出结果} end.
sum:=sum+i; i:=i+1; end; writeln(sum); end.
i<=100
假(0)
真(非0)
sum:=sum+i i:=i+1;
下一条语句 (循环语句结束)
例2 :求恰好使s=1+1/2+1/3+…+1/n的值大于10时n的值。
分析:"恰好使s的值大于10"意思是当表达式s的前n-1项的和小于或等于10, 而加上了第n项后s的值大于10。从数学角度,我们很难计算这个n的值。故从 第一项开始,当s的值小于或等于10时,就继续将下一项值累加起来。当s的值 超过10时,最后一项的项数即为要求的n。
说明:这里while和do为保留字,while语句的特点是先判断,后执 行。当布尔表达式成立时,重复执行do后面的语句(循环体)。
1.3 举例
例 1: 求s=1+2+…+99+100.
program xy; var
i,sum:interger; begin
i:=1; sum:=0; while i<=100 do begin
program xy;
var n,f : integer;
运行程序会发现没有结果,为什么?因
t,pai : real;
为布尔表达式abs(t)>=1e-6,即1/n>=1e-
begin
6,而程序的说明部分n是整型数,它的
pai : =0; t : =1; n : =1;f : =1;
范围是-32768~32767,条件永远成立,
while abs(t)>=1e-6 do
所以形成死循环,从而没有运行结果。
begin
while循环不需要用顺序型数据来控制循
pai : =pai+t;n : =n+2;f : =-f; t : =f/n; 环的次数,改程序的说明部分中的n为
end;
Βιβλιοθήκη Baidu
实型数或说明为长整型即可,请同学们
pai : =pai*4; writeln(pai : 10 : 8);
while <布尔表达式> do <语句>;
其意义为:当布尔表达式的值为true时,执行do后面的语句。
1.2 while语句的执行过程为: ①判断布尔表达式的值,如果其值为真,执行步骤2,否则执行步骤4; ②执行循环体语句(do后面的语句); ③返回步骤1; ④结束循环,执行while的下一个语句。
642
begin
a:=b;b:=r; r:=a mod b;
420
end;
writeln(b:8);
end.
例4:利用格里高公式求π。π/4=1-1/3+1/5-1/7+…,直到最后一项的 值小于10-6为止。
【分析】解本题的关键就是求右边数值序列的和,序列有明显的特 点:分母是从1开始的奇数,加、减号轮流出现,因此,我们可以 用n=n+2表示序列数值的变化,用f=-f来设置它们知项的符号位。
2.3repeat-until语句的执行过程
(1)遇到repeat语句后,即进入循环体,顺序执行循环体内的语句。 (2)遇到until语句后,求布尔表达式的值。若值为假,则返回步 骤1;若为“真”,执行步骤3 (3)循环结束,执行until后面的下一条语句。
2.4举例
例 5: 求s=1+2+…+99+100.
repeat <语句1>; : <语句n>;
until <布尔表达式>;
其中repeat、until是Pascal保留字,repeat与until之间的所有语句称 为循环体。
2.2 说明
(1)repeat语句的特点是:先执行循环,后判断结束条件,因而至 少要执行一次循环体。 (2)repeat-until是一个整体,它是一个(构造型)语句,不要误 认为repeat是一个语句, until是另一个语句。 (3)repeat语句在布尔表达式的值为真时不再执行循环体,且循环 体可以是若干个语句,不需用begin和end把它们包起来, repeat 和 until已经起了begin和end的作用。while循环和repeat循环是可以相 互转化的。 (4)在repeat和until之间的语句构成循环。在它们之间可以有任意 多个语句,这一点和for,while循环不同, for,while循环体在语 法上只允许一条语句。要想循环多条语句必须用复合语句。
program xy求; 两个正整数m和n的最小公 倍数,
vbaegrrimena,dnl,na(,bm,可数r,n:i)以)n;.t例e用g如erm;:*n6和div4的(m最和小n的公倍最数大,a公可约以 b
r
a:=m;b:=用n;r:=a mod b;
while r<>60*d4odiv 2=12 .
program xy; var
例3:求两个正整数m和n的最大公约数。
分析:求两个正整数的最大公约数采用的辗转相除法求解。以下是辗转的算法: 分别用m,n,r表示被除数、除数、余数(一般m>n)。 ①求m/n的余数r. ②若r=0,则n为最大公约数.若r≠0,执行第③步. ③将n的值放在m中,将r的值放在n中. ④返回重新执行第①步。
while循环和 repeat-until循环
主讲人:山成虎
1. while循环 2. repeat-until循环 3.多重循环结构
对于for循环有时也称为计数循环,当循环次数未知,只能根 据某一条件来决定是否进行循环时,用while 语句或repeat语句实 现循环要更方便。
1. while循环 1.1while语句的形式为:
自己修正,以后要对变量的取值范围引 起重视。
end.
2. repeat-until循环
用while语句可以实现"当型循环",用repeat-until 语句可以实现"直 到型循环"。repeat-until语句的含义是:"重复执行循环,直到指定 的条件为真时为止"。 2.1 repeat-until语句一般格式
相关文档
最新文档