Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Razdel_3_Pascal_lr1-9.doc
Скачиваний:
1
Добавлен:
07.12.2018
Размер:
744.45 Кб
Скачать

1 Итерационные циклы

Циклическая структура программы позволяет производить многократные вычисления группы операторов при изменении одного или нескольких параметров одновременно. В языке Паскаль имеются для этого операторы цикла for, repeat, while. В лабораторной работе №3 были рассмотрены эти операторы для решения задач с арифметическими циклами, в которых известны начальное, конечное значения аргумента и его шаг (приращение). Кроме того, число повторений цикла также было известно или его можно было определить.

Существует обширный ряд циклических задач, которые нельзя отнести к арифметическим циклам, т.к. в них не задаются начальное и конечное значения аргумента функции и шаг его приращения, а окончание цикла (повторения) вычислений производится по контролю не значения аргумента, а другого параметра, например, точности вычислений, времени решения задачи и др. Такие циклы называются итерационными (iteration – повторение).

Для вычислений с заранее неизвестным количеством повторений (итераций) оператор for не пригоден, поскольку в нём нужно задавать начальное и конечное значения аргумента, поэтому используются только операторы repeat и while.

2 Программа итерационного цикла

Пример 1

Составить программу вычисления значения функции y = x (π-x), используя равенство

с погрешностью E =10-4 и напечатать для контроля значения функции, определяемые выражением в левой части равенства y = x (π-x) и её разложением в ряд косинусов.

Программа

program iteracia

const

145

e=0.0001;

var

y,s,x:real; { y-функция, s-сумма, x-аргумент }

k:longint;

slag:real; { слагаемое (i-й член суммы) }

begin

writeln('введите x ');

readln(x);

s:= sqr(pi)/6;

k:=1;

repeat

slag:=cos(2*k*x)/sqr(k);

s:=s+slag;

inc(k);

until abs(slag)<e;

y:=s;

writeln(' y(x)= ',y);

writeln(' x*(pi-x)= ',x*(pi-x));

end.

Описание программы

В разделе объявления констант вводится точность вычислений Е=10-4, в разделе переменных вводятся y,s,x – вещественные, k – длинное целое и slag – вещественная.

Основной блок программы начинается оператором begin, в нём вводится значение аргумента х, вычисляется значение слагаемого slag=π./ 6 и присваивается переменной k значение 1.

Цикл открывается оператором repeat, в нём вычисляется слагаемое slag и прибавляется к предыдущему значению суммы s, затем k увеличивается на 1 (inc (k)). Проверка на окончание цикла выполняется после слова until сравнением модуля slag с заданной точностью е. Если условие выполняется (true), то при k=2 программа возвращается к repeat - на новое вычисление slag и s , если нет (false), то переходит к присвоению у значения накопленной суммы s, выводит на экран у и вычисленное значение x(π-x) для их сравнения (piэто число π, хранящееся в памяти среды программирования Pascal)

3 Контрольные вопросы

1 Какие циклы называются итерационными?

2 Какие операторы цикла используются в итерационных циклах?

3 Как выполняется проверка на окончание вычислений в цикле?

146

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