Программирование «Цикл с неизвестным числом повторений»
Цикл 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 а =0 s:=s+a конец True False s
Program summa1; Var a, s: integer; Begin s:=0; {начальное значение суммы} Repeat write (‘Значение a=’); readln (a); s:=s+a; Until a=0; writeln (‘сумма введённых чисел равна ’, s); Readln;End. 4. написание программы Начало S:=0 a s:=s+a а=0 конец False True
5. Компиляция и запуск программы 6. Проверка программы на правильность выполнения Тестирование. Ввод данных, предусматривающих все варианты. 7. Анализ результата, если верно, то конец, если нет, то возвращаемся к пункту 1.
Вычислить значение функции y=4x3-2x2+5 для значений х, изменяющийся от -3 до 1 с шагом 0,1. Задача №1:
х – переменная, изменяющаяся от -3 до 1, с шагом 0,1 y= 4x3-2x2+5 = 2х2(2х-1)+5 – выполнили преобразования для удобства записи. y:=2*sqr(x)*(2*x-1)+5; x:=х+0,1 – запись шага. х>1 – условие окончания цикла. Математическая модель решения задачи:
Алгоритм решения задачи: Начало y:=2*sqr(x)* (2*x-1)+5; х,у x>1 x:=x+0.1 Конец False True х=-3
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. 4. Написание программы
Спасибо за Внимание!