Bien qu'en DarkBASIC, 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:
R#=2.0
WHILE R#<=1000.0
PRINT "Sqrt(";R#;")=";SquareRoot(R#)
R#=R#*R#
ENDWHILE
WAIT KEY
FUNCTION SquareRoot(X#)
LOCAL A#,B#,M#,XN#
IF X#=0.0 THEN ReturnValue#=0.0:EXITFUNCTION
M#=1.0
XN#=X#
WHILE XN#>=2.0
XN#=0.25*XN#
M#=2.0*M#
ENDWHILE
WHILE XN#<0.5
XN#=4.0*XN#
M#=0.5*M#
ENDWHILE
A#=XN#
B#=1.0-XN#
REPEAT
A#=A#*(1.0+0.5*B#)
B#=0.25*(3.0+B#)*B#*B#
UNTIL B#<0.000000000000001
ReturnValue#=A#*M#
ENDFUNCTION ReturnValue#
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 : Samedi, le 4 octobre 2008