Программа
{ По заданной точности вычислить
интеграл, используя различные
разбиения, метод прямоугольников }
Const
StepOfBreak=50; { Шаг ряда разбиений }
Var
a:real; { Левая грница интервала интегрирования }
b:real; { Правая грница интервала интегрирования }
Eps:real; { Критерий точности вычисления }
Sum,SumPred:real; { Текущая интегральная и предыдущая интегральная суммы }
Step:real; { Шаг разбиения }
Fcurrent,Fpred:real;
{ Текущее и предыдущее значения подынтегральной функции }
i,k:integer; { Счетчики }
Function F(x:real):real; { Вычисление значения подынтегральной функции }
Begin
F:=x { Определение функции F(x) }
End;
BEGIN
write('Задайте критерий точности вычисления ');
{ Приглашение ввести точность вычисления }
readln(Eps); { Получение точности вычисления }
write('Задайте левую границу интервала интегрирования ');
{ Приглашение ввести левую границу интервала интегрирования }
readln(a); { Получение левой границиы }
write('Задайте правую границу интервала интегрирования ');
{ Приглашение ввести правую границу интервала интегрирования }
readln(b); { Получение правой границы }
writeln;
writeln('РАЗБИЕНИЕ ЗНАЧЕНИЕ ');
i:=0; { Определение начального положения счетчика }
repeat { Цикл вычисления интеграла и вывода результатов }
i:=i+1;
SumPred:=Sum; { Сохранение предыдущего значения интеграла }
Sum:=0; { Обнуление интегральной суммы }
Step:=(b-a)/StepOfBreak/i; { Определение шага разбиения }
for k:=1 to StepOfBreak*i do Sum:=Sum+F(a+(k-0.5)*Step);
{ Набор интегральной суммы без учета шага разбиения }
Sum:=Step*Sum; { Пересчет интегральной суммы, учитывающий разбиение }
writeln(StepOfBreak*i:6,' ',Sum); { Вывод результата }
until (abs(Sum-SumPred)<=Eps)and(i>1);
{ Выход из цикла по критерию точности }
writeln('-----------------------------') { Оформление конца вычислений }
END.
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию