Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебно-методическое пособие по Паскалю.doc
Скачиваний:
7
Добавлен:
25.04.2019
Размер:
398.34 Кб
Скачать

5.2 Итерационные циклические процессы

Циклический процесс называется итерационным, если заранее неизвестно количество повторений цикла, а конец вычисления определяется при достижении некоторой величиной заранее заданной точности вычисления.

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

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

Для записи итерационных процессов на языке ПАСКАЛЬ имеется два вида операторов цикла:

1) оператор с предварительным условием (предусловием);

2) оператор цикла с последующим условием (постусловием).

Для всех операторов цикла характерны следующие особенности:

- повторяющиеся вычисления записываются лишь один раз;

- вход в цикл возможен только через его начало;

- переменные оператора цикла должны быть определены до входа в циклическую часть;

- необходимо предусмотреть выход из цикла: или по естественному его окончанию, или по оператору перехода. Если этого не предусмотреть, то циклические вычисления будут повторяться бесконечно и это приведет к "зацикливанию" программы.

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

Синтаксис оператора цикла с "предусловием":

While <логическое выражение> Do

Begin

<предложения тела цикла>

End

Здесь While (пока) и Do (выполнить) - служебные слова.

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

Предложения циклической части, заключенные в операторные скобки Begin - End, представляют собой составной оператор.

Если в циклической части стоит всего одно предложение, то операторные скобки Begin - End можно не использовать и оператор цикла принимает вид:

While <логическое выражение> Do <оператор>; .

Пример: Найдем сумму первых ста членов числовой последовательности 1, 2,…

Program Summa;

Var I, Sum : Integer;

Begin

I:=1; S:=0;

While I<=100 do

Begin

S:=S+I; I:=I+1;

End;

Writeln(S);

End.

Читателю предлагается самостоятельно написать программу для нахождения произведения первых 10 чисел бесконечной последовательности 1,2,3,….

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

Синтаксис оператора цикла с "постусловием":

Repeat

< предложения тела цикла >

Until < логическое выражение> ;.

Здесь Repeat (повторить) и Until (до тех пор) - служебные слова.

Оператор с "постусловием" работает следующим образом. Предложения циклической части выполняются повторно (по крайней мере один раз). Условием прекращения циклических вычислений является истинное значение логического выражения. Итак, сначала выполняется циклическая часть, а затем проверяется условие. Так как нижняя граница предложений циклической части четко обозначена словом Until, нет необходимости заключать предложения циклической части в скобки вида Begin - End.

Пример: найти сумму первых ста членов числовой последовательности 1, 2,…

Program Summa;

Var I, Sum : Integer;

Begin

I:=0; S:=0;

Repeat

I:=I+1; S:=S+I;

Until I=100;

Writeln(S);

End.