[Visual Basic] pq-Formel

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von -=LuIgI=-, 17. Januar 2012 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 17. Januar 2012
    pq-Formel

    Hey RR'ler,

    ich muss mit Visual Basic 2008 ein Programm schreiben, das eine quadratische Gleichung
    (ax²+bx+c) löst.

    Habe es soweit auch fert jedoch fehlen mir noch ein paar Kleinigkeiten.

    Code:
    Public Class Form1
     Dim a
     Dim b
     Dim c
     Dim Ergebnis
     Dim p
     Dim q
     Dim ZE1
     Dim x1
     Dim x2
     Dim x3
     Dim x4
     Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
    
     End Sub
    
     Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
     a = TextBox1.Text
     End Sub
    
     Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
     b = TextBox2.Text
     End Sub
    
     Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged
     c = TextBox3.Text
     End Sub
    
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     If a = 0 Then
     Ergebnis = -c / b
     MsgBox(Ergebnis)
     ElseIf a <> 0 Then
     p = b / a
     q = c / a
     End If
    
    
     If (p * p / 4 - q) < 0 Then
     ZE1 = (p * p / 4 - q) * -1
     x1 = -(p / 2) + Math.Sqrt(ZE1)
     x2 = -(p / 2) - Math.Sqrt(ZE1)
     MsgBox(x1)
     MsgBox(x2)
     ElseIf (p * p / 4 - q) >= 0 Then
     x3 = -(p / 2) + Math.Sqrt(p * p / 4 - q)
     x4 = -(p / 2) - Math.Sqrt(p * p / 4 - q)
     MsgBox(x3)
     MsgBox(x4)
     End If
    
    
     End Sub
    
     Private Sub TextBox4_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox4.TextChanged
    
     End Sub
    
     Private Sub TextBox5_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox5.TextChanged
    
     End Sub
    End Class
    
    1) Ist es so richtig gelöst, wenn er auch negative Zahlen unter der Wurzel berechnen soll? Sprich komplexe Lösungen ausgeben soll. (einfach mal minus1?)

    2) Spuckt er mir immer alle 3 MsgBoxen aus, obwohl klare If-Bedingungen herrschen.

    3) soll entweder Ergebnis, x1 und x2 oder x3 und x4 in Zwei Textboxen angezeigt werden.

    Vielen dank im voraus!
     
  2. 17. Januar 2012
    AW: pq-Formel

    In der Schule hat eine Wurzel mit negativer Zahl keine Lösung.

    Du solltest den Variablen einen Datentyp zuweisen. Zumindest die die durch die textbox gefüllt werden. Damit z.b. Bruch-Eingaben funktionieren musst du noch mehr machen.

    frei hand:

    Code:
    Public Class Form1
     Dim a As Integer
     Dim b As Integer
     Dim c As Integer
     Dim Ergebnis
     Dim p
     Dim q
     Dim ZE1
     Dim x1
     Dim x2
     Dim x3
     Dim x4
     Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
    
     End Sub
    
     Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
     
     End Sub
    
     Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
     
     End Sub
    
     Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged
     
     End Sub
    
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
    c = CInt(TextBox3.Text)
    b = CInt(TextBox2.Text)
    a = CInt(TextBox1.Text)
    
     If a = 0 Then
     Ergebnis = -c / b
     MsgBox(Ergebnis)
     ElseIf a <> 0 Then
     p = b / a
     q = c / a
     End If
    
    ZE1 = (p * p / 4 - q)
    
     If ZE1 < 0 Then
     
    
     MsgBox("keine lösung")
     Else
     x3 = -(p / 2) + Math.Sqrt(ZE1)
     x4 = -(p / 2) - Math.Sqrt(ZE1)
     MsgBox(x3)
     MsgBox(x4)
     End If
    
    TextBox4.Text = x3
    TextBox5.Text = x4
    
     End Sub
    
     Private Sub TextBox4_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox4.TextChanged
    
     End Sub
    
     Private Sub TextBox5_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox5.TextChanged
    
     End Sub
    End Class
     
  3. 17. Januar 2012
    AW: pq-Formel

    Eine negative Wurzel kann mit hilfe von komplexen zahlen gelöst werden.

    i = sqrt(-1)

    Auch wenn ich jetzt die Textboxen als lösungsfeld angebe, rasselt er das ganze programm runter. Falls als a=0 ist zeigt er mir 0 in beiden textboxen an.
    Also brauche ich ein stop parameter bei den if Sachen.

    So richtig?

    Funktionieren tut es
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.