В этом посте мы рассмотрим оператор цикла FOR в языке паскаль. Разберём несколько примеров этого оператора.
Часто одно и то же действие нужно повторить несколько раз. Для этого используются циклы.
В языке Турбо-Паскаль есть три различных оператора, с помощью которых можно организовать цикл. Это статья посвещена одному из основных и самых мощных операторов: оператору FOR.
Оператор FOR
Оператор FOR имеет следующую структуру:
1 2 3 4 |
FOR пар-цикла := нач-знач TO кон-знач DO оператор |
где FOR, TO, DO – зарезервированные слова;
пар-цикла – параметр цикла, переменная типа integer;
нач-знач, кон-знач – начальное и конечное значения цикла, любые вы-ражения целого типа;
оператор — любой оператор языка Турбо-Паскаль.
При выполнении оператора FOR вначале вычисляется выражение нач-знач и осуществляется присваивание пар-цикла:=нач-знач. После этого циклически повторяется:
— проверка условия пар-цикла<=кон-знач, если условие не выполняется, оператор FOR завершает свою работу;
- выполнение оператора оператор;
- увеличение переменной пар-цикла на единицу.
Этот оператор используется, когда какое-либо действие нужно повторить заданное число раз. Например, чтобы получить значение xn нужно ровно n раз умножить число x само на себя:
1 2 3 4 5 6 7 |
. . . x_n:=1; {устанавливаем начальное значение} for i:=1 to n do x_n:=x_n*n; . . . |
Примеры работы цикла
В качестве иллюстрации применения оператора FOR рассмотрим программу осуществляющую ввод с клавиатуры произвольного целого числа n и вычисление суммы всех целых чисел от 1 до n.
Первый пример
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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:
1 2 3 4 |
FOR пар-цикла := нач-знач DOWNTO кон-знач DO оператор |
Замена зарезервированного слова TO на DOWNTO означает, что переменная пар-цикла на каждом шаге уменьшается на единицу, а управляющее условие приобретает вид пар-цикла>=кон-знач.
В случае использования оператора FOR … DOWNTO программа из предыдущего примет следующий вид:
Второй пример
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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;
Необходимо отметить, что перед использованием этих приемов соответствующим переменным должны быть присвоены начальные значения.