En QuickPascal, bien qu'il existe une fonction «Sqrt» permettant de calculer la racine carré, il peut être intéressant de le calculer par nous même. Pour remédier à se problème, il suffit de créer une fonction ressemblant à ceci:
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,')=',SquareRoot(R):0:5);
R:=R*R;
End;
END.
on obtiendra le résultat suivant:
Sqrt(2)= 1.41421Sqrt(4)= 2.0000
Sqrt(16)= 4.0000
Sqrt(256)= 16.0000
Dernière mise à jour : Dimanche, le 4 mai 2014