Section courante

A propos

Section administrative du site

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


Dernière mise à jour : Samedi, le 4 octobre 2008