Цитата:
Сообщение от farejoker
знал бы как сделал б( но увы
|
Ладно, пожалуйста. Мне, в общем-то не трудно, только вот... А как Вы дальше своё существование мыслите? Так всю учебу и проездить на форумах? Знаете... не выйдет. Уж поверьте. В общем, очень рекомендую, если еще не поздно, взяться за ум. Впрочем, Вам жить...
Код:
Const
a=0.2;
b=0.4;
Function F(x1,z1:Real):Real;
begin
F:=Sqr(Sin(x1-z1))/Sqr(Cos(x1-z1));
end;
Function Antiderivative(x1,z1:Real):Real;
begin
Antiderivative:=Sin(x1-z1)/Cos(x1-z1)-x1+z1;
end;
Procedure Trapezium(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
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.