Section courante

A propos

Section administrative du site

Bien qu'en Delphi/Kylix/Lazarus, 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:

  1. Program SqrtSource;
  2.  
  3. {$APPTYPE CONSOLE} 
  4. Uses SysUtils;
  5.  
  6. Function SquareRoot(X:Real):Real;
  7. Var
  8.  A,B,M,XN:Real;
  9. Begin
  10.  If X=0.0Then Begin
  11.   SquareRoot:=0.0;
  12.  End
  13.   Else
  14.  Begin
  15.   M:=1.0;
  16.   XN:=X;
  17.   While XN>=2.0 do Begin
  18.    XN:=0.25*XN;
  19.    M:=2.0*M;
  20.   End;
  21.   While XN<0.5 do Begin
  22.    XN:=4.0*XN;
  23.    M:=0.5*M;
  24.   End;
  25.   A:=XN;
  26.   B:=1.0-XN;
  27.   Repeat
  28.    A:=A*(1.0+0.5*B);
  29.    B:=0.25*(3.0+B)*B*B;
  30.   Until B<1.0E-15;
  31.   SquareRoot:=A*M;
  32.  End;
  33. End;
  34.  
  35. Var
  36.  R:Real;
  37.  
  38. BEGIN
  39.  R:=2;
  40.  While R<=1000 do Begin
  41.   WriteLn('Sqrt(',R:0:5,')=',SquareRoot(R):0:5);
  42.   R:=R*R;
  43.  End;
  44. 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 17 août 2014