3. Организация программ циклической структуры. Виды циклов, циклы с заданным числом повторений. Пример. Вычисление интеграла.

Для реализации циклических процессов используют операторы циклов.

Основные виды циклов:

• цикл-пока (while) (а);
• цикл-до (repeat until) (б);
• счетный цикл (цикл с заданным числом повторений) (в).

3_1

Цикл-пока. Синтаксическая диаграмма оператора «цикл-пока» приведена на рисунке ниже. Условие записывают в виде логического выражения. Оператор тела цикла повторяется, пока условие истинно. Проверка осуществляется на входе. Если при входе в цикл условие не выполняется, то оператор тела цикла игнорируется. Если в тело цикла необходимо поместить несколько операторов, то используют составной оператор.

цикл_пока

Цикл-до. Операторы тела цикла повторяются до выполнения условия, условие проверяется на выходе, т.е. тело цикла всегда выполняется хотя бы один раз. Синтаксическая диаграмма оператора «цикл-до» приведена на рисунке ниже. В тело цикла можно поместить несколько операторов, разделив их точкой с запятой «;».

цикл_до

Счетный цикл. Цикл выполняется, пока переменная (параметр) цикла принимает значения в заданном диапазоне с определенным шагом. Синтаксическая диаграмма оператора приведена на рисунке ниже. Переменная цикла должна иметь порядковый тип. Выражение 1 определяет начальное значение параметра цикла, выражение 2 - конечное значение параметра цикла. Соответственно начальное и конечное значения должны принадлежать к тому же типу, что и параметр цикла. Если используется служебное слово to, то при каждом выполнении цикла переменной цикла присваивается следующее значение порядкового типа переменной. Если используется служебное слово downto, то при каждом выполнении цикла переменной цикла присваивается предыдущее значение порядкового типа переменной. Если диапазон значений переменной цикла пуст, то цикл не выполняется.

счетный_цикл

Пример - вычисление интеграла:

Разработать программу вычисления определенного интеграла функции f(x) на заданном отрезке [а, b] методом прямоугольников.Определенный интеграл вычисляется как площадь фигуры, ограниченной графиком функции, отрезком оси абсцисс и вертикальными линиями, проходящими через границы отрезка. Метод прямоугольников предполагает, что площадь определяется как сумма площадей п прямоугольников, основанием которых является п-я часть отрезка [а,b], а стороной - значение функции на одном из концов отрезка.

3_7

Итак,

интеграл

где 3_6.

Значение определенного интеграла S1, определенное по данной формуле, является не точным, причем с увеличением количества отрезков n точность значения S1 увеличивается. Считают, что значение определено с заданной точностью, если абсолютная величина разности двух последовательных приближений результата, полученных при разных значениях n, не превышает заданной погрешности. Для определения момента достижения
заданной точности необходимо организовать еще один - внешний цикл, в котором значение п будем увеличивать, например, в два раза, и рассчитывать значение S1, предварительно сохранив предыдущее значение S1 в переменной S2. Цикл должен завершаться, когда абсолютная величина разности двух приближений S1 и S2 станет меньше ?. Исходное значение S2 примем достаточно большим, чтобы цикл не завершился
при лервой проверке условия.

3_8

Схема алгоритма вычисления определенного интеграла для функции f(x) = х^2 - 1 приведена на рисунке выше. Ниже приведена программа, реализующая данную схему алгоритма.

Program ex;
Var а, b,S1,S2,d, eps,x:real;
n, i:longint;
Begin
WriteLn('Введите a, b и эпсилон:');
ReadLn(a, b, eps);
S1:=1E+10;
n:=5;
repeat
S2:=S1;
n:=n*2;
d:=(b-a)/n;
х:=а;
S1:=0;
for i:=1 to n do
begin
S1:=S1+x*x-1;
x:=x+d;
end;
S1:=S1*d;
until abs(S1-S2)<eps:
WriteLn('I=', S1:10:6);
End.

При выполнении программы с разными значениями погрешности eps и отрезком [0,2] получаем разные приближения результата I. Точное значение определенного интеграла равно 2/3. Определим абсолютную и относительную погрешности результата. В данном случае абсолютная погрешность результата всегда будет меньше eps, так как это определяется самим методом. Последнее верно не для любого метода.

Hosted by uCoz