Код:
program p;
Const
a=0.15;
b=0.75;
function F(x1,z1:Real):Real;
begin
F:=x1*(Sqrt(x1^2+z1^2));
end;
function Antiderivative(x1,z1:Real):Real;
begin
Antiderivative:=1/3*(Sqrt(power(3,x1^2+z1^2));
end;
procedure rect(zt,et:real; var T:real; var Nt:Integer);
var
i,N:Integer;
Sum1,Sum2,h:Real;
begin
N:=5;
h:=(b-a)/N;
Sum1:=(F(a,zt)+F(b,zt))/2*h;
for i:=1 to N-1 do
Sum1:=Sum1+h*F(a+h*i,zt);
Sum2:=Sum1;
repeat
Sum1:=Sum2;
N:=N*2;
h:=(b-a)/N;
Sum2:=(F(a,zt)+F(b,zt))/2*h;
for i:=1 to N-1 do
Sum2:=Sum2+h*F(a+h*i,zt);
until ABS(Sum2-Sum1)<et;
Nt:=N;
T:=Sum2;
end;
var
i,j,M:Integer;
z,R,Eps:real;
begin
write('z= ');
readln(z);
eps:=0.1;
for j:=1 to 4 do
begin
eps:=Eps/10;
trapezium(z,Eps,R,M);
writeln('Eps= ',Eps:8);
writeln('Number of steps= ',M);
writeln('Result: ',R:0:9);
writeln;
end;
writeLn('Accurate value:', (Antiderivative(b,z)-Antiderivative(a,z)):0:9);
ReadLn;
end.
в процедуре не знаю что менять(