har gjort en formel (((-b) + Math.Sqrt(b ^ 2 - 4 * a * c)) / (2 * a)) Troligen har du i din ekvation dividerat noll med noll eller liknande. Om t ex a=0 och b=0 så får du nog detta felet. Använd funktionen Double.IsNaN() för att kolla om resultatet blir NaN (=Not a number)... Princip: det lutar åt att din lösning är den jag behöver men jag förstår inte hur jag ska få den till det Du får inte räkna ut x1 och x2 om b^2 - 4*a*c är negativt. Tack, nu blev det rätt Tack, nu blev det rätt jag tror att jag gör det, hade gjort 2 funktioner och var på väg att göra en tredje men så blev jag osäker och fick för mig att jag var fel ute, tog fram mina matteböcker för att friska upp minnet, men i programmering så gör man lite annorlunda, eller är det bara jag som tycker dettaandragrads ekvation
den fungerar
men jag vill få i mitt svarsruta att :
x1 = ngt och x2 = ngt
x1 = x2 = ngt
ingen lösning
när jag kör mitt program så kan jag inte få att den visar det sista alternativet och då undrar jag vad jag ska göra för att det ska göra detta
programet visa istället x1 = NaN och x2 = NaN Sv: andragrads ekvation
Ex:
<code>
MessageBox.Show(Double.IsNaN(0 / 0).ToString())
</code>
Visar texten "True"....Sv: andragrads ekvation
<code>
Let d = b^2 - 4*a*c
If d < 0 Then
Ingen lösning
ElseIf d = 0 Then
x1 = x2 = -b/(2*a)
Else 'If d > 0
x1 = (-b + sqrt(d))/(2*a)
x2 = (-b - sqrt(d))/(2*a)
</code>Sv: andragrads ekvation
x1 = rotenurplus(a, b, c)
x2 = rotenurminus(a, b, c)
Dim svar1 As String = " x1 = "
Dim svar2 As String = "; x2 = "
Dim svar3 As String = "x1 = x2 = "
Dim svar4 As String = "No solution"
If x1 <> x2 Then
TextBox4.Text = svar1 & x1 & svar2 & x2
ElseIf x1 = x2 Then
TextBox4.Text = svar3 & x1
men sen är det hur jag ska få din lösning att fungera i detta, det är så att jag är nybörjare och har precis börjat läsa vb.net till denna övning så ska jag kolla tre olika värden
a b c
1 -11 28 denna fungerar
1 -6 9 denna fungerar
1 4 5 men inte denna utan jag får NaN som svar
så var är det jag gör fel, tänker fel,....Sv: andragrads ekvation
<code>
Dim d As Integer ' om a, b och c bara kan vara heltal, annars är Double lämpligt
d = b^2 - 4*a*c
Dim svar As String
If d < 0 Then
svar = "Ingen lösning"
ElseIf d = 0 Then
svar = "x1 = x2 = " & -b/(2*a)
Else 'If d > 0
svar = "x1 = " & (-b + sqrt(d))/(2*a) & "; x2 = " & (-b - sqrt(d))/(2*a)
TextBox4.Text = svar
</code>Sv: andragrads ekvation
det hade tagit längre tid för mig att lösa dettaSv: andragrads ekvation
det hade tagit längre tid för mig att lösa dettaSv: andragrads ekvation