Type
fun=function(p:real):real;
function f(x:real):real;
begin
f:=3*sqr(x)-2*x;
end;
function Simpson(a,b,h:real;ff:fun):real;
var
m,n,mn:integer;
s:real;
begin
n:=Trunc((b-a)/h)+1;
s:=f(a)+f(b);
mn:=4;
for m:=1 to n-2 do begin
s:=s+mn*f(a+h*m);
if mn=4 then mn:=2 else mn:=4;
end;
Simpson:=s*h/3;
end;
var
a,b,h:real;
begin
a:=0; b:=2; h:=0.5;
Writeln('y=',Simpson(a,b,h,f))
end.
Результат выполнения программы:
y=4