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

上传人:本田雅阁 文档编号:3482783 上传时间:2019-09-01 格式:PPT 页数:20 大小:186.52KB
返回 下载 相关 举报
Pascal程序设计(第3课)-For循环.ppt_第1页
第1页 / 共20页
Pascal程序设计(第3课)-For循环.ppt_第2页
第2页 / 共20页
Pascal程序设计(第3课)-For循环.ppt_第3页
第3页 / 共20页
Pascal程序设计(第3课)-For循环.ppt_第4页
第4页 / 共20页
Pascal程序设计(第3课)-For循环.ppt_第5页
第5页 / 共20页
点击查看更多>>
资源描述

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

1、Pascal语言,第3课,【回顾】,程序=数据结构+算法; 算法设计遵循的原则:“自顶向下逐步求精” 顺序结构 :按照书写顺序执行的语句 。 实现选择结构的语句: 条件语句(If语句)二选一; 、IF 条件 、IF 条件 THEN 语句1 THEN 语句; ELSE 语句; 情况语句(case语句)多选一; Case of :; :; End,复合语句是一个以begin开头,以end结束的若干条语句组成的语句序列。 复合If语句:在if语句中,then和else后的语句也可能是if语句,此时称为if语句的嵌套,或复合if语句。 IF 条件1 THEN 语句1 ELSE IF 条件2 THEN

2、语句2 ELSE 语句3;,【回顾】,【循环结构 】,循环结构 :利用循环结构语句,我们可以只编写少量的语句,让计算机重复执行多次,从而完成大量同类的计算。 在Pascal中,实现循环程序设计的语句有三种: For语句:规定循环次数的循环形式; While语句:满足条件时执行循环的形式; Repeat语句:反复执行直到满足条件停止的循环形式。,【For语句循环结构 】,在Pascal中,实现循环结构的For语句的一般形式为: For := To Do ,程序的执行过程为:,(1)将初值赋给循环变量; (2)将循环变量与终值比较,小于等于终值时,执行循环体; (3)执行完循环体,将循环变量的后继

3、值赋给循环变量; (4)继续与终值进行比较,若仍小于等于终值,再次执行循环体; (5)直到循环变量的值大于终值,结束For语句; (6)执行For语句后面的语句。,【For语句循环结构 】,For语句还有另外的一种形式: For := Downto Do 这是一个从较大值递减到终值的循环。,程序的执行过程为:,(1)将初值赋给循环变量; (2)将循环变量与终值比较,大于等于终值时,执行循环体; (3)执行完循环体,将循环变量的前导值赋给循环变量; (4)继续与终值进行比较,若仍大于等于终值,再次执行循环体; (5)直到循环变量的值小于终值,结束For语句; (6)执行For语句后面的语句。,F

4、or := To Do 注意事项:,(1)循环变量的初值和终值可以是常量、变量或表达式。 (2)循环变量的类型必须与初值和终值相同,且只能是整型、字符型、布尔型、枚举型、子界型等有序类型。 (3)循环体如果是多行语句,必须使用复合语句。 (4)在循环体中对初值和终值表达式的改变不会影响循环次数及循环变量的取值。不允许在循环体中用任何语句改变循环变量的值。 (5)从For语句退出时,循环变量的值是没有定义的,不得使用。 (6)如果初值大于终值,循环体将根本不执行。,例1:计算1+2+3+100之和。,分析:可以使用循环,每循环一次,将循环变量依次加到s上就得到了1到100的和。那么在循环前应该做

5、的工作就是:将s值置为0(想一想,为什么?)。,一级算法: 1、将存放和的变量s置为0; 2、每循环一次,就将循环变量的值加到s上; 3、输出s。 二级求精(第2步) 2-1、For i:=1 to 100 do 2-2、 s:=s+i;,例1:计算1+2+3+100之和。,参考程序: Program b1(input,output); Var i,s:integer; Begin s:=0; For i:=1 to 100 do s:=s+i; writeln(s); Readln;能购让你运行结束前看到运行结果 End.,例2:读入10个数,计算它们的和、积、平均值。,分析:可以使用循环,

