double arrow

Примеры программ. Оператор цикла с постусловием


Оператор цикла с постусловием

Оператор цикла с предусловием

Оператор цикла с параметром

Операторы цикла в языке программирования Паскаль

Операторы цикла заставляют выполнять входящие в их состав операторы несколько раз.

В Паскале существует три вида операторов цикла: оператор цикла с параметром, оператор цикла с предусловием, оператор цикла с постусловием.

Формат оператора цикла с параметром:

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.

Заказать ✍️ написание учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Сейчас читают про:
Поможем в написании
> Курсовые, контрольные, дипломные и другие работы со скидкой до 25%
3 569 лучших специалисов, готовы оказать помощь 24/7