- •Вятский государственный университет
- •Язык программирования Pascal
- •Алфавит языка Pascal
- •Структура программы
- •Присваивание
- •Ввод и вывод данных
- •Типы данных
- •Стандартные функции и процедуры
- •Операции
- •Разветвляющиеся вычислительные процессы
- •Циклы в языке Pascal
- •Оператор цикла с параметром (for)
- •Оператор цикла с предусловием (while)
- •Оператор цикла с постусловием (repeat)
- •Стандартные процедуры Break и Continue
Циклы в языке Pascal
Алгоритмы решения многих задач являются циклическими, то есть для получения результата определенная последовательность действий должна быть выполнена несколько раз. Последовательность повторяющихся действий называется циклом. Циклы обычно реализуются в программе с помощью операторов for, while, repeat.
Оператор цикла с параметром (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.
Оператор цикла с предусловием (while)
Оператор while используется в том случае, когда некоторую последовательность действий надо выполнить несколько раз, причем необходимое число повторений заранее неизвестно и может быть определено только во время работы программы, то есть в процессе вычислений.
Формат записи данной инструкции таков:
while условие do
begin
тело цикла
end;
Пока условие истинно повторяются операторы в теле цикла.
Здесь условие — выражение логического типа, определяющее условие выполнения цикла.
Выход из цикла произойдет, если условие станет ложным. Если условие ложно изначально, то операторы в теле цикла ни разу не выполнятся.
Для завершения цикла необходимо, чтобы операторы между словами begin и end влияли на значение выражения условие (изменяли значение переменных, входящих в это выражение). При неправильной организации цикла может возникнуть бесконечный цикл, что приведет к «зависанию» программы.
Пример цикла с предусловием:
a:=0;
While a<10 do inc(a);
Блок-схема выполнения оператора while приведена на рисунке 5.
Рисунок 5
Оператор цикла с постусловием (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 необходимо обязательно следить за тем, чтобы операторы, в теле цикла изменяли значение переменных, входящих в условие, иначе произойдет так называемое зацикливание (бесконечное повторение цикла).