Операторы цикла в языке программирования Паскаль
Операторы цикла заставляют выполнять входящие в их состав операторы несколько раз.
В Паскале существует три вида операторов цикла: оператор цикла с параметром, оператор цикла с предусловием, оператор цикла с постусловием.
Оператор цикла с параметром
Формат оператора цикла с параметром:
for V:=E1 to E2 do S
где V - переменная порядкового типа, Е1, Е2 - выражения того же типа, S - оператор, называемый телом цикла. Выражения Е1 и Е2 вычисляются один раз при входе в цикл. Параметр V принимает сначала значение Е1 затем непосредственно следующее за ним (SUCC (V)) и т.д. до достижения Е2. При каждом значении V выполняется оператор S. Если в теле цикла необходимо выполнить несколько операторов, то их объединяют в один с помощью составного оператора. Если конечное значение Е2 меньше начального Е1, то оператор S не выполняется ни разу.
Оператор цикла с параметром применяется также в следующем виде:
for V:=Е1 downto E2 do S
В отличии от первого случая, V изменяется от Е1 до Е2, переходя от V к pred (V).
Отметим, что если V, Е1, Е2 типа INTEGER, то в первом случае это цикл с шагом +1, а во втором с шагом -1.
Оператор цикла с предусловием
Формат оператора цикла с предусловием:
while B do S
где B - логическое выражение, S - оператор. Оператор S будет выполняться пока условие B будет истинно. Выполнение оператора цикла завершится когда выражение B впервые примет значение false.
Оператор цикла с постусловием
Формат оператора цикла с постусловием:
repeat S until B
где B - логическое выражение, S - оператор. Оператор S выполняется до тех пор, пока B не станет истинным. Оператор REPEAT выполняется по крайней мере один раз, так как проверка истинности условия B осуществляется после выполнения оператора S.
Служебные слова REPEAT и UNTIL уже играют роль скобок, поэтому операторные скобки BEGIN и END являются необязательными.
Примеры программ
В качестве примера использования операторов цикла рассмотрим программу вычисления факториала.
Программа 2.1.1. Цикл с параметром (шаг +1)
PROGRAM FACTORIAL1;
VAR I,N:INTEGER;
F:REAL;
BEGIN
WRITE('ВВЕДИТЕ N');
READLN(N); F:=1;
FOR I:=1 TO N DO F:=F*I;
WRITELN ('ФАКТОРИАЛ ОТ ',N,' РАВЕН ',F)
END.
Программа 2.1.2. Цикл с параметром (шаг -1)
PROGRAM FACTORIAL2;
VAR I,N:INTEGER;
F:REAL;
BEGIN
WRITE('ВВЕДИТЕ N');
READLN(N); F:=1;
FOR I:=N DOWNTO 1 DO F:=F*I;
WRITELN ('ФАКТОРИАЛ ОТ ',N,' РАВЕН ',F)
END.
Программа 2.2. Цикл с предусловием
PROGRAM FACTORIAL3;
VAR I,N:INTEGER;
F:REAL;
BEGIN
WRITE('ВВЕДИТЕ N');
READLN(N); F:=1; I:=1;
WHILE I<=N DO
BEGIN
F:=F*I;
I:=SUCC(I)
END;
WRITELN ('ФАКТОРИАЛ ОТ ',N,' РАВЕН ',F)
END.
Программа 2.3. Цикл с постусловием
PROGRAM FACTORIAL4;
VAR I,N:INTEGER;
F:REAL;
BEGIN
WRITE('ВВЕДИТЕ N');
READLN(N); F:=1; I:=1;
REPEAT
F:=F*I;
I:=SUCC(I)
UNTIL I>N;
WRITELN ('ФАКТОРИАЛ ОТ ',N,' РАВЕН ',F)
END.
Дата добавления: 2015-11-06; просмотров: 1069;