Цитата:
Сообщение от Хелен
Просмотрев предыдущую программу. многое не поняла.
|
Лена, а вот давайте начнем именно с этого. Чего Вы не поняли? Задавайте вопросы, попробуем разобраться.
В Вашем случае программа выглядит вот так:
Код:
CONST
Eps=0.0001;
VAR
Xbeg,Xfin,DX,SUM,X:REAL;
N:WORD;
Nx,i:INTEGER;
FUNCTION ArcCos(Xa:Extended):Extended;
begin
if ROUND(Xa*10000000)=10000000 then ArcCos:=0 else
if ROUND(Xa*10000000)=-10000000 then ArcCos:=Pi else
ArcCos:=(Pi/2)-ArcTan(Xa/SQRT(1-Xa*Xa));
end;
PROCEDURE SUMS(Xs:REAL; Var S:REAL; Var Ns:WORD);
VAR
a:REAL;
Begin
a:=Xs;
S:=Xs;
Ns:=0;
Repeat
Inc(Ns);
a:=a*SQR(Xs)*(2*Ns-1)*(2*Ns-1)/(2*Ns)/(2*Ns+1);
S:=S+a;
Until Abs(a)<Eps;
S:=Pi/2-S;
End;
BEGIN
Write('Xbeg= ');
ReadLn(Xbeg);
Write('Xfin= ');
ReadLn(Xfin);
Write('DX= ');
ReadLn(DX);
WriteLn;
WriteLn(' Results of calculation:');
WriteLn(' X SUM N ArcCos(X)');
WriteLn;
Nx:=ROUND((Xfin-Xbeg)/DX);
X:=Xbeg;
For i:=0 to Nx do
begin
X:=Xbeg+DX*i;
SUMS(X,SUM,N);
WriteLn(X:8:5,' ',SUM:7:5,' ',N:3,' ',ArcCos(X):7:5);
end;
ReadLn;
END.