
Шпаргалки на экзамен / Оператор цикла с постусловием repeat
.docxОператор цикла с постусловием repeat
Для программной реализации циклических процессов с неизвестным числом повторений существует еще один оператор, который имеет вид:Repeat тело цикла Until условие; Данный оператор аналогично предыдущему оператору цикла, но отличается от него тем, что проверка условия проводится после очередного выполнения тела цикла. Это обеспечивает его выполнение хотя бы один раз. Сначала выполняется последовательность операторов, входивших в тело цикла, после чего проверяется выполнение условия, записанного за служебным словом until. Если условие не соблюдается, цикл завершается. В противном случаетело цикла повторяется еще раз, после чего проверяется соблюдение условия. Естественно,тело цикла должно содержать оператор, влияющий на условие окончания (продолжения), иначе цикл будет бесконечным. В качестве примера рассмотрим задачу планирования закупки товаров в магазине на определенную сумму, не превышающую заданной величины. Обозначим через c и k соответственно цену и количество товара, через p - заданную предельную сумму, через s - общую стоимость покупки. Начальное значение общей стоимости покупки (s) равно нулю. Значение предельной суммы (p) должно вводиться с клавиатуры. Необходимо повторять запрос о цене и количестве выбранного товара, вычислять его стоимость, суммировать ее с общей стоимостью и выводить результат на экран до тех пор, пока s не превысит предельную сумму p. В таком случае на экран можно вывести сообщение о превышении предельного значения. Решение этой задачи можно записать в виде следующей программы:
|
Program pr2; Var c, k, p, s: integer; Begin Writeln ('Предельная сумма - '); readln (p); s: = 0; Repeat Writeln ('Введите цену товара и его количество'); Readln (c, k); s: s+c*k; Writeln ('Стоимость покупки равна', s); Until s>p; Writeln ('Общая стоимость покупки превысила предельную сумму'); Readln; End. |