En QuickBASIC, il existe déjà une fonction permettant de connaitre l'ArcTangente (ATN). Cependant, il peut être intéressant d'en reproduire une pour notre plaisir personnel. Pour remédier à se problème, il suffit de créer une fonction ressemblant à ceci avec un préalable la fonction de racine carré :
- DECLARE FUNCTION SquareRoot! (X!)
- DECLARE FUNCTION ArcTan! (X!)
-
- R! = 0!
- WHILE R! <= 1.1
- PRINT USING "ArcTan(#.#####)="; R!;
- PRINT USING "#.######"; ArcTan(R!)
- R! = R! + .1
- WEND
-
- FUNCTION ArcTan (X)
- DIM A AS DOUBLE
- DIM B AS DOUBLE
- DIM N AS INTEGER
- A = 1! / SquareRoot(1! + (X * X))
- B = 1!
- N = 1
- WHILE N <= 11
- A = (A + B) / 2!
- B = SquareRoot(A * B)
- N = N + 1
- WEND
- ArcTan = X / (SquareRoot(1! + (X * X)) * A)
- END FUNCTION
-
- FUNCTION SquareRoot (X)
- IF X = 0! THEN
- SquareRoot = 0!
- EXIT FUNCTION
- END IF
- M = 1!
- XN = X
- WHILE XN >= 2!
- XN = .25 * XN
- M = 2! * M
- WEND
- WHILE XN < .5
- XN = 4! * XN
- M = .5 * M
- WEND
- A = XN
- B = 1! - XN
- DO
- A = A * (1! + .5 * B)
- B = .25 * (3! + B) * B * B
- LOOP UNTIL B < .000000000000001#
- SquareRoot = A * M
- END FUNCTION
on obtiendra le résultat suivant :
ArcTan(0.00000)= 0.000000ArcTan(0.10000)= 0.099668
ArcTan(0.20000)= 0.197396
ArcTan(0.30000)= 0.291457
ArcTan(0.40000)= 0.380506
ArcTan(0.50000)= 0.463648
ArcTan(0.60000)= 0.540420
ArcTan(0.70000)= 0.610726
ArcTan(0.80000)= 0.674741
ArcTan(0.90000)= 0.732815
ArcTan(1.00000)= 0.785398
Dernière mise à jour : Mercredi, le 14 septembre 2016