Pascal程序设计(第3课)For循环

上传人:m**** 文档编号:584516424 上传时间:2024-08-31 格式:PPT 页数:20 大小:186.53KB
返回 下载 相关 举报
Pascal程序设计(第3课)For循环_第1页
第1页 / 共20页
Pascal程序设计(第3课)For循环_第2页
第2页 / 共20页
Pascal程序设计(第3课)For循环_第3页
第3页 / 共20页
Pascal程序设计(第3课)For循环_第4页
第4页 / 共20页
Pascal程序设计(第3课)For循环_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《Pascal程序设计(第3课)For循环》由会员分享,可在线阅读,更多相关《Pascal程序设计(第3课)For循环(20页珍藏版)》请在金锄头文库上搜索。

1、第第3 3课课【回顾】【回顾】程序程序= =数据结构数据结构+ +算法算法; ;算法设计遵循的原则:算法设计遵循的原则:“自顶向下逐步求精自顶向下逐步求精” ” 顺序结构顺序结构 :按照书写顺序执行的语句:按照书写顺序执行的语句 。实现实现选择结构选择结构的语句:的语句:条件语句(条件语句(IfIf语句)语句)二选一;二选一; 、IF IF 条件条件 、IF IF 条件条件 THEN THEN 语句语句1 1 THEN THEN 语句;语句; ELSE ELSE 语句;语句;情况语句(情况语句(casecase语句)语句)多选一;多选一; Case Case of of 1: 1; n: n;

2、 End End复合语句是一个以复合语句是一个以beginbegin开头,以开头,以endend结束的若干条结束的若干条语句组成的语句序列。语句组成的语句序列。复合复合IfIf语句语句:在:在ifif语句中,语句中,thenthen和和elseelse后的语句也后的语句也可能是可能是ifif语句,此时称为语句,此时称为ifif语句的嵌套,或复合语句的嵌套,或复合ifif语句。语句。 IF IF 条件条件1 1 THEN THEN 语句语句1 1 ELSE IF ELSE IF 条件条件2 2 THEN THEN 语句语句2 2 ELSE ELSE 语句语句3 3;【回顾】【回顾】【循环结构循环

3、结构 】 循环结构循环结构 :利用循环结构语句,我们可以只编写少量:利用循环结构语句,我们可以只编写少量的语句,让计算机重复执行多次,从而完成大量同类的语句,让计算机重复执行多次,从而完成大量同类的计算。的计算。 在在PascalPascal中,实现循环程序设计的语句有三种:中,实现循环程序设计的语句有三种: ForFor语句:语句:规定循环次数的循环形式;规定循环次数的循环形式; WhileWhile语句:语句:满足条件时执行循环的形式;满足条件时执行循环的形式; RepeatRepeat语句:语句:反复执行直到满足条件停止的循环形式。反复执行直到满足条件停止的循环形式。【ForFor语句循

4、环结构语句循环结构 】 在在PascalPascal中,实现循环结构的中,实现循环结构的ForFor语句的一般形式为:语句的一般形式为: For For := := To To Do Do 程序的执行过程为:程序的执行过程为:(1)(1)将将初值初值赋给赋给循环变量循环变量;(2)(2)将将循环变量循环变量与与终值终值比较,比较,小于等于终值时小于等于终值时,执行循环体;,执行循环体;(3)(3)执行完循环体,将循环变量的执行完循环体,将循环变量的后继值后继值赋给循环变量;赋给循环变量;(4)(4)继续与终值进行比较继续与终值进行比较,若仍小于等于终值,再次执行循环体;,若仍小于等于终值,再次

5、执行循环体;(5)(5)直到直到循环变量的值大于终值循环变量的值大于终值,结束,结束ForFor语句;语句;(6)(6)执行执行ForFor语句后面的语句。语句后面的语句。 【ForFor语句循环结构语句循环结构 】 ForFor语句还有另外的一种形式:语句还有另外的一种形式: For For := := DowntoDownto Do Do 这是一个从较大值递减到终值的循环。这是一个从较大值递减到终值的循环。 程序的执行过程为:程序的执行过程为:(1)(1)将将初值初值赋给赋给循环变量循环变量;(2)(2)将将循环变量循环变量与与终值终值比较,比较,大于等于大于等于终值时,执行循环体;终值时

6、,执行循环体;(3)(3)执行完循环体,将循环变量的执行完循环体,将循环变量的前导值前导值赋给循环变量;赋给循环变量;(4)(4)继续与终值进行比较继续与终值进行比较,若仍大于等于终值,再次执行循环体;,若仍大于等于终值,再次执行循环体;(5)(5)直到直到循环变量的值小于终值循环变量的值小于终值,结束,结束ForFor语句;语句;(6)(6)执行执行ForFor语句后面的语句。语句后面的语句。 For For := := To To Do Do 注意事项注意事项:(1)(1)循环变量的初值和终值可以是常量、变量或表达式。循环变量的初值和终值可以是常量、变量或表达式。(2)(2)循环变量的类型

