Функция вычисления ArcSin — Pascal(Паскаль)

Function arcsinala(X: real): real;
Const
  E = 2.9E-19;
Var
  Temp: real;
  arcsin: real;
  N: Word;
  Function Pow(A, B: real): real;
  Var
    T: real;
  Begin
    T := Abs(A);
    Pow := Exp(B * Ln(T));
  End;
  Function ElemMakloren(A: integer): real;
  Var
    I: integer;
    Result: real;
  Begin
    If A > 1 Then
    Begin
      Result := 1;
      For I := 1 To A - 1 Do
      Begin
        If I mod 2 = 0 Then
          Result := Result / I
        Else
          Result := Result * I;
      End;
      If A mod 2 = 0 Then
        Result := 0;
      If A >= 3 Then
        Result := Result * Pow(X, A) / A;
    End
    Else
      Result := A * X;
    ElemMakloren := Result;
  End;

Begin
  arcsin := 0;
  N := 1;
  Temp := 1;
  While Temp >= E Do
  Begin
    Temp := ElemMakloren(N);
    arcsin := arcsin + Temp;
    N := N + 2;
  End;
  arcsinala := arcsin;
End;
{ -------------------- }

begin
  writeln(arcsinala(0.9):4:9);

end.

Leave a Comment

32 + = 37