Цикл – многократно повторяемая последовательность однотипных действий. Циклы бывают с заранее известным числом повторений и с неизвестным числом повторений.
Для организации цикла с известным числом повторений используют оператор цикла с параметром (оператор for). Вид оператора
for i:=m1 tо m2 do s;
Здесь i – параметр цикла целого или другого перечислимого типа, m1 и m2 – начальное и конечное значения параметра цикла, s – тело цикла из одного или нескольких операторов. Если тело цикла состоит из нескольких операторов (т.е. является составным оператором), то их объединяют операторными скобками begin и end. При выполнении оператора for повторяется тело цикла. Параметр цикла увеличивается на 1 при каждом повторе. При первом повторе i равно m1, при последнем повторе i равно m2. В теле оператора не следует применять операторы, меняющие значение параметра цикла. Наиболее часто этот оператор используется для выполнения операций с массивами.
Возможна следующая запись оператора: for i:=m1 downto m2 do s;
При этом параметр цикла уменьшается на 1 при каждом повторе.
Количество повторов цикла в операторе for будет следующим:
Оператор
m1 < m2
m1 = m2
m1 > m2
for … to
m 2 - m1+1раз
1 раз
Не выполняется
for … downto
Не выполняется
1 раз
m 1 - m2+1раз
Пример. Вычислить 9 раз значения функции при изменении a от –1 с шагом 0,5. Вывести на экран значения аргумента и значения функции в виде таблицы.
Решение. В программе перед циклом задается начальное значение аргумента, равное –1. Внутри цикла проверяется возможность вычисления функции. Если вычислить функцию невозможно, на экран выводится соответствующее сообщение. В противном случае вычисляется значение функции и выводится на экран вместе со значением аргумента. В конце цикла значение аргумента увеличивается на величину шага, и таким образом при следующем выполнении цикла все действия повторяются при новом значении аргумента. Когда будет выполнено девять повторений, произойдет выход из цикла. Ниже приведён текст программы:
Uses Crt; {Подключение модуля Crt}
Var {Описание переменных}
a,b:real;
i:integer;
Begin {Начало головной программы}
Clrscr; {Очистка экрана}
Writeln('Таблица функции b=f(a)'); {Вывод шапки таблицы}
Writeln('--------------------');
Writeln(' № a b ');
Writeln('--------------------');
a:=-1; {Начальное значение аргумента}
for i:=1 to 9 do {Начало цикла}
begin
{Проверка возможности вычисления функции}
if sqr(a)-0.3<0 then {Вывод сообщения}
writeln('При a = ',a:8:2,' функция не определена')
else
begin
b:=sqrt(sqr(a)-0.3); {Вычисление функции}
{Вывод номера точки, аргумента и функции на экран}
В теле оператора for могут находиться другие операторы for. Это позволяет строить циклы, содержащие внутренние циклы, которые называются вложенными. Ниже приведён текст программы, выводящей на экран таблицу умножения: