Bien qu'en Pascal, il n'existe pas de fonction «ArcCos» ou «ArCos» permettant de calculer l'Arc Cosinus d'un cercle, mais il peut être intéressant d'en reproduire une pour notre plaisir personnel:
- Program ArcCosinus;
-
- Function SquareRoot(X:Real):Real;
- Var
- A,B,M,XN:Real;
- Begin
- If X=0.0Then Begin
- SquareRoot:=0.0;
- End
- Else
- Begin
- M:=1.0;
- XN:=X;
- While XN>=2.0 do Begin
- XN:=0.25*XN;
- M:=2.0*M;
- End;
- While XN<0.5 do Begin
- XN:=4.0*XN;
- M:=0.5*M;
- End;
- A:=XN;
- B:=1.0-XN;
- Repeat
- A:=A*(1.0+0.5*B);
- B:=0.25*(3.0+B)*B*B;
- Until B<1.0E-15;
- SquareRoot:=A*M;
- End;
- End;
-
- Function ArcTan(X:Real):Real;
- Var
- A,B:Real;
- N:Integer;
- Begin
- A := 1.0 / SquareRoot(1.0 + (X * X));
- B := 1.0;
- For N:=1 to 11 do Begin
- A := (A + B) / 2.0;
- B := SquareRoot(A * B);
- End;
- ArcTan:=X/(SquareRoot(1.0+(X*X))*A);
- End;
-
-
- Function ArcCos(a:Real):Real;
- Const
- PI=3.141592653589793;
- Begin
- If Abs(a)=1.0 Then ArcCos := (1-a)*PI/2.0
- Else ArcCos := Arctan(-a/SquareRoot(1-a*a))+2*Arctan(1);
- End;
-
- BEGIN
- WriteLn('ArcCos(0.5)=',ArcCos(0.5));
- END.
on obtiendra le résultat suivant:
ArcCos(0.5)= 1.047197551196598
Dernière mise à jour : Mardi, le 25 octobre 2016