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

Материал из ПИЭ.Wiki

Перейти к: навигация, поиск

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

Оператор цикла с пост-условием применяется если во время написания программы количество повторений неизвестно. Общий вид этого оператора таков:

repeat
  <операторы>;
until <условие>;

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

Файл:ktip.png

Примечание
При записи оператора слово until обычно выравнивается на слово repeat, к которому оно относится, а внутренние операторы цикла несколько сдвигаются вправо. См. также Оформление программ на языке Паскаль

Исполнение цикла повторяется до того момента, когда <условие> станет истинным.

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

  • Операторы внутри цикла должны иметь правильную последовательность, причем должен присутствовать хотя бы один оператор, влияющий на условие окончания (иначе цикл будет продолжаться бесконечно).
  • Условие окончания должно в конце концов быть удовлетворено.

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

Другой способ организации повторного выполнения оператора связан с использованием цикла с пред-условием. Этот оператор похож на оператор цикла с пост-условием (repeat), однако условие вычисляется и проверяется в начале цикла повторения, а не в конце. Оператор цикла с пред-условием имеет вид:

while <условие> do
  <оператор>;

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

Исполнение цикла повторяется до тех пор, пока <условие> истинно.

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

Файл:ktip.png

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

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

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

for <уп> := <выражение 1> to <выражение 2> do
  <оператор>;

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

for <уп> := <выражение 1> downto <выражение 2> do
  <оператор>;

В этом случае значение управляющей переменной <уп> уменьшается при каждом повторении тела цикла, а не увеличивается.

Выполнение оператора for в первом варианте (to) происходит по следующей схеме:

  1. Вычисляются значения выражения 1 и выражения 2. Это производится лишь один раз, перед входом в цикл, и поэтому границы цикла не могут изменяться операторами, стоящими внутри цикла.
  2. Параметру цикла присваивается значение выражения 1.
  3. Значение параметра цикла сравнивается со значением Выражения 2. Если параметр цикла меньше или равен этому значению, то выполняется тело цикла, в противном случае выполнение цикла заканчивается.
  4. Значение параметра цикла изменяется на следующее значение в его в типе (для целых чисел – увеличивается на единицу); происходит возврат к пункту 3.

При работе с оператором с параметром, нужно соблюдать следующие правила:

  • параметр цикла может иметь только порядковый тип;
  • в теле цикла нельзя изменять переменную «параметр цикла»;
  • при выходе из цикла значение переменной-параметра является неопределенным.
Файл:ktip.png

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

Просмотры
Инструменты

Besucherzahler russian mail order brides
счетчик посещений
Rambler's Top100
Лингафонные кабинеты  Интерактивные доски  Интерактивная приставка Mimio Teach