пусть требуется определить значение интеграла на отрезке [a, b]. Этот отрезок делится точками Х0, Х1, ... Xn-1, Xn
на n равных отрезков длинной ах = (b - a)/n. Обозначим через Y0, Y1, ..., Yn-1, Yn. Значение функции F(x) в точках
Х0, Х1, ..., Xn-1, Xn. Тогда приближенно выраженный интеграл можно найти по следующей формуле:
интеграл от a до b F(x) dx = (b-a)/n * (Y0+Y1+...+Yn-1)

program art_3;
var
n : integer; // число отрезков
xn, xk : real; // интервал интегрирования
dx : real; // длина отрезков
dy : real; // значение функции в точке
sy : real; // сумма значений функций
begin
writeln('Программа вычисляет интеграл функции методом прямоугольников ');
writeln('на отрезке от x = Xn до Xk, с кол-ом отрезков = n');
writeln('Введите значения интеграла согласно заданию. 1/(sqrt(9+x*x))');
writeln('Введите начало интервала интегрирования.'); readln(xn);
writeln('Введите конец интервала интегрирования.'); readln(xk);
writeln('Введите число отрезков.'); readln(n);

// ввод данных закончили, ниже проведём минимальную проверку
// корректности ввода xn должно быть меньше xk

if xn < xk then
begin
writeln;
writeln('Значение интеграла на интервале от ', xn:2:2, ' до ', xk:2:2);
writeln('равно ');
dx := (xk - xn)/n;
sy := 0;
repeat
dy := 1/(sqrt(9+xn*xn)); // сама функция может быть в зависимости от задания
sy := sy + dy;
xn := xn + dx;
until xn > xk;
writeln(dx*sy :4:2);
end
else writeln('Введены некоректные данные.');


readln;
end.
 

Скачать решение.

Hosted by uCoz