Salve a tutti. Ho fatto questo programma in visual basic ma non capisco perchè mi produce un output errato, eppure sono sicuro che dal punto di vista dell'algoritmo sia corretto...
codice:
Module Module1
Sub Main()
Dim teta, alfa, beta, salfa, sbeta, epsilon, smu, cmu, steta, calfa, cbeta, cteta, mu As Double
Console.WriteLine("Inserisci l'angolo di cui vuoi calcolare seno e coseno")
teta = Console.ReadLine()
Console.WriteLine("Inserisci l'errore con cui vuoi fare il calcolo: ")
epsilon = Console.ReadLine()
alfa = 0
salfa = 0
calfa = 1
beta = 90
sbeta = 1
cbeta = 0
Do
mu = (alfa + beta) / 2
smu = Math.Sqrt((1 - ((calfa * cbeta) + (salfa * sbeta))) / 2)
cmu = Math.Sqrt((1 + ((calfa * cbeta) - (salfa * sbeta))) / 2)
If mu < teta Then
alfa = mu
salfa = smu
calfa = cmu
Else
beta = mu
sbeta = smu
cbeta = cmu
End If
Loop Until ((sbeta - salfa) < epsilon) And ((calfa - cbeta) < epsilon)
steta = (salfa + sbeta) / 2
cteta = (calfa + cbeta) / 2
Console.WriteLine("Il seno è: {0}, ed il coseno è: {1}", steta, cteta)
Console.ReadKey()
End Sub
End Module