- •Глава 5
- •5.1. Простые операторы
- •5.1.1. Оператор присваивания
- •5.1.2. Оператор процедуры
- •5.1.3. Оператор перехода
- •5.1.4. Пустой оператор
- •5.2. Структурные операторы
- •5.2.1. Структурограммы (схемы Насси - Шнейдермана)
- •5.2.2. Составной оператор
- •5.2.3. Форматирование Паскаль-программ
- •5.2.5. Оператор варианта
- •5.2.6. Оператор цикла с параметром
- •5.2.7. Оператор цикла с постусловием
- •5.2.8. Оператор цикла с предусловием
5.2.8. Оператор цикла с предусловием
Оператор имеет следующий вид:
WHILE B DO S , где B - выражение булевского типа; S - оператор (называемый телом цикла). Тело цикла выполняется, пока B=TRUE.
В этом цикле тело цикла может не выполниться ни разу.
Пример 5.2.15. Ввести число целого типа. Вычислить сумму цифр, из которых оно состоит.
PROGRAM Cif;
VAR a,s : integer;
BEGIN
Write('Число= '); ReadLn(a);
a:= Abs(a);
s:=0;
WHILE a<>0 DO
BEGIN
s:=s+a MOD 10;
a:=a DIV 10
END;
WriteLn('Сумма цифр= ', s) END.
ввод(a);
a:=½a½;
s:=0;
пока a ¹
0
s:=s+a MOD
10;
a:=a DIV
10;
печать (s)
Рис.5.11. Схема к
примеру 5.2.15
Пример 5.2.16. Известно, что функция f(x) - убывающая и имеет корень при x³0. Найти этот корень с точностью e. (Пусть f(x) = 1- x3).
Поясним суть применяемого метода с помощью рис.5.12.
Начиная с некоторого значения (в данном случае x=0) перемещаемся по оси x с шагом e до тех пор, пока значение функции не станет отрицательным или равным нулю. Текущее значение x и будет принято в качестве корня функции.
f(x)
x
0 e
Рис.5.12. К
определению корня функции
ввод (e)
x = 0
пока f(x) > 0
x = x + e
печать (x)
Рис.5.13. Схема к
примеру 5.2.16
VAR x,eps : real;
BEGIN
Write('Точность= '); ReadLn(eps);
x:=0;
WHILE 1-x*Sqr(x) > 0 DO x:=x+eps;
WriteLn('Корень= ',x)
END.
Задачи
5.2.17. Определить с точностью e точку пересечения функции y=ln(x2+1) с прямой y=1 .
5.2.18. Вычислить сумму всех элементов последовательности , n = 1,2, ... , которые не превосходят заданной величины m .
5.2.19. Ввести число целого типа. Определить, из скольких цифр оно состоит (используя цикл WHILE).
5.2.20. Вычислить (Результат для справки: y = cosx ).