Section courante

A propos

Section administrative du site

En RemObjects Chrome, il existe une fonction «Sqrt» dans la classe Math 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:

NameSpace Squaroot;

INTERFACE

Uses 
 System.Text;

type
  Prog = class
    class method SquareRoot(X:Real):Real;
    class method Main(Args: array of String);
  end;

IMPLEMENTATION

class method Prog.Main(Args: array of String);
Var
 R:Real;
Begin
 R:=2;
 While R<=1000 do Begin
  Console.WriteLine('Sqrt('+Convert.ToString(R)+')='+Convert.ToString(SquareRoot(R)));
  R:=R*R;
 End;
end;

class method Prog.SquareRoot(X:Real):Real;
Var
 A,B,M,XN:Real;
Begin
 If X=0.0Then Begin
  Result:=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;
  Result:=A*M;
 End;
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 17 février 2008