Цикл до (с постусловием)

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

Если заранее неизвестно число повторений цикла, то можно использовать цикл с постусловием.

В большинстве процедурных языков программирования цикл с постусловием реализуется оператором while, отсюда его второе название– while-цикл

Выполняется следующим образом

Сначала выполняется тело цикла, затем проверяется условие. Если оно ложно, то выполняется тело цикла. Если условие истинно, то цикл считается выполненным.

В этом цикле логическое выражение — это условие выхода из цикла

При описании циклов с постусловием необходимо принимать во внимание следующее:

— перед первым выполнением цикла условие его окончания (или продолжения) должно быть определено;
— тело цикла должно содержать хотя бы один оператор, влияющий на условие окончания (продолжения), иначе цикл будет бесконечным;
— условие окончания цикла должно быть в результате выполнено.
Тело цикла с постусловием выполняется пока условие ложно
ПРИМЕР 1.
ПРИМЕР 2. Пары неотрицательных вещественных чисел вводятся с клавиатуры. Посчитать произведение для каждой пары и сумму всех чисел.
Решение:
program cycle_repeat;
var x,y,sum:real;
otv:char;
begin
sum:=0;
repeat
write(‘Введите числа x,y > 0 ‘);
readln(x,y);
writeln(‘Их произведение = ‘,x*y:8:3);
sum:=sum+x+y;
write(‘Завершить программу (Д/Н)? ‘);
readln(otv);
until (otv=’Д’) or (otv=’д’);
writeln(‘Общая сумма = ‘,sum:8:3);
readln
end.
ПРИМЕР 3. Подсчитать количество нечетных цифр в записи натурального числа n.
Идея решения. Из заданного числа выбирать из младшего разряда цифру за цифрой до тех пор, пока оно не исчерпается, т.е. станет равным нулю. Каждую нечётную цифру учитывать.
Решение:
1. Ввести число n
2. K := 0 {подготавливаем счётчик}
3. Если n mod 10 mod 2 = 1, то K := K +1
4. n := n div 10
5. Если n = 0, переход к шагу 7
6. Переход к шагу 3
7. Вывод K
8. Конец

ПРИМЕР 4. Составить программу планирования закупки товара в магазине на сумму, не превышающую заданную величину.

Решение

Обозначим через x, k – соответствующую цену и количество товара, через p – заданную предельную сумму, через s – общую стоимость покупки. Начальное значение общей стоимости покупки (S) равно нулю. Значение предельной суммы считывается с клавиатуры. Необходимо повторять запрос цены и количества выбранного товара, вычислять его стоимость, суммировать ее с общей стоимостью и выводить результат на экран до тех пор, пока она не превысит предельную сумму р. В этом случае на экран нужно вывести сообщение о превышении.

Program E_10;
Var x, k, p, s : Integer;
Begin
WriteLn(‘Введите цену товара и его количество’);
ReadLn(x,k);
s:=s+x*k;
WriteLn(‘Стоимость покупки равна ‘,s);
Until s>p;
WriteLn(‘Суммарная стоимость покупки превысила предельную сумму’);
End.
Добавить комментарий