Иллюстрированный самоучитель по Turbo Pascal

Операторы повторений

В языке Турбо Паскаль имеются три различных оператора, с помощью которых можно запрограммировать повторяющиеся фрагменты программ.

Счетный оператор цикла FOR имеет такую структуру:

FOR <пар_цик>: = <нач_знач> ТО <кон_знач> DO <оператор>.

Здесь:

  • FOR, TO, DO – зарезервированные слова (для, до, выполнить);
  • <пар_цик> – параметр цикла – переменная типа INTEGER (точнее, любого порядкового типа, см. гл.4);
  • <нач_знач> – начальное значение – выражение того же типа;
  • <кон_знач> – конечное значение – выражение того же типа;
  • <оператор> – произвольный оператор Турбо Паскаля.

При выполнении оператора FOR вначале вычисляется выражение <нач_знач> и осуществляется присваивание <пар_цик>: = <нач_знач>. После этого циклически повторяется:

  • проверка условия <пар_цик> <= <кон_знач>; если условие не выполнено, оператор FOR завершает свою работу;
  • выполнение оператора <оператор>;
  • наращивание переменной <пар_цик> на единицу.

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

Пример 2.5.

Program Summ_of_Integer;
{Программа вводит целое положительное число N и подсчитывает сумму всех целых чисел от 1 до N}
var
i, n, s: Integer;
begin
Write('N = ');
ReadLn(n);. { Вводим N}
s: = 0; {Начальное значение суммы}
for i: = 1 to n do {Цикл подсчета суммы}
s: = s + i;
writeln('Сумма = ',s) {Выводим результат}
end.

Отметим два обстоятельства. Во-первых, условие, управляющее работой оператора FOR, проверяется перед выполнением оператора <оператор>: если условие не выполняется в самом начале работы оператора FOR, исполняемый оператор не будет выполнен ни разу. Другое обстоятельство – шаг наращивания параметра цикла строго постоянен и равен (+1). Существует другая форма оператора:

FOR<пар_цик>: = <нач_знач> DOWNTO <кон_знач> DO <оператор>

Замена зарезервированного слова ТО на DOWNTO означает, что шаг наращивания параметра цикла равен (-1), а управляющее условие приобретает вид <пар_цик> = <кон_знач>.

Пример 2.5 можно модифицировать так, чтобы сделать его пригодным для подсчета любых сумм – положительных и отрицательных:

………………
s: = 0;
if n >= 0 then
for i: = 1 to n do
s: = s + i else
for i: = – 1 downto n do s: = s + i;
……………

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

Оператор цикла WHILE с предпроверкой условия:

WHILE <условие> DO <оператор>.

Здесь:

  • WHILE, DO – зарезервированные слова (пока [выполняется условие], делать);
  • <условие> – выражение логического типа;
  • <оператор> – произвольный оператор Турбо Паскаля.

Если выражение <условие> имеет значение TRUE, то выполняется <оператор>, после чего вычисление выражения <условие> и его проверка повторяются. Если <условие> имеет значение FALSE, оператор WHILE прекращает свою работу.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.