Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема 4_Циклы.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
72.7 Кб
Скачать

6.5. Примеры использования операторов цикла с параметром

  1. Задача.

Вычислить сумму следующего ряда:

1 + 1/2 + 1/3 + 1/4 + ... + 1/n.

Решение с помощью цикла for/to:

{--------------------------------------------------------------------------------}

{--- Вычисление суммы ряда с помощью цикла for/to ---}

{--------------------------------------------------------------------------------}

program ForSer;

var

Sum : real;

i, n : integer;

begin

Writeln ('Введите количество членов ряда: ');

Readln (n);

Sum := 0;

for i := 1 to n do

Sum := Sum + 1 / i;

Writeln ('Сумма ', n, ' членов ряда равна ', Sum);

end.

  1. Задача.

Вычислить значение n!.

Решение с помощью цикла for/downto:

{---------------------------------------------------------------------------------------}

{--- Вычисление факториала с помощью цикла for/downto ---}

{---------------------------------------------------------------------------------------}

program FactN;

var

Factorial,

n, i : integer;

begin

Writeln ('Введите натуральное число n: ');

Readln (n);

Factorial := 1;

for i := n downto 2 do

Factorial := Factorial * i;

Writeln ('Факториал числа ', n, ' равен ', Factorial);

end.

6.6. Оператор цикла с постусловием

Цикл – "до" используется в том случае, когда целесообразно организовать повторение таким образом, чтобы сначала выполнялась некоторая последовательность действий, а затем проверялось условие прекращения ее выполнения.

Цикл – "до" служит для организации многократного выполнения группы операторов (тела цикла) до тех пор, пока условие завершения цикла не станет истинным.

Оператор цикла с постусловием имеет следующий формат:

repeat

<оператор 1>;

. . .

<оператор N>;

until <условие>;

Значение ключевых слов: repeat – повторять, until – до.

Структурная схема оператора цикла с постусловием имеет вид:

В ыполняется оператор цикла с постусловием следующим образом. Вначале выполняются операторы тела цикла. Затем вычисляется значение выражения-условия. Если оно ложно (т.е. его значение равно FALSE), то вновь выполняется тело цикла. В противном случае выполняется оператор, следующий за оператором цикла.

Замечания:

  1. Тело цикла с постусловием может содержать несколько операторов, которые не нужно брать в операторные скобки. В данном случае ключевые слова repeat и until играют роль операторных скобок, между которыми может находиться произвольное количество операторов.

  2. <Условие> является условием выхода из цикла в отличие от условия продолжения цикла в цикле с предусловием (while).

  3. Не следует забывать, что тело цикла с постусловием всегда будет выполняться хотя бы один раз.

  4. Вход в тело цикла возможен только через его заголовок.

  5. Разрешено использование вложенных циклов. Их реализация должна производиться по тем же правилам, что и для циклов с предусловием.

6.7. Пример использования оператора цикла с постусловием

Задача.

Вычислить сумму следующего ряда:

1 + 1/2 + 1/3 + 1/4 + ... + 1/n.

Решение.

{-------------------------------------------------------------------------------------------}

{--- Вычисление суммы ряда с помощью цикла repeat/until ---}

{-------------------------------------------------------------------------------------------}

program UntilSer;

var

Sum : real;

i, n : integer;

begin

Writeln ('Введите количество членов ряда: ');

Readln (n);

i := n;

Sum := 0;

repeat

Sum := Sum + 1 / i;

i := i – 1;

until (i < 1);

Writeln ('Сумма ', N, ' членов ряда равна ', Sum);

end.

6