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

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

ЦИКЛ С ПРЕДУСЛОВИЕМ --- while...do...

   Оператор цикла явялется важнейшим оператором и имеется в большинстве современных языков программирования (а сама идея цикла возникла ещё в XIX веке!). Цикл позволяет многократно выполнить некоторое множество действий, задаваемых операторами составляющими его тело. В Паскале имеется несколько разновидностей оператора цикла. Начнём с оператора цикла с предуслвоием. Данный оператор имеет вид

   while expression do statement;

   При выполнении этого оператора вначале вычисляется значение логического выражения expression. Усли это значение истинно, выполняется оператора statement, затем значине выражения проверяется вновь и т.д., до тех пор, пока выражение не примет значение "ложь". Если выражение принимает значение "ложь" при первой же проверке, то оператор statement не выполняется вообще. Особо отмечу частный случай:

   while True do statement;

   Здесь оператор statement будет выполняться бесконечно.    Пример оператора цикла с предусловием:

   while Counter<10 do begin

   Write('Значение счётчика равно ' .Counter);

   Writeln;

   Counter := Counter + 2;

   end;

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

ЦИКЛ С ПОСТУЛОВИЕМ --- repeat...until...

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

   repeat statement until expression;

   Здесь вначале выполняет оператор statement, а затем вычислется значине логического выражения expression. Процесс повторяется, пока выражение expression принимает значение "ложь". Как только это значине станет истинным, выполнение цикла прекращается. Оператор statement может быть любм, в том числе и составным оператором:

   begin

   statement_1;

   statement_2;

   ...;

   statement_n;

   end;

   В цикле repeat...until... операторные скобки begin...end могут быть опущены. Таким образом, в общем случае оператор repeat...until... имеет следующий вид:

   repeat

   statement_1;

   statement_2;

   ...;

   statement_n;

   until expression;

   Точка с запятой перед зарезервированным словом until необязательно. В приведённом ниже частном случае.

   repeat

   statement_1;

   statement_2;

   ...;

   statement_n;

   until FALSE;

   цикл выполняется бесконечно. Ещё раз обращаю ваше внимание на то, что если в операторе while...do... проверка выполняется в начале цикла, то в цикле repeat...until... проверка выполняется в последнюю очередь, и тело цикла в любом случае выполняется хотя бы один раз. Вот пример цикла с постусловием:

   repeat

   Write ('Значение счётчика равно ',Count);

   Writeln;

   Count := Count + 2'

   until Count = 10;

   Используйте repeat, если необходимо, чтобы тело цикло выполнялось по крайней мере один раз.

------------

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

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

 

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

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