pascal-for循环语句

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第六课for循环语句
在实际应用中,会经常遇到许多有规律性的重复运算,这就需要掌握本章所介绍的循环结构程序设计。

在Pascal语言中,循环结构程序通常由三种的循环语句来实现。

它们分别为FOR循环、当循环和直到循环。

通常将一组重复执行的语句称为循环体,而控制重复执行或终止执行由重复终止条件决定。

因此,重复语句是由循环体及重复终止条件两部分组成。

一、for语句的一般格式
for <控制变量>:=<表达式1> to <表达式2> do <语句>;
for <控制变量>:=<表达式1> downto <表达式2> do <语句>;
其中for、to、downto和do是Pascal保留字。

表达式1 与表达式2的值也称为初值和终值。

二、For语句执行过程
①先将初值赋给左边的变量(称为循环控制变量);
②判断循环控制变量的值是否已"超过"终值,如已超过,则跳到步骤⑥;
③如果末超过终值,则执行do后面的那个语句(称为循环体);
④循环变量递增(对to)或递减(对downt o)1;
⑤返回步骤②;
⑥循环结束,执行for循环下面的一个语句。

三、说明
①循环控制变量必须是顺序类型。

例如,可以是整型、字符型等,但不能为实型。

②循环控制变量的值递增或递减的规律是:选用to则为递增;选用downto则递减。

③所谓循环控制变量的值"超过"终值,对递增型循环,"超过"指大于,对递减型循环,"超过"指小于。

④循环体可以是一个基本语句,也可以是一个复合语句。

⑤循环控制变量的初值和终值一经确定,循环次数就确定了。

但是在循环体内对循环变量的值进行修改,常常会使得循环提前结束或进入死环。

建议不要在循环体中随意修改控制变量的值。

⑥for语句中的初值、终值都可以是顺序类型的常量、变量、表达式。

四、看下面程序段:
var
K, I: Integer;
begin
K := 0;
for I := 1 to 10 do
K := K + I;
End;
同样的for语句可以用正好相反的计数器来写:Array var
K, I: Integer;
begin
K := 0;
for I := 10 downto 1 do
K := K + I;
End;
例1.输出1-100之间的所有偶数。

var i:integer;
begin
for i:=1 to 100 do
if i mod 2=0 then write(i:5);
end.
例2.求N!=1*2*3*…*N ,这里N不大于10。

分析:程序要先输入N,然后从1累乘到N。

程序如下:
var
n,i : integer;{i为循环变量}
S : longint;{s作为累乘器}
begin
write('Enter n=');readln(n);{输入n}
s:=1;
for i:=2 to n do{从2到n累乘到s中}
s:=s*i;
writeln(n,'!=',s);{输出n!的值}
end.
(思考:更改上面的程序,使之输出的值是s=1+1/2+1/3+1/4+…+1/n,再改之,使其值为
s=1*1/2*1/3*1/4*…*1/n)
注意:不允许在循环体内再对循环控制变量赋值。

例如:
A:=10;B:=50;
FOR K:=A TO B DO
BEGIN
K:=K+1;{这一句是错误的!!!!!!!!}
WRITELN (K);
END;
五、循环的嵌套:
例4.用“*”号打印出如下的长方形图案。

*********
*********
*********
*********
解:①上面给出的图例共有4行,我们可以用一个循环控制行的变化;
②在每行中又有9列,我们可以在前面控制行的循环中再套一个循环来控制列的变化。

Pascal程序:
Program ex36;
Begin
For a := 1 to 4 do {外循环控制行的变化}
Begin
For b := 1 to 9 do {内循环控制列的变化}
write(‘*’);
Writeln; {输出一行的“*”后换行}
End;
Readln;
End.
程序中的循环对于a的每个值都包含着一个b=(1~9)次的内循环。

外循环for a 将内循环for b 包含在里面,称为for循环的嵌套。

嵌套形式如:
for a:=n1 to n2 do
for b:=m1 to m2 do 循环体语句;
例5.打印出九九乘法表:
解:设a为被乘数,范围为1~9;b为乘数,范围为1~a;乘式为a*b=(a,b的乘积),则a=1: b=1~a 1*1=1
a=2: b=1~a 2*1=2 2*2=4
a=3: b=1~a 3*1=3 3*2=6 3*3=9
a=4: b=1~a 4*1=4 4*2=8 4*3=13 4*4=16
::
a=9 b=1~a 9*1=9 9*2=18 …9*9=81
练习
1.求s=1+4+7+…+298的值。

2.编写一个评分程序,接受用户输入10个选手的得分(0-10分),然后去掉一个最高分和一个最低分,求出某选手的最后得分(平均分)。

3.用一张一元票换1分、2分和5分的硬币,每种至少一枚,问有哪几种换法(各几枚)?。

相关文档
最新文档