uses crt;
const
a = 0.8;
b = 1.6;
n = 30;
function f(x: real): real;
begin
f :=(x*x+1)*sin(x-0.5);
end;
function IntegralSimpson(a, b: real): real;
var
h, k, s: real;
i: Integer;
begin
h := (b - a)/N;
s := 0;
k := a;
for i := 1 to N - 1 do
begin
k := k + h;
if i mod 2 = 0 then
s := s + 2*f(k)
else
s := s + 4*f(k);
end;
s := (s + f(a) + f(b))*h/3;
IntegralSimpson := s;
end;
function IntegralTrap(a, b: real): real;
var
h, k, s: real;
i: Integer;
begin
h := (b - a)/N;
s := (f(a) + f(b))/2;
k := a;
for i := 1 to N - 1 do
begin
k := k + h;
s := s + f(k);
end;
s := s*h;
IntegralTrap := s;
end;
begin
clrscr;
writeln('Metodom Simpsona = ', IntegralSimpson(a, b):0:5);
writeln('Metodom Trapecij = ', IntegralTrap(a, b):0:5);
writeln('Raznost=',abs(IntegralSimpson(a,b)-IntegralTrap(a,b)):0:5);
readln
end.