Bien qu'en Turbo Pascal pour Windows, il existe une fonction «Sqrt» permettant de calculer la racine carré, il peut quand même être amusant d'effectuer se genre de calcul nous même. Pour remédier à se problème, il suffit de créer une fonction ressemblant à ceci:
- Uses WinCrt;
-
- 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;
-
- Var
- R:Real;
-
- BEGIN
- R:=2;
- While R<=1000 do Begin
- WriteLn('Sqrt(',R:0:5,')=',Sqrt(R):0:5,' ',SquareRoot(R):0:5);
- R:=R*R;
- End;
- END.
on obtiendra le résultat suivant:
Sqrt(2)= 1.41421 1.41421Sqrt(4)= 2.0000 2.0000
Sqrt(16)= 4.0000 4.0000
Sqrt(256)= 16.0000 16.0000
Dernière mise à jour : Dimanche, le 10 décembre 2017