En Visual Basic .NET (VB .NET), il existe déjà une fonction permettant de connaitre l'ArcTangente (Math.Atan). 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é :
- Module Module1
-
- Function SquareRoot(ByVal X As Double) As Double
- Dim A, B, M, XN As Double
- If X = 0.0 Then
- Return 0.0
- Else
- M = 1.0
- XN = X
- While XN >= 2.0
- XN = 0.25 * XN
- M = 2.0 * M
- End While
- While XN < 0.5
- XN = 4.0 * XN
- M = 0.5 * M
- End While
- 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 >= 0.000000000000001
- Return A * M
- End If
- End Function
-
- Function ArcTan(ByVal X As Double) As Double
- Dim A As Double = 1.0 / SquareRoot(1.0 + (X * X))
- Dim B As Double = 1.0
- Dim N As Integer = 1
- While N <= 11
- A = (A + B) / 2.0
- B = SquareRoot(A * B)
- N += 1
- End While
- Return X / (SquareRoot(1.0 + (X * X)) * A)
- End Function
-
- Sub Main()
- Dim R As Double = 0.0
- While R <= 1.1
- Console.WriteLine("ArcTan(" & R & ")=" & ArcTan(R))
- R += 0.1
- End While
- End Sub
-
- End Module
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 : Samedi, le 22 octobre 2016