预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第七课WHILE循环与REPEAT 看下列程序的功能: ProgramExam12; Vara:byte; Begin Whilea:<=200do BEGIN Writeln(a); A:=a+1; END; Readln End. 一、WHILE循环对于for循环有时也称为计数循环,当循环次数未知,只能根据某一条件来决定是否进行循环时,用while语句或repeat语句实现循环要更方便。while语句的形式为:while<布尔表达式>do<语句>;其意义为:当布尔表达式的值为true时,执行do后面的语句。while语句的执行过程为:①判断布尔表达式的值,如果其值为真,执行步骤2,否则执行步骤4;②执行循环体语句(do后面的语句);③返回步骤1;④结束循环,执行while的下一个语句。说明:这里while和do为保留字,while语句的特点是先判断, 看下列程序的功能: ProgramExam12; Vara:byte; Begin repeat Writeln(a); A:=A+1; Untila>200 Readln End. 后执行。当布尔表达式成立时,重复执行do后面的语句(循环体)。例1、求恰好使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。程序如下:vars:real;n:integer;{n表示项数}begins:=0.0;n:=0;whiles<=10do{当s的值还未超过10时}beginn:=n+1;{项数加1}s:=s+1/n;{将下一项值累加到s}end;writlen('n=',n);{输出结果}end.例2、求两个正整数m和n的最大公约数。分析:求两个正整数的最大公约数采用的辗转相除法求解。以下是辗转的算法:分别用m,n,r表示被除数、除数、余数。①求m/n的余数r.②若r=0,则n为最大公约数.若r≠0,执行第③步.③将n的值放在m中,将r的值放在n中.④返回重新执行第①步。程序如下:programex4_4;varm,n,a,b,r:integer;beginwrite('Inputm,n:');readln(m,n);a:=m;b:=n;r:=amodb;whiler<>0dobegina:=b;b:=r;r:=amodb;end;writeln('Thegreatestcommondivideis:',b:8);end.二、直到循环(REPEAT-until语句)用while语句可以实现"当型循环",用repeat-until语句可以实现"直到型循环"。repeat-until语句的含义是:"重复执行循环,直到指定的条件为真时为止"。直到循环语句的一般形式:Repeat<语句1>;<语句n>;until<布尔表达式>;其中Repeat、until是Pascal保留字,repeat与until之间的所有语句称为循环体。说明:①repeat语句的特点是:先执行循环,后判断结束条件,因而至少要执行一次循环体。②repeat-until是一个整体,它是一个(构造型)语句,不要误认为repeat是一个语句,until是另一个语句。③repeat语句在布尔表达式的值为真时不再执行循环体,且循环体可以是若干个语句,不需用begin和end把它们包起来,repeat和until已经起了begin和end的作用。while循环和repeat循环是可以相互转化的。对于例2中求两个正整数的最大公约数,程序可用repeat-until循环实现如下:varm,n,a,b,r:integer;beginwrite('Inputm,n=');readln(m,n);a:=m;b:=n;repeatr:=amodb;a:=b;b:=r;untilr=0;writeln('Thegreatestcommondivideis',a);end.以上我们已介绍了三种循环语句。一般说来,用for循环比较简明,只要能用for循环,就尽量作用for循环。只在无法使用for循环时才用while循环和repeat-until循环,而且while循环和repeat-until循环是可以互相替代的。for循环在大多数场合也能用whiel和repeat-until循环来代替。一般for循环用于有确定次数循环,而while和repeat-until循环用于未确定循环次数的循环。当一个循环的循环体中又包含循环结构程序时,我们就称之为循环嵌套。 三、循环结构程序设计例3求1!+