Помогите с паскалем я его не знаю! Надо составить подпрограмму
Надо составить подпрограмму "вычисление определённого интеграла методом трапеций". Заранее спасибо за ответ.
Надо составить подпрограмму "вычисление определённого интеграла методом трапеций". Заранее спасибо за ответ.
program Integral;
uses
Crt, Dos;
var
dx,x1,x2,e,i:real;
function Fx(x:real):real;
begin
Fx:=2+x; {В этом месте запишите функцию, для вычисления интеграла. }
end;
procedure CountViaBar;
var
xx1,xx2:real;
c:longint;
begin
writeln('------------------------------------------------');
writeln('-->Метод средних прямоугольников. ');
writeln('Всего итераций: ',round(abs(x2-x1)/e));
i:=0;
for c:=1 to round(abs(x2-x1)/e) do begin
write('Итерация ',c,chr(13));
xx1:=Fx(x1+c*e);
xx2:=Fx(x1+c*e+e);
i:=i+abs(xx1+xx2)/2*e;
end;
writeln('------------------------------------------------');
writeln('Интеграл=',i);
end;
procedure CountViaTrap;
var
xx1,xx2,xx3:real;
c:longint;
begin
writeln('------------------------------------------------');
writeln('-->Метод трапеций. ');
writeln('Всего итераций: ',round(abs(x2-x1)/e));
i:=0;
for c:=1 to round(abs(x2-x1)/e) do begin
write('Итерация ',c,chr(13));
xx1:=Fx(x1+c*e);
xx2:=Fx(x1+c*e+e);
if xx2>xx1 then xx3:=xx1 else xx3:=xx2;
i:=i+abs(xx2-xx1)*e+abs(xx3)*e;
end;
writeln('------------------------------------------------');
writeln('Интеграл=',i);
end;
begin
writeln('------------------------------------------------');
writeln('-=Программа вычисления определенного интеграла=-');
writeln('Введите исходные значения: ');
write('Начальное значение x (x1)=');Readln(x1);
write('Конечное значение x (x2)=');Readln(x2);
write('Точность вычисления (e)=');Readln(e);
CountViaBar;
CountViaTrap;
writeln('------------------------------------------------');
writeln('Спасибо за использование программы ;^)');
end.