Паскаль. Основы программирования

       

Циклы с параметрами Операторы fortodo и fordowntodo


1. Иногда заранее известно, сколько раз должен выполняться цикл. Для задач такого типа в языке Паскаль имеются операторы  циклов с параметрами.

Формат записи таких операторов следующий:

for <пар.цикла> := <нач.знач> to <кон.знач.> do <оператор>.

Здесь for, to, do - зарезервированные слова (для, до, выполнить);

<пар. цикла> - параметр цикла - переменная типа integer (точнее, любого порядкового типа);

<нач. знач.> - начальное значение - число или выражение того же типа;

<кон. знач.> - конечное значение - число или выражение того же типа;

<оператор> - произвольный оператор Паскаля.

Если операторов несколько, тогда, как и в операторе while ...  do ..., используются операторные скобки: begin ... end.

Например, возможны такие записи оператора цикла:

for i := a to b do s1;

for j := a to b do begin

s1; s2; ..., sn end; или



for k := p to m do

begin

    s1;

    s2;

    ...

    sn

end;

Здесь s1, s2, s3, ... sn - операторы цикла.

При выполнении оператора for вначале вычисляется выражение <нач .знач.> и осуществляется присваивание его значения переменной цикла

<пар .цикла> := <нач. знач.>.

После этого циклически повторяются:

1) проверка условия <пар .цикла>

 <кон. знач.>; если условие не выполнено, оператор for завершает работу;

2) выполнение оператора <оператор> или операторов s1; s2; s3; ... sn;

3) переменная цикла <пар. цикла> увеличивается на единицу.

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

Для иллюстрации работы оператора for рассмотрим пример уже ставший традиционным при изучении работы этого оператора.

Пример 1. Составить программу вычисления факториала числа n, т. е. n!.

Вспомним из математики, что факториал числа n равен произведению чисел от 1 до n.

Например:

Замечание.

В математике принято: 0! = 1.

Программа

 

Program

Problem1; { Вычисление факториала числа n! }


    uses WinCrt;
    var
       n, f, i : longint;
    begin
       write('Введите натуральное число '); readln(n);
       f := 1;
         if n <> 0 then for i := 1 to
n do f := f*i;
       writeln('Факториал числа ', n, ' равен ', f)
    end.
Переменная n - для вводимого пользователем числа, факториал которого надо найти; f - переменная, в которой будет "накапливаться" значение факториала числа n; i - переменная цикла.
Устанавливается первоначальное значение переменной f := 1.
Далее начинается цикл. Переменной i присваивается начальное значение 1; оно сравнивается с конечным - n (1 <= n), если условие истинно, тогда
выполняется оператор (в этой программе он один): f := f*i, 1*1=1; значение переменной цикла увеличивается на 1, т. е. станет равным: i := i + 1, 1 + 1 = 2 и цикл повторяется.
Когда
значение i станет равным n, тогда цикл выполнится последний раз, потому что следующее значение i будет n + 1, что больше конечного значения n, условие
i <= n - ложно, цикл не выполняется.

Содержание раздела