6、每循环一次,读入一个数值,分别加到s和乘到m上,最后计算平均值。循环前应该做的工作就是:将s值置为0,将m值置为1 。,一级算法: 1、将存放和的变量s置为0,存放乘积的变量 m置为1; 2、每循环一次,就将读入的值加到s并乘到m上; 3、计算平均值a;(a:=s/10) 4、输出s,m,a。 二级求精(第2步) 2-1、For i:=1 to 10 do 2-2、依次读入每个数,read(x); 2-3、将x加到s上,s:=s+x; 2-4、将x乘到m上,m:=m*x;,Program b2(input,output); Var x,s,m,a:real; i:integer; Begin

7、s:=0; m:=1; For i:=1 to 10 do begin read(x); s:=s+x; m:=m*x; end; For a:=s/10; writeln(sum=,s,mul=,m,ave=,a ); End.,例2:读入10个数,计算它们的和、积、平均值。,参考程序:,在累加之前,累加单元一定要清0,否则它原来可能是任意数,这样在第一次累加时就不对了。 同样,累乘求积前,累乘单元一定要置1,否则它原来可能是任意数,这样在第一次累乘时就不对了。 清0和置1必须在循环之前做。,注意,例3:输入20个数,求出其中的最大值和最小值。,分析:首先将第一个数赋给max和min,以后每

8、读入一个数都与max和min进行比较,将较大的数存入max,将较小的数存入min,这样max中始终存放的是最大的数,min中始终存放的是最小的数。,算法:1、读入第一个数,将它赋给max和min; 2、For i:=2 to 20 do ; begin 3、 读入x; 4、 If xmax 5、 Then max:=x 6、 Else If xmin 7、 Then min:=x; end; 8、输出max 和min。,例3:输入20个数,求出其中的最大值和最小值。,Program b3(input,output); Var max,min,x:real; i:integer; Begin r

9、ead(x); max:=x; min:=x; For i:=2 to 20 do begin read(x); If xmax Then max:=x Else If xmin Then min:=x; end; For writeln(max=,max,min=,min ); End.,参考程序:,例4:按正序和反序输出26个英文字母。,分析:正序和反序输出可以使用For语句的第一种形式(循环变量递增)和第二种形式(循环变量递减)实现。为了方便起见,将循环变量定义成字符类型。,算法: 1、For ch:=a to z do ; 2、 write(ch); 3、For ch:=z downt

10、o a do ; 4、 write(ch),例4:按正序和反序输出26个英文字母。,Program b4(input,output); Var ch:char; Begin For ch:=a to z do write(ch); Writeln; 换行输出下面的内容 For ch:=z downto a do write(ch); Writeln; End.,参考程序:,练习1:计算n!,其中n由键盘输入。 练习2:输入10个学生成绩,分别统计出成绩在85-100分,60-85分和60分以下的各分数段的人数。 练习3:计算ex,lnx。其中x=1,2,3,10。,n!=1*2*3*4*5*n

11、; If then else ; For 循环变量=初值 to 终值 do ex函数为exp(x),lnx函数为ln(x),参考格式,练习,练习3输出格式:,X exp(x) ln(x) 1 2.71828E+000 0.00000E+000 2 ,Program lianxi1(input,output); Var n,i:integer; fac:real; Begin readln(n); fac:=1; For i:=2 to n do fac:= fac*i; Writeln(n,!=,fac); End.,练习1:计算n!,其中n由键盘输入。,返回,练习2:用键盘输入30个学生成绩

12、,分别统计出成绩在85-100分,60-85分和60分以下的各分数段的人数。,返回,Program lianxi2(input,output); Var i,a,b,c :integer; x,:real; Begin a:=0;b:=0; c:=0; For i:=1 to 10 do begin read(x); if (x=0) and (x=85) then a:=a+1 else if (x=60) then b:=b+1 else c:=c+1; end; Write(a,b,c); End.,Program lianxi1(input,output); Var i:integer; x,y:real; Begin Writeln( x, exp(x) , ln(x) ); For i:=1 to 10 do begin x:= exp(i); y:=ln(i); Writeln(i,x:13,y:13); end; readln; End.,练习3:计算ex,lnx。其中x=1,2,3,10。,返回,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1