资源描述:
《02Pascal循环结构》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、TurboPascal(二)◆循环结构程序设计循环结构撕程序中的另一种基本结构,它在许多问题中是很有用的。生活中许多复杂的问题中,常常要做大量同类的处理。如:期末考试后要统计学生的总成绩,要用同样的方法计算每一位同学的总分。在pascal显示循环程序设计的主要语句有for语句、while语句和repeat语句。我们先来看下面的问题:例:统计下面成绩表中每一位同学的总分。学号语文数学英语总分1001809597100285939610039289981004879195使用顺序结构程序如下:programcj(input,o
2、utput);vara,b,c,z:integer;beginreadln(a,b,c);z:=a+b+c;writeln('1001',z);readln(a,b,c);z:=a+b+c;writeln('1002',z);readln(a,b,c);z:=a+b+c;writeln('1003',z);readln(a,b,c);z:=a+b+c;writeln('1004',z);end.以上程序我们只对4位同学的成绩作了统计,有4次数据输入,4次计算总分,4次计算结果,而这4次都是重复操作。我们却使用了这么长的程序
3、。如果有几百个同学的成绩,那就很麻烦了。怎么样才能是编程方便计算机运行也方便呢?我们就可以用循环结构程序设计,简化程序,循环结构的特点是应用循环语句来编写程序,在程序执行过程中实现一部分程序的重复运行。◇计数循环(for)语句☆递增型for循环递增型for循环语句格式:for控制变量:=初值to终值do循环体语句;☆递减型for循环递减型for循环语句格式:for控制变量:=初值downto终值do循环体语句;递增for语句的功能是先把初值赋值给循环控制变量,然后将初值与循环终值进行比较,当初值小于终值是执行循环语句。然后
4、把控制变量在原值的基础上加1,继续与终值比较,如果仍然小于终值,则再次执行循环体,否则结束循环,执行for循环语句的下一个语句。例:fori:=5to10dowrite(i);循环语句次数的算法:输出的结果是5678910将上面计算总分的程序改进一下:programcj(input,output);vari,a,b,c,z,k:integer;beginfori:=1to4dobeginreadln(k,a,b,c);z:=a+b+c;writeln(k,z:4);end;end.例1.读入5个数,计算它们的积和平均值。P
5、rogramp1;
Var
X,acc,sum,i:integer;
ave:real;
begin
acc:=1;
sum:=0;
fori:=1to5do
begin
read(x);
acc:=acc*x;
sum:=sum+x;
end;
ave:=sum/5;
writeln(acc,ave:12:2);
end.
例2.找出100以内所有被2,3,5除余数均为一的数。
例3.寻找100~999之间的水仙花数,所谓水仙花数就是本身是它各位数三次方的和,如153=13+53+33。例4:编程计算从1到20每个数
6、的平方值。programxumin17;varm:integer; pf:longint;begin form:=1to20do begin pf:=m*m; writeln(m,'*',m,'=',pf); end; readln;end.例5,按正序和反序输出26个小写英文字母。
abc……xyz
zyx……cbavarch:char;beginforch:=‘z’downto‘a’dowrite(ch:2);end.
例6.计算n的阶乘n!,其中n!=1×2×3×4×……×n。varm:longint;
7、n,i:integer;beginreadln(n);m:=1;fori:=1tondom:=m*i;writeln(‘m=’,m);end.
例7.计算:s=1+2+3+4+5+……+99+100。Vars,i:integer;begins:=0;fori:=1to100dos:=s+i;writeln(s);end.
For语句练习:
例8、输出1到300之间的能够被3整除的数。programxumin21;var m:integer;begin form:=1to300do ifmmod3=0thenwrite(m
8、,''); readln;end.例9、统计1到1000之间能够同时被3和7整除的数的个数,并计算他们的和。programxumin22;var m,gs,he:integer;begin
gs:=0;
he:=0; form:=1to1000do if(mmod3=0)and(mmod7=0)