Изучение принципов алгоритмического программирования на языке Pascal



         

Операторы циклов - часть 2


Until <выражение>;

Рис. 6. Цикл с постусловием Repeat-Until

Существует ряд принципиальных отличий оператора Repeat-Until от оператора While:

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

-         логическое выражение в цикле с постусловием определяет условие выхода из цикла, в отличие от выражения в цикле с предусловием, определяющего условие продолжения;

-         синтаксис оператора Repeat-Until не требует использования операторных скобок, если в теле цикла более одного оператора.

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

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

Неотъемлемым атрибутом такого цикла является переменная-счётчик, в которой хранится информация о текущей итерации.

Синтаксис оператора цикла по счётчику и блок-схема, эквивалентная  циклу, показаны на рис. 7.

Подпись: нет,Подпись: да,Блок-схема: решение: счётчик<=кон_знач,Подпись: Оператор,Подпись: счётчик:=нач_знач,Подпись: счётчик:=счётчик+1

Рис. 7. Цикл по счётчику For

В языке Pascal возможен автоинкрементный (to) или автодекрементный (downto) цикл по счётчику. В первом случае происходит увеличение переменной-счётчика на 1 в конце каждой итерации, во втором – уменьшение на 1. Автоинкрементный цикл продолжается, пока значение счётчика не больше заданного конечного значения, автодекрементный – пока не меньше.

Блок-схема на рис. 7 иллюстрирует автоинкрементный вариант цикла по счётчику.

Переменная-счётчик доступна операторам в теле цикла только на чтение. В процессе работы цикла по счётчику операторам в теле цикла не допускается изменять текущее или конечное значение счётчика. После окончания цикла переменная-счётчик содержит неопределённое значение.

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

Для преждевременного завершения текущей итерации цикла любой разновидности и начала новой итерации следует использовать оператор Continue.

Для преждевременного выхода из цикла – оператор Exit.




Содержание  Назад  Вперед