Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow Информатика

Цикл с постусловием repeat

Тело цикла с постусловием заключено между служебными словами repeat и until, поэтому заключать его в блок не требуется:

repeat

тело цикла until выражение

В отличие от цикла while, этот цикл будет выполняться до тех пор, пока логическое выражение после слова until ложно. Как только результат выражения станет истинным, произойдет выход из цикла. Вычисление выражения выполняется в конце каждой итерации цикла.

Этот вид цикла применяется в тех случаях, когда тело цикла необходимо обязательно выполнить хотя бы один раз.

Пример

Написать программу, вычисляющую квадратный корень вещественного аргумента X с заданной точностью eps по итерационной формуле

где– предыдущее приближение к корню (в начале вычислений выбирается произвольно);– последующее приближение. Процесс вычислений прекращается, когда приближения станут отличаться друг от друга по абсолютной величине менее чем на величину заданной точности, program square_root; var X, eps, {аргумент и точность}

Yp, Y: real; {предыдущее и последующее приближение)

begin

repeat

writeln ('Введите аргумент и точность (больше нуля): '); readln (X, eps); until (X > 0) and (eps > 0);

Y:= 1; repeat Yp: = Y;

Y:= (Yp + X / Yp) / 2; until abs (Y – Yp) < eps;

writeln ('Корень из X:6:3, ' с точностью ', eps:7:5, 'равен7,

Y:9:5);

end

Цикл с параметром for

Этот оператор применяется, если требуется выполнить тело цикла заранее заданное количество раз. Параметр порядкового типа на каждом проходе цикла автоматически либо увеличивается, либо уменьшается на единицу:

for параметра выражение_1 to выражение_2 do оператор

for параметра выражение_2 downto выражение_1 do оператор

Выражения должны быть того же типа, что и переменная цикла, оператор – простым или составным.

Пример

Программа выводит на экран в столбик числа от 10 до 1 и подсчитывает их сумму: var i, sum: integer; begin sum:= 0;

for i:= 10 downto 1 do begin writeln (i); inc (sum, i) end;

writeln ('Сумма чисел: sum);

end

ВНИМАНИЕ

Если в теле цикла необходимо выполнить более одного оператора, необходимо заключить их в блок с помощью begin и end.

Выражения, определяющие начальное и конечное значения счетчика, вычисляются один раз до входа в цикл. Цикл for реализован в ПАСКАЛЕ как цикл с предусловием, т.е. его можно представить в виде эквивалентного оператора while. После нормального завершения цикла значение счетчика не определено.

 
Если Вы заметили ошибку в тексте выделите слово и нажмите Shift + Enter
< Предыдущая   СОДЕРЖАНИЕ   Следующая >
 

Популярные страницы