Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сессия2_Информатика_МУ_ЛАБ_теор.doc
Скачиваний:
4
Добавлен:
24.09.2019
Размер:
493.06 Кб
Скачать
  1. Циклы в языке Pascal

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

    1. Оператор цикла с параметром (for)

Оператор for используется, когда число повторений заранее известно. Формат записи:

for параметр := начальное_значение to конечное_значение do

begin

тело цикла

end;

Тело цикла повторяется для каждого значения параметра от начального до конечного.

Здесь параметр — имя переменной, определяющей число повторений операторов в теле цикла; начальное_значение — выражение, определяющие начальное значение параметра цикла; конечное_значение — выражение, определяющее конечное значение параметра цикла. Параметр цикла не может быть вещественной переменной. Типы параметра, начального и конечного значения должны быть совместимыми.

Если в теле цикла размещается только один оператор, то слова begin и end можно не писать.

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

Например:

for i:=1 to 10 do a:=a+0.5;

for i:=15 downto 5 do

begin

a:=a-2.5;

b:=b+1.5;

c:=c+a+b;

end;

Блок-схема выполнения данного оператора может быть построена с использованием блока модификации (рисунок 4, а) или с использованием блоков границ цикла (рисунок 4, б).

а б

Рисунок 4.

    1. Оператор цикла с предусловием (while)

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

Формат записи данной инструкции таков:

while условие do

begin

тело цикла

end;

Пока условие истинно повторяются операторы в теле цикла.

Здесь условие — выражение логического типа, определяющее условие выполнения цикла.

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

Для завершения цикла необходимо, чтобы операторы между словами begin и end влияли на значение выражения условие (изменяли значение переменных, входящих в это выражение). При неправильной организации цикла может возникнуть бесконечный цикл, что приведет к «зависанию» программы.

Пример цикла с предусловием:

a:=0;

While a<10 do inc(a);

Блок-схема выполнения оператора while приведена на рисунке 5.

Рисунок 5

    1. Оператор цикла с постусловием (repeat)

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

В общем виде оператор repeat записывается следующим образом:

repeat

тело цикла

until условие;

Операторы в теле цикла будут повторяться до тех пор, пока условие не станет истинным.

Здесь условие — выражение логического типа, определяющее условие завершения цикла.

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

a:=0;b:=50;

repeat

a:=a+2;

b:=b-3;

until a>b; {цикл будет повторяться пока a не станет больше b}

Блок-схема выполнения оператора repeat приведена на рисунке 6.

Рисунок 6.

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