Hallo miteinnander!
Ich bin derzeit dabei ein Programm zu schreiben, welches eine Kurvendiskussion durchführen soll.
Um Funktionen höheren Grades per Polynomdivision durchführen zu können, versuch ich derzeit eine Nullstelle per Zählschleife zu ermitteln.
Die Faktoren a,b,c,d,e und f werden vom Benutzer bestimmt und wurden von mir als double deklariert. Die folgenden Exponenten sind fest vorgegeben.
a1 = 5
b1 = 4
c1 = 3
d1 = 2
e1 = 1
Hier der Code:
'################################################################
Picture8.Scale (-20, 20)-(20, -20)
Picture8.Line (-20, 0)-(20, 0)
Picture8.Line (0, -20)-(0, 20)
Picture8.DrawWidth = 3
For x = -20 To 20 Step 0.01
y = (a * (x ^ (a1))) + (b * (x ^ (b1))) + (c * (x ^ (c1))) + (d * (x ^ (d1))) + (e * (x ^ (e1 ^ 1))) + f
Picture8.PSet (x, y)
If y = 0 Then
Polyx = x
MsgBox ("x Wert für die Polynom Division: ") & Polyx
End If
Next x
'################################################################
Nun zu meinem Problem. Ab irgendeinem Wert der Zählschleife, spuckt mir das Programm Zahlen mit ewigen Nachkommastellen aus, weshalb ich nie in die If-Anweisung gelange.
Also nehmen wir mal an wir setzen für a bis d die null ein und für e eine 1 und für f eine 1.
Daraus ergibt sich ja dann eine Gerade, die die Nullstelle bei -1 hat. Allerdings errechnet das Programm irgendwann Nachkommastellen wie -19.29999999999999999999, obwohl es eigentlich 19.3 sein sollte.
Hat jemand eine Ahnung woran das liegen könnte?
MfG
Denny |