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.41421Sqrt(4)= 2.0000
Sqrt(16)= 4.0000
Sqrt(256)= 16.0000
Dernière mise à jour : Dimanche, le 17 février 2008