Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК ОАиП.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.14 Mб
Скачать

Цикл с предусловием while

Формат оператора прост:

while выражение do оператор

Выражение должно быть логического типа. Например, это может быть операция отношения или просто логическая переменная. Если результат вычисления выражения равен true, выполняется расположенный после служебного слова do простой или составной оператор (напомню, что составной оператор заключается между begin и end ). Эти действия повторяются до того момента, пока результатом выражения не станет значение false. После окончания цикла управление передается на следующий за ним оператор.

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

Пример. Программа, печатающая таблицу значений функции

для аргумента, изменяющегося в заданных пределах с заданным шагом.

Опишем алгоритм в словесной форме.

  1. Ввести исходные данные.

  2. Взять первое значение аргумента.

  3. Определить, какому из интервалов оно принадлежит.

  4. Вычислить значение функции по соответствующей формуле.

  5. Вывести строку таблицы.

  6. Перейти к следующему значению аргумента.

  7. Если оно не превышает конечное значение, повторить шаги 3–6, иначе закончить.

Шаги 3–6 повторяются многократно, поэтому для их выполнения надо организовать цикл. Назовем необходимые нам переменные так: начальное значение аргумента — Xn, конечное значение аргумента — Xk, шаг изменения аргумента — dX, параметр — t. Все величины вещественные. Программа выводит таблицу, состоящую из двух столбцов — значений аргумента и соответствующих им значений функции (пример 2.2).

program tabl_fun;

var

Xn, Xk : real; { начальное и конечное значение аргумента }

dX : real; { шаг изменения аргумента }

x, y : real; { текущие значения аргумента и функции }

t : real; { параметр }

begin

writeln('Введите Xn, Xk, dX, t'); { приглашение ко вводу данных }

readln(Xn, Xk, dX, t); { ввод исходных данных – шаг 1 }

writeln(' --------------------------- '); { заголовок таблицы }

writeln('| X | Y |');

writeln(' --------------------------- ');

x := Xn; { первое значение аргумента = Xn – шаг 2 }

while x <= Xk do begin { заголовок цикла – шаг 7 }

if x < 0 then y := t; { вычисление значения функции - шаг 4 }

if (x >= 0) and (x < 10) then y := t * x; { шаг 4 }

if x >= 10 then y := 2 * t; { шаг 4 }

writeln('|', x:9:2,' |', y:9:2,' |');{ вывод строки табл. – шаг 5 }

x := x + dX; { переход к следующему значению аргумента - шаг 6 }

end;

writeln(' --------------------------- ');

end.

Параметром этого цикла, то есть переменной, управляющей его выполнением, является х. Для правильной работы цикла необходимо присвоить параметру начальное значение до входа в цикл (шаг 2). Блок модификации параметра цикла представлен оператором, выполняющимся на шаге 6. Для перехода к следующему значению аргумента текущее значение наращивается на величину шага и заносится в ту же переменную.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]