В этом посте мы рассмотрим оператор цикла FOR в языке паскаль. Разберём несколько примеров этого оператора.

Часто одно и то же действие нужно повторить несколько раз. Для этого используются циклы.
В языке Турбо-Паскаль есть три различных оператора, с помощью которых можно организовать цикл. Это статья посвещена одному из основных и самых мощных операторов: оператору FOR.

Оператор FOR

Оператор FOR имеет следующую структуру:

pascal
FOR пар-цикла := нач-знач TO кон-знач DO
   оператор

где FOR, TO, DO – зарезервированные слова;

пар-цикла – параметр цикла, переменная типа integer;
нач-знач, кон-знач – начальное и конечное значения цикла, любые вы-ражения целого типа;
оператор — любой оператор языка Турбо-Паскаль.

При выполнении оператора FOR вначале вычисляется выражение нач-знач и осуществляется присваивание пар-цикла:=нач-знач. После этого циклически повторяется:
— проверка условия пар-цикла<=кон-знач, если условие не выполняется, оператор FOR завершает свою работу;

  • выполнение оператора оператор;
  • увеличение переменной пар-цикла на единицу. Этот оператор используется, когда какое-либо действие нужно повторить заданное число раз. Например, чтобы получить значение xn нужно ровно n раз умножить число x само на себя:
pascal
. . .
x_n:=1;          {устанавливаем начальное значение}
for i:=1 to n do
  x_n:=x_n*n;
. . .

Примеры работы цикла

В качестве иллюстрации применения оператора FOR рассмотрим программу осуществляющую ввод с клавиатуры произвольного целого числа n и вычисление суммы всех целых чисел от 1 до n.

Первый пример

pascal
uses Crt;
var
   i, n, s : integer;
BEGIN
ClrScr;
write('Введите N: ');
readln(n);
s:=0;        {устанавливаем начальное значение}
for i:=1 to n do
   s:=s+i;
writeln('Сумма равна: ',s)
END.

Существует и другая форма оператора FOR:

pascal
FOR пар-цикла := нач-знач DOWNTO кон-знач DO
   оператор

Замена зарезервированного слова TO на DOWNTO означает, что переменная пар-цикла на каждом шаге уменьшается на единицу, а управляющее условие приобретает вид пар-цикла>=кон-знач.
В случае использования оператора FOR … DOWNTO программа из предыдущего примет следующий вид:

Второй пример

pascal
uses Crt;
var
   i, n, s : integer;
BEGIN
ClrScr;
write('Введите N: ');
readln(n);
s:=0;
for i:=n downto 1 do
   s:=s+i;
writeln('Сумма равна: ',s)
END.

Обратите внимание на оператор
s:=s+i;
Переменной s присваивается сумма ее же значения и значения другой переменной. Такой прием называется накоплением суммы и является одним из основных приемов программирования. Существует также прием накопления произведения:
p:=p*i;
Необходимо отметить, что перед использованием этих приемов соответствующим переменным должны быть присвоены начальные значения.