7、必须与初值和终值相同,且只能是循环变量的类型必须与初值和终值相同,且只能是整型整型、字符字符型型、布尔型布尔型、枚举型枚举型、子界型子界型等有序类型。等有序类型。(3)(3)循环体如果是多行语句,必须使用复合语句。循环体如果是多行语句,必须使用复合语句。(4)(4)在循环体中对初值和终值表达式的改变不会影响循环次数及循在循环体中对初值和终值表达式的改变不会影响循环次数及循环变量的取值。不允许在循环体中用任何语句改变循环变量环变量的取值。不允许在循环体中用任何语句改变循环变量的值。的值。(5)(5)从从ForFor语句退出时,循环变量的值是没有定义的,不得使用。语句退出时,循环变量的值是没有定义

8、的,不得使用。(6)(6)如果初值大于终值,循环体将根本不执行。如果初值大于终值,循环体将根本不执行。 例例1 1:计算:计算1+2+3+1001+2+3+100之和之和。 分析:可以使用循环,每循环一次,将循环变量分析:可以使用循环,每循环一次,将循环变量依次加到依次加到s s上就得到了上就得到了1 1到到100100的和。那么在循环前应该的和。那么在循环前应该做的工作就是:将做的工作就是:将s s值置为值置为0 0(想一想,为什么?)。(想一想,为什么?)。一级算法:一级算法:1 1、将存放和的变量、将存放和的变量s s置为置为0 0;2 2、每循环一次,就将循环变量的值加到每循环一次,就

9、将循环变量的值加到s s上;上;3 3、输出输出s s。二级求精二级求精(第第2 2步)步)2-2-1 1、For i:=1 to 100 doFor i:=1 to 100 do2-22-2、 s:=s+i s:=s+i;例例1 1:计算:计算1+2+3+1001+2+3+100之和之和。 参考程序:参考程序: ProgramProgram b1 b1(input,outputinput,output);); Var Var i,s:integeri,s:integer; Begin Begin s:=0s:=0; For For i:=1i:=1 to to 100100 do do s:

10、=s+i s:=s+i; writeln writeln(s)(s); Readln Readln; 能购让你运行结束前看到运行结果能购让你运行结束前看到运行结果 End.End.例例2 2:读入:读入1010个数,计算它们的和、积、平均值。个数,计算它们的和、积、平均值。 分析:可以使用循环,每循环一次,读入一个数分析:可以使用循环,每循环一次,读入一个数值,分别加到值,分别加到s s和乘到和乘到m m上,最后计算平均值。循环前应上,最后计算平均值。循环前应该做的工作就是:将该做的工作就是:将s s值置为值置为0 0,将,将m m值置为值置为1 1 。一级算法:一级算法:1 1、将存放和的变

11、量、将存放和的变量s s置为置为0 0,存放乘积的变量,存放乘积的变量 m m置为置为1 1;2 2、每循环一次,就将读入的值加到每循环一次,就将读入的值加到s s并乘到并乘到m m上;上;3 3、计算平均值、计算平均值a a;(;(a:=s/10a:=s/10)4 4、输出输出s s,m m,a a。二级求精二级求精(第第2 2步)步)2-2-1 1、For i:=1 to 10 doFor i:=1 to 10 do2-22-2、依次读入每个数,依次读入每个数,read(x)read(x);2-32-3、将将x x加到加到s s上,上,s:=s+xs:=s+x;2-42-4、将将x x乘到

12、乘到m m上,上,m:=m*xm:=m*x; ProgramProgram b2 b2(input,outputinput,output);); Var Var x,s,m,a:realx,s,m,a:real; i:integer i:integer; Begin Begin s:=0s:=0; m:=1 m:=1; For For i:=1i:=1 to to 1010 do do beginbegin readread(x)(x); s:=s+x s:=s+x; m:=m*x m:=m*x; endend; For ; For a:=s/10 a:=s/10; writelnwritel

13、n(sum=,s,(sum=,s,mulmul=,m,=,m,aveave=,a =,a ) ); End. End.例例2 2:读入:读入1010个数,计算它们的和、积、平均值。个数,计算它们的和、积、平均值。 参考程序:参考程序:在累加之前,累加单元一定要清在累加之前,累加单元一定要清0 0,否则它原来,否则它原来可能是任意数,这样在第一次累加时就不对了。可能是任意数,这样在第一次累加时就不对了。同样,累乘求积前,累乘单元一定要置同样,累乘求积前,累乘单元一定要置1 1,否则,否则它原来可能是任意数,这样在第一次累乘时就它原来可能是任意数,这样在第一次累乘时就不对了。不对了。清清0 0和置

14、和置1 1必须在循环之前做。必须在循环之前做。 注意注意例例3 3:输入:输入2020个数,求出其中的最大值和最小值。个数,求出其中的最大值和最小值。 分析:首先将第一个数赋给分析:首先将第一个数赋给maxmax和和minmin,以后每读入一个数以后每读入一个数都与都与maxmax和和minmin进行比较,将较大的数存入进行比较,将较大的数存入maxmax,将较小的数存入将较小的数存入minmin,这样这样maxmax中始终存放的是最大的数,中始终存放的是最大的数,minmin中始终存放的是最中始终存放的是最小的数。小的数。 算法:算法:1 1、读入第一个数,将它赋给、读入第一个数,将它赋给m

