Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Алгоритмические языки.doc
Скачиваний:
84
Добавлен:
14.02.2015
Размер:
814.08 Кб
Скачать

Различия между циклом - while и циклом – repeat

1) Оператор, находящийся в цикле while, повторяется до тех пор, пока условие истинно. Последовательность операторов, находящихся в цикле repeat, повторяется до тех пор, пока условие ложно.

Следовательно, в цикле while используется условие продолжения цикла, а в цикле repeat - условие окончания цикла.

2) В цикле while повторяется один оператор (несколько операторов надо объединять в составной оператор с помощью операторных скобок begin ... end), а в цикле repeat можно повторять несколько операторов без операторных скобок.

3) В цикле while сначала проверяется условие, а после этого в зависимости от значения условия выполняется или не выполняется оператор или группа операторов после слова do.

4) В цикле repeat последовательность операторов выполняется один раз, а после этого проверяется условие, т. е. эта последовательность всегда выполняется хотя бы один раз, а в цикле while операторы, составляющие тело цикла могут вообще не выполняться ни одного раза.

Циклы с параметрами. Операторы for...To...Do... И for...Downto...Do...

Иногда заранее известно, сколько раз должен выполняться цикл. Для задач такого типа в языке Паскаль имеются операторы циклов с параметрами.

Формат записи таких операторов следующий:

for <пар.цикла> := <нач.знач> to <кон.знач.> do <оператор>.

Здесь for, to, do - зарезервированные слова (для, до, выполнить);

<пар. цикла> - параметр цикла - переменная типа integer (точнее, любого порядкового типа);

<нач. знач.> - начальное значение - число или выражение того же типа;

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

<оператор> - произвольный оператор Паскаля.

Если операторов несколько, тогда, как и в операторе while ... do ..., используются операторные скобки: begin ... end.

Например, возможны такие записи оператора цикла:

for i := a to b do s1;

for j := a to b do begin s1; s2; ..., sn end; или

for k := p to m do

begin

s1;

s2;

...

sn

end;

Здесь s1, s2, s3, ... sn - операторы цикла.

При выполнении оператора for вначале вычисляется выражение <нач .знач.> и осуществляется присваивание его значения переменной цикла

<пар .цикла> := <нач. знач.>.

После этого циклически повторяются:

1) проверка условия <пар .цикла> <кон. знач.>; если условие не выполнено, оператор for завершает работу;

2) выполнение оператора <оператор> или операторов s1; s2; s3; ... sn;

3) переменная цикла <пар. цикла> увеличивается на единицу.

Надо сразу заметить, что задать шаг цикла, отличный от 1 в этом операторе, нельзя.

Существует другая форма оператора цикла for:

for <пар .цик.> := <нач. зн.> downto <кон. зн.> do <оператор>.

Замена зарезервированного слова to на downto означает, что шаг параметра цикла равен (-1).

Изменение значения параметра идет от большего значения к меньшему, т. е. <нач. знач.> <кон. знач.>.

Графическое изображение циклов for будет таким:

Здесь: p - переменная цикла; n - ее начальное значение; k - ее конечное значение. Тело цикла составляет оператор или несколько операторов: s1; s2; ... sn;, которые нарисованы в прямоугольнике.