Программирование «Цикл с неизвестным числом повторений»
Содержание Цикл Repeat - Until; Пример; Задача № 1; Задача № 2;
Цикл Repeat - Until (цикл с постусловием)
Цикл Repeat – Until Оператор Repeat – Until называют оператором цикла с постусловием, т. к. проверка условия производится после выполнения цикла и таким образом гарантируется хотя бы однократное его прохождение.
Repeat <тело цикла> Until <условие окончания цикла> Тело цикла условие окончания цикла False Продолжение программы True
Тело цикла Условие окончания цикла False Продолжение программы True Цикл Repeat – Until выполнится по крайней мере один раз, так как условие проверяется после цикла.
Пример Составим программу суммирования произвольного количества целых чисел. Суммирование прекратим при вводе числа 0. 1. Внимательно читаем условие задачи. 2. Строим математическую модель решения задачи, определяем необходимые формулы и логические связки.
Математическая модель Сумма а – числа, которые будем складывать; s – сумма этих чисел; обязательные условия решения задачи: s=s+a (сумма увеличивается на а); проверяем а=0.
3. Составление алгоритма к решению задачи Начало S: =0 a s: =s+a а =0 True s конец False
4. написание программы Program summa 1; Начало Var a, s: integer; Begin s: =0; {начальное значение суммы} S: =0 Repeat write (‘Значение a=’); a readln (a); s: =s+a Until a=0; False а=0 введённых чисел равна ’, writeln (‘сумма s); True Readln; End. конец
5. Компиляция и запуск программы 6. Проверка программы на правильность выполнения Тестирование. Ввод данных, предусматривающих все варианты. 7. Анализ результата, если верно, то конец, если нет, то возвращаемся к пункту 1.
Задача № 1: Вычислить значение функции y=4 x 3 -2 x 2+5 для значений х, изменяющийся от -3 до 1 с шагом 0, 1.
Математическая модель решения задачи: х – переменная, изменяющаяся от -3 до 1, с шагом 0, 1 y= 4 x 3 -2 x 2+5 = 2 х2(2 х-1)+5 – выполнили преобразования для удобства записи. y: =2*sqr(x)*(2*x-1)+5; x: =х+0, 1 – запись шага. х>1 – условие окончания цикла.
Алгоритм решения задачи: Начало х=-3 True False x>1 y: =2*sqr(x)* (2*x-1)+5; х, у x: =x+0. 1 Конец
4. Написание программы program funct; var x, y: Real; begin x: = -3; Repeat y: =2*sqr(x)*(2*x-1)+5; write(‘x= ’, x: 5: 1, ’ y= ‘, y: 10: 4); x: =x+0. 1; Until x>1; Readln; end.
СПАСИБО ЗА ВНИМАНИЕ!