



program CalkaProstTrap;
var a,b,h, x0,xn,sumaT,sumaXi,eps,Itr,Itr1:real;
mtr, i:integer;
function f(x:real):real;
begin
f:=sin(ln(2*X));
end;
begin
writeln('Obliczanie calki oznaczonej');
writeln('za pomoca metody trapezow');
writeln('podaj poczatek przedzialu calkowania');
writeln('a='); readln(a);
writeln('podaj koniec przedzialu calkowania');
writeln('b='); readln(b);
writeln('podaj eps');
writeln('eps='); readln(eps);
mtr:=1; {ilosc przedzialow} {wartosci poczatkowe}
Itr:=0 {calka przedzalu} {wartosci poczatkowe}
repeat;
sumaXi:=0 ; {suma f(Xi)}
Itr1:=Itr;
h:=(b-a)/mtr; {dlugosc przedzialow}
for i:=1 to mtr do
begin
x0:=a+(i-1)*h; {wyznacamy piwerszy punkt x0
potrzebny do wzoru}
xn:=a+i*h; {to jest wyraz n-ty szeregu
wzory podane}
sumaT:=sumaXi+((f(x0)+f(xn))*h*0.5);
end;
Itr:=sumaT;
mtr:=2*mtr;
until ( Itr-Itr1)<=eps;
writeln ('rozwiazanie metody trapezow=',sumaT:4:7);
writeln (' ilosc przedzialow wynosi=' ,mtr);
readln;
end.