15、axmax和和minmin; 2 2、For i:=2 to 20 do For i:=2 to 20 do ; begin begin 3 3、 读入读入x x; 4 4、 If xmax If xmax 5 5、 Then max:=x Then max:=x 6 6、 Else If xmin Else If xmaxxmax ThenThen max:=x max:=x ElseElse IfIf xmin xmin ThenThen min:=x; min:=x; endend; For ; For writeln writeln(max=,max,min=,min )(max=,m

16、ax,min=,min ); End. End.参考程序:参考程序:例例4 4:按正序和反序输出:按正序和反序输出2626个英文字母。个英文字母。 分析:正序和反序输出可以使用分析:正序和反序输出可以使用ForFor语句的第一语句的第一种形式(循环变量递增)和第二种形式(循环变量递种形式(循环变量递增)和第二种形式(循环变量递减)实现。为了方便起见,将循环变量定义成字符类减)实现。为了方便起见,将循环变量定义成字符类型。型。算法:算法: 1 1、For For chch:=a to z do :=a to z do ; 2 2、 write( write(chch) ); 3 3、For Fo

17、r chch:=z :=z downtodownto a do a do ; 4 4、 write( write(chch) )例例4 4:按正序和反序输出:按正序和反序输出2626个英文字母。个英文字母。 ProgramProgram b4 b4(input,outputinput,output);); Var Var ch ch:char:char; Begin Begin For For chch:=a:=a to to zz do do write write( (chch) ); Writeln Writeln; ; 换行输出下面的内容换行输出下面的内容 For For chch:=

18、z:=z downtodownto aa do do write write( (chch) ); Writeln Writeln; ; End. End.参考程序:参考程序:练习练习1 1:计算:计算n!n!,其中其中n n由键盘输入。由键盘输入。 练习练习2 2:输入:输入1010个学生成绩,分别统计出成绩在个学生成绩,分别统计出成绩在85-10085-100分,分,60-8560-85分和分和6060分以下的各分数段的人数。分以下的各分数段的人数。练习练习3 3:计算:计算e ex x,lnxlnx。其中其中x=1,2,3,10x=1,2,3,10。 n!=1*2*3*4*5*nn!=1

19、*2*3*4*5*n;If If then then else else ;For For 循环变量循环变量= =初值初值 to to 终值终值 dodo e ex x函数为函数为expexp(x x), ,lnxlnx函数为函数为lnln(x)(x)参参考考格格式式练习练习练习练习3 3输出格式:输出格式:X exp(x) X exp(x) lnln(x)(x)1 2.71828E+000 1 2.71828E+000 0.00000E+000 0.00000E+0002 2 ProgramProgram lianxi1 lianxi1(input,outputinput,output);)

20、; VarVar n,i:integern,i:integer; fac fac:real:real; BeginBegin readln readln(n)(n); fac fac:=1:=1; ForFor i:=2 i:=2 toto n n dodo fac fac:=:= fac fac*i*i; Writeln Writeln(n,!=,(n,!=,facfac) ); End.End.练习练习1 1:计算:计算n!n!,其中其中n n由键盘输入。由键盘输入。返回返回练习练习2 2:用键盘输入:用键盘输入3030个学生成绩,分别统计出成绩在个学生成绩,分别统计出成绩在85-1008

21、5-100分,分,60-8560-85分和分和6060分以下的各分数段的人数。分以下的各分数段的人数。返回返回ProgramProgram lianxi2 lianxi2(input,outputinput,output);); VarVar i,a,b,c :integeri,a,b,c :integer; x,:real x,:real; BeginBegin a:=0 a:=0;b:=0; c:=0;b:=0; c:=0; ForFor i:=1 to 10 do i:=1 to 10 do beginbegin readread(x);(x); ifif (x=0) (x=0) and

22、and (x=100) (x=85) (x=85) thenthen a:=a+1 a:=a+1 else ifelse if (x=60) (x=60) thenthen b:=b+1b:=b+1 elseelse c:=c+1;c:=c+1; endend; ; WriteWrite(a,b,c)(a,b,c); EndEnd. .ProgramProgram lianxi1 lianxi1(input,outputinput,output);); VarVar i:integeri:integer; x,y:real x,y:real; BeginBegin WritelnWriteln( ( x, x, exp(x) exp(x) , , lnln(x) (x) ) ); ForFor i:=1 i:=1 toto 10 10 dodo beginbegin x:= exp(i) x:= exp(i); y:= y:=lnln(i);(i); Writeln Writeln(i,x:13,y:13)(i,x:13,y:13); endend; ; readlnreadln; ; EndEnd. .练习练习3 3:计算:计算e ex x,lnxlnx。其中其中x=1,2,3,10x=1,2,3,10。返回返回

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号