Bien qu'en PowerBASIC, il existe une fonction «Sqr» 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:
DEF FNSquareRoot(X)
LOCAL A,B,M,XN
IF X=0.0 THEN FNSquareRoot=0.0:EXIT DEF
M=1.0
XN=X
DO UNTIL XN<2.0
XN=0.25*XN
M=2.0*M
LOOP
DO UNTIL XN>=0.5
XN=4.0*XN
M=0.5*M
LOOP
A=XN
B=1.0-XN
DO
A=A*(1.0+0.5*B)
B=0.25*(3.0+B)*B*B
LOOP WHILE B>=1.0E-15
FNSquareRoot=A*M
END DEF
R=2.0
DO UNTIL R>1000.0
PRINT "Sqrt("+STR$(R)+")="+STR$(FNSquareRoot(R))
R=R*R
LOOP
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 23 janvier 2016