Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3.Циклы.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
379 Кб
Скачать
☆

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

Часто встречаются задачи, когда число повторений в цикле неизвестно, а задано только некоторое условие его продолжения или окончания. Для программирования таких алгоритмов в TurboPascal существуют два типа операторов – оператор цикла с предусловием и оператор цикла с постусловием (рисунки 2 и 3).

Оператор цикла с предусловием имеет следующий синтаксис:

While выражение_условия_повтора do оператор;

Рисунок 2 – Схема «Цикл с предусловием»

Здесь оператор выполняется в цикле до тех пор, пока выражение_условия_повтора истинно. Когда выражение_условия_повтора становится ложным, то осуществляется выход из цикла и выполняется оператор, следующий за оператором while. Выражение_условия_ повтора цикла вычисляется и анализируется перед каждым шагом выполнения цикла, отсюда и термин «предусловие». Если выражение_условия_повтора изначально ложно, то оператор цикла не выполнится ни разу. При необходимости выполнить в цикле несколько операторов, их следует объединить в один составной оператор с помощью операторных скобок begin и end.

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

Оператор цикла с постусловием имеет следующий синтаксис:

r epeat

оператор_1;

оператор_2;

...

оператор_N

until выражение_условия_повтора;

Оператор или группа операторов, следующие после служебного слова repeat (повторять), выполняются хотя бы один раз. И только после этого вычисляется выражение_условия_повтора, следующее за служебным словом until (до тех пор пока). Если выражение_усло­вия_повтора имеет значение ложь, оператор или группа операторов выполняется вновь, и так до тех пор, пока выражение_условия_ повтора не примет значение истина.

Рисунок 3 – Схема «Цикл с постусловием»

При программировании циклов с предусловием или постусловием необходимо соблюдать следующие рекомендации:

  1. переменные, являющиеся частью выражения_условия_повтора цикла, не должны принимать внутри цикла значений, приводящих к тому, что выражение_условия_повтора всегда будет принимать значение истина;

  2. само выражение_условия_повтора должно быть корректным;

  3. выражение_условия_повтора должно быть по возможности более простым.

Примечание. В TurboPascal можно использовать стандартные процедуры Break и Continue внутри операторов цикла. Процедура Break позволяет досрочно выйти из цикла, не дожидаясь выполнения условия выхода. Процедура Continue позволяет начать новую итерацию цикла, даже если тело цикла не завершено.

Пример программы «Решение задачи с использованием операторов цикла»

Вычислить сумму натурального ряда чисел от 1 до N.

Решение. Программа состоит из трех частей, в которых повторяется решение этой задачи с использованием операторов цикла while, repeat и for. Очевидно, что все три результата будут одинаковыми.

Program Natur;

V ar a, N, Summa: integer;

Begin

{Ввод данных}

writeln ('N='); readln (N);

{Цикл с параметром}

Summa:=0;

for a: = 1 to N do Summa: =Summa+a;

writeln ('Результат первого суммирования:', Summa);

{Цикл с предусловием}

a:=l; Summa:=0;

while a<=N do

begin

Summa:=Summa+a;

a := a + 1;

end;

writeln ('Результат второго суммирования:', Summa);

{Цикл с постусловием}

а:=1; Summa:=0;

repeat

Summa:=Summa+ a;

а:=а+1

until a>N;

writeln ('Результат третьего суммирования:', Summa);

End.