Pascal循环结构的回顾上.ppt_第1页
Pascal循环结构的回顾上.ppt_第2页
Pascal循环结构的回顾上.ppt_第3页
Pascal循环结构的回顾上.ppt_第4页
Pascal循环结构的回顾上.ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

08年上学期基础班讲稿,第三讲循环结构回顾(上)-for循环,程序设设计基础班(A班),08年上学期基础班讲稿,知识点回顾,在程序设计中我们是通过循环语句来实现程序的逻辑判规律性的重复运算功能。在本讲中我们将回顾循环结构的各种语法格式以及该结构在我们程序设计中的重要应用;在Pascal语言中,循环结构程序通常由三种的循环语句来实现。它们分别为FOR循环、当循环和直到循环。循环结构具体分成三种1)FOR循环结构;2)当型循环while条件do;3)直到型循环repeat.until条件;通常将一组重复执行的语句称为循环体,而控制重复执行或终止执行由重复终止条件决定。因此,重复语句是由循环体及重复终止条件两部分组成。,08年上学期基础班讲稿,循环应用总结,1:一般说来,用for循环比较简明,只要能用for循环,就尽量作用for循环。只在无法使用for循环时才用while循环和repeat-until循环,而且while循环和repeat-until循环是可以互相替代的。for循环在大多数场合也能用while和repeat-until循环来代替。一般for循环用于有确定次数循环,而while和repeat-until循环用于未确定循环次数的循环。OR循环,对于for循环有时也称为计数循环,一般只有于预先知道循环的次数的应用中2:当循环次数未知,只能根据某一条件来决定是否进行循环时,用while语句或repeat语句实现循环要更方便。while语句的形式为:whiledo;其意义为:当布尔表达式的值为true时,执行do后面的语句。3:用repeat-until语句可以实现直到型循环。repeat-until语句的含义是:重复执行循环,直到指定的条件为真时为止。直到循环语句的一般形式:Repeat;:;until;,08年上学期基础班讲稿,循环结构的流程图,在实际应用中,会经常遇到许多有规律性的重复运算,这就需要掌握本章所介绍的循环结构程序设计。在Pascal语言中,循环结构程序通常由三种的循环语句来实现。它们分别为FOR循环、当循环和直到循环。通常将一组重复执行的语句称为循环体,而控制重复执行或终止执行由重复终止条件决定。因此,重复语句是由循环体及重复终止条件两部分组成。右图表示1+2+100的循环结构,I=100,NUM:=0I:=1,NUM:=NUM+II:=i+1,Y,N,Num:=0;Fori:=1to100doNum:=num+I;,08年上学期基础班讲稿,一、for语句的一般格式,for:=todo;递增for:=downtodo;EG:(1)num:=0;fori:=1to10donum:=num+I;i从1递增到100(2)num:=1;fori:=10downto1donum:=num*ii从10递减到1其中for、to、downto和do是Pascal保留字。表达式1与表达式2的值也称为初值和终值。对于for循环有时也称为计数循环,因为我们用循环控制变量来控制循环体执行的次数,循环体执行的次数是(初值和终值之差的绝对值+1),08年上学期基础班讲稿,注意下面几点,(1)循环控制变量必须为顺序型.可以是整型、字符型、布尔型、枚举型、子界型,不能为实型。如:forI:=1.5to4.5dowrite(I)是错误的。(2)循环体可以是一个基本语句,也可以是一个复合语句。例2:forI:=1tondobeginreadln(x);writeln(x+1);end;(3)循环控制变量不得在循环体内再被赋值,如下例是错误的:例3:forx:=1to10dobeginx:=2*x+1;writeln(x)end;(4)如果在循环次数没有到就提前退出循环用BREAK;如果在程序中想终止程序用exit;,08年上学期基础班讲稿,四:应用例一,例1输出1100之间的所有偶数。Programoushu(input,output);vari:integer;beginfori:=1to100do用记数形循环来实现穷举1100之间的偶数ifimod2=0thenwrite(i:5);end.思考:统计1到1000之间能够同时被3和7整除的数的个数,并计算他们的和。,08年上学期基础班讲稿,例二,例2求N!123N,这里N不大于10。分析:程序要先输入N,然后从1累乘到N。程序如下:varn,i:integer;i为循环变量S:longint;s作为累乘器beginwrite(Entern=);readln(n);输入ns:=1;fori:=2tondo从2到n累乘到s中s:=s*i;writeln(n,!=,s);输出n!的值end.思考:编程完成求输入的10个整数的积,08年上学期基础班讲稿,例3:判断任意一个输入的整数n是否为素数。,分析:素数的定义-除了1和本身没有其他因数。样例程序一:从2到n-1依此判断是否存在n的因子,Varn,k:integer;flag:boolean;Beginwrite(pleaseinputn:);readln(n);flag:=false;fork:=2ton-1doifnmodk=0thenflag:=true;ifflagthenwriteln(n,bushiyigesushu!)elsewriteln(n,shiyigesushu!);end.,08年上学期基础班讲稿,程序二Varn,k:integer;Beginwrite(pleaseinputn:);readln(n);flag:=false;fork:=2ton-1doifnmodk=0thenbeginflag:=true;break;end;ifflagthenwriteln(n,bushiyigesushu!)elsewriteln(n,shiyigesushu!);end.,08年上学期基础班讲稿,程序三Varn,k:integer;Beginwrite(pleaseinputn:);readln(n);flag:=false;fork:=2toround(sqrt(n)doifnmodk=0thenbeginflag:=true;break;end;ifflagthenwriteln(n,bushiyigesushu!)elsewriteln(n,shiyigesushu!);end.,08年上学期基础班讲稿,进一步输出11000中所有的素数,知识链接:循环的嵌套:当一个循环体本身也是一个循环结构,就构成了嵌套循环。,内层的循环变量不能和外层的循环变量相同。也就是说,嵌套的各层循环应当使用不同的变量作为循环变量。如:fori:=1to100dofork:=1to100dofort:=1to100do语句构成了一个三重循环。循环变量I,k,t的的取值过程如下表格:,08年上学期基础班讲稿,08年上学期基础班讲稿,例如,以下FOR循环输出5行,每行输出10个星号(*)FORi:=1to5DOBEGINFORj:=1TO10DOWrite(*);writeln;END;,利用循环嵌套写出例4程序,08年上学期基础班讲稿,例5:求两个整数a与b的最大公约数,vara,b,i,t:integer;beginwrite(a,b:);readln(a,b);ifabthenbegin比较A,B的大小,如果ab那么交换两个数字t:=a;a:=b;b:=t;end;fori:=bdownto1do从B开始判断,每次减少一个,直到找到为止if(amodi=0)and(bmodi=0)thenbeginwriteln(i);readln;break;找到了最大公约数,强行退出循环end;end.,在以后的学习中我们将继续学习解这个问题的其他算法,比如辗转相除法等,08年上学期基础班讲稿,让我们再深入一步,通过数学推倒我们可以证明设M为(A,B)的最大公约数;N为(A,B)的最小公倍数满足下面定理:M*N=A*B请编写程序求两个整数a与b的最大公约数和最小公倍数,08年上学期基础班讲稿,练习题,1求s=1+4+7+298的值。难度2编写一个评分程序,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论