pascal第4章--循环结构的程序设计.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
pascal第4章--循环结构的程序设计

第四章 循环结构第一节 循环语句(FOR语句)第二节 当语句(?WHILE语句)第三节 直到循环(REPEAT语句)第四节 多重循环结构 在实际应用中,会经常遇到许多有规律性的重复运算,这就需要掌握本章所介绍的循环结构程序设计。在Pascal语言中,循环结构程序通常由三种的循环语句来实现。它们分别为FOR循环、当循环和直到循环。通常将一组重复执行的语句称为循环体,而控制重复执行或终止执行由重复终止条件决定。重复语句是由循环体及重复终止条件两部分组成。 第一节 循环语句(FOR语句) for 控制变量:=表达式1 to 表达式2 do 语句; //递增型循环for 控制变量:=表达式1 downto 表达式2 do语句; //递减型循环其中for、to、downto和do是Pascal保留字。表达式1 与表达式2的值称为初值和终值。循环的语句格式: FOR 变量名 := 初值 TO 终值 DO 语句;求1+2+3+……+N的和。如何编程呢?【例】 S:=0; FOR I := 1 TO 10 DO S := S + I; Writeln(‘S =’,S);for语句的一般格式 For语句执行过程 ①先将初值赋给左边的变量(称为循环变量);②判断循环变量的值是否“等于”终值,如已等于终值,则下次不再执行(本次是最后一次执行,循环变量的值也不更改),则跳到步骤⑥;③如果小于等于终值,则执行do后面的那个语句(称为循环体);④循环变量递增(对to)或递减(对downto)1;⑤返回步骤②;⑥循环结束,执行for循环下面的一个语句。 ①循环变量必须是顺序类型。可以是整型、字符型、枚举型等,但不能为实型。②循环变量的值递增或递减的规律是:选用to则为递增;选用downto则递减。③循环体可以是一个基本语句,也可以是一个复合语句。④循环变量的初值和终值一经确定,循环次数就确定了。但是在循环体内对循环变量的值进行修改,常常会使得循环提前结束或进入死环。所以禁止在循环体中随意修改控制变量的值。如:for i : =1 to 10 dobegin i : =2*i+1; //禁止类似的修改,Free Pascal中会提示语法错误 writeln(i);end; 以上for循环是一个死循环,i永远等于2,不可能达到终止值10。⑤for语句中的初值、终值都可以是顺序类型的常量、变量、表达式。说明 应用举例 例4.1 输出1-100之间的所有偶数。程序如下:Program ex4_1;var i:integer;begin for i:=1 to 100 do if i mod 2=0 then write(i:5);end.例4.2 编程计算1到100的累加和:s=1+2+3+…+100。【分析】设i为循环控制变量,累加和放在s中,利用循环变量i的值从1变化到100的规律,不需要另外引进从1变化到100的其它变量,程序的流程图如4-2所示。程序如下:Program ex4_2;var s,i : integer;begin s := 0; for i := 1 to 100 do s := s+i; writeln(s);end.运行结果:5050只要对程序稍加修改就可以计算出以下算式的值: s=1+1/2+1/3+…+1/100 s=12+22+32+…+1002 s=2+4+6+…+100等等。例4.3 将顺序打印出26个小写英文字母 : abc…zz…cba。程序如下:Program ex4_3;var k : char;begin for k : =a to z do write(k); for k : =z downto a do write(k); writeln;end.例4.4 N的阶乘是指1到N的累乘,即N!=1*2*3*…*N ,输入一个数,求这个数的阶乘? 程序如下:Program ex4_4;var n,i : integer;// i为循环变量 s : longint; //s存放阶乘的结果,类型为长整 型,防止结果太大begin readln(n); s := 1; //这条语句少了,选手们思考一 下,会出现什么现象? for i := 2 to n do //从2到n累乘到s中 s := s*i; writeln(s); //输出n!的值end.虽然s定义成longint,但输入12以上的数时,还是会出现错误的结果,说明结果超出了longint能够储存的范围,这时需要定义更大的类型,如int6

文档评论(0)

整理王 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档