- •Тема 4 Операторы цикла
- •6.1. Назначение операторов цикла
- •6.2. Оператор цикла с предусловием
- •6.3. Пример использования оператора цикла с предусловием
- •6.4. Оператор цикла с параметром
- •6.5. Примеры использования операторов цикла с параметром
- •Задача.
- •6.6. Оператор цикла с постусловием
- •6.7. Пример использования оператора цикла с постусловием
6.5. Примеры использования операторов цикла с параметром
Задача.
Вычислить сумму следующего ряда:
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.
Задача.
Вычислить значение 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),
то вновь выполняется тело цикла. В
противном случае выполняется оператор,
следующий за оператором цикла.
Замечания:
Тело цикла с постусловием может содержать несколько операторов, которые не нужно брать в операторные скобки. В данном случае ключевые слова repeat и until играют роль операторных скобок, между которыми может находиться произвольное количество операторов.
<Условие> является условием выхода из цикла в отличие от условия продолжения цикла в цикле с предусловием (while).
Не следует забывать, что тело цикла с постусловием всегда будет выполняться хотя бы один раз.
Вход в тело цикла возможен только через его заголовок.
Разрешено использование вложенных циклов. Их реализация должна производиться по тем же правилам, что и для циклов с предусловием.
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.
