Section courante

A propos

Section administrative du site

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.41421
Sqrt(4)= 2.0000
Sqrt(16)= 4.0000
Sqrt(256)= 16.0000


Dernière mise à jour : Dimanche, le 4 mai 2014