[VisualBasic] Quadratische Gleichung

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von skittles, 17. Dezember 2006 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #1 17. Dezember 2006
    Quadratische Gleichung

    Hi,

    ich hab vor ein paar Tagen angefangen mit Visual Basic 2005 zu programmieren und wollt mal so zum Spaß ein Programm machen, das die Quadratische Gleichung berechnet.

    Mein Code sieht bisher so aus:

    Code:
    Public Class Form1
    
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
     Dim a As Double
     Dim b As Double
     Dim c As Double
     Dim x1 As Double
     Dim x2 As Double
     a = Int(TextBox1.Text)
     b = Int(TextBox2.Text)
     c = Int(TextBox3.Text)
     x1 = (-b + System.Math.Sqrt((b * b) - (4 * a * c))) / (2 * a)
     x2 = (-b - System.Math.Sqrt((b * b) - (4 * a * c))) / (2 * a)
     TextBox4.Text = Str(x1)
     TextBox5.Text = Str(x2)
    
     End Sub
    End Class
    Aber leider funktioniert das noch nicht so, wie ich will. Manchmal steht in TextBox4 und TextBox5 "n. def.". Kann mir jemand sagen, was das zu bedeuten hat und wie ich es wegbekomme?

    Danke schonmal im voraus für eure Hilfe. Bewertung bekommt jeder, der versucht mir zu helfen :)

    greetz skittles
     

  2. Anzeige
    Dealz: stark reduzierte Angebote finden.
  3. #2 17. Dezember 2006
    AW: Quadratische Gleichung

    Ich schätz mal das wird sein, wenn 2 * a = 0 weil man ja nicht mit 0 teilen darft, bzw es nicht definiert ist^^

    //EDIT: upps dann will ich mal nix gesagt haben x) Des vom Flofl wird dann wohl stimmen :D
     
  4. #3 17. Dezember 2006
    AW: Quadratische Gleichung

    Ich kenn mich zwar nich besonders gut mit Visual Basic aus, aber ich schätze, dass es daran liegt, dass in manchen Fällen einer quadratischen Gleichung was negatives unter der Wurzel rauskommt und somit nicht berechnet werden kann. Ich weiß nicht wie, oder ob es überhaupt geht, aber versuch ne Bedingungen einzubauen, damit er nur das Ergebnis berechnet bzw. ausgibt, wenn die Diskriminante > 0 oder = 0 ist.

    €dit: @sharkan: Wenn a = 0, wäre es keine quadratische Gleichung, sondern eine lineare Gleichung. ;)

    MfG
    Flofl
     
  5. #4 18. Dezember 2006
    AW: Quadratische Gleichung

    hm also irgendwie nicht :?

    Hab jetzt mehrere Werte ausprobiert und es kommt immer ganz zufällig.
    Eine IF-Bedingung hab ich auch mal eingebaut und hab Visual Basic gesagt es soll ein Meldung in einer MessageBox ausgeben, wenn der Wert unter der Wurzel negativ ist. Aber auch wenn ich b ein kleinen Wert gebe und a und c ein möglichst großen, sodass (b*b) - (4*a*c) möglichst etwas negatives gibt, ist die MessageBox nie erschienen. Außerdem ist mir aufgefallen, dass wenn für x1 und x2 Werte ausgegeben werden, beide immer negativ sind, obwohl ja auch mal was positives rauskommen müsste.

    Hat noch jemand eine Idee?
     
  6. #5 18. Dezember 2006
    AW: Quadratische Gleichung

    versuche mal so einzuprogrammieren, dass wenn ein negativer wert rauskommt er
    dann *dieses* tun muss, und wenn der wert unter null ( >0 ) wie schon von Flofl
    erwähnt, er dann dementsprechend *jenes * tun muss.

    also er muss halt immer auf jede lösung ne antwort parat haben...

    Mfg siemens

    ps: ich frag später mein cousen, der kennt sich damit verdammt gut aus :)
    ich hoffe er kann dir helfen *^^*
     
  7. #6 18. Dezember 2006
    AW: Quadratische Gleichung

    So ich hab jetzt 3 Bedingungen eingebaut und angeblich ist die Diskriminante immer gleich null.

    Mein Code:

    Code:
    Public Class Form1
    
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     Dim a As Double
     Dim b As Double
     Dim c As Double
     Dim dis As Double
     Dim x1 As Double
     Dim x2 As Double
     Dim Meldung As String
     dis = (b * b) - (4 * a * c)
     a = Int(TextBox1.Text)
     b = Int(TextBox2.Text)
     c = Int(TextBox3.Text)
     If dis < 0 Then
     Meldung = "Dis. negativ!"
     End If
     If dis = 0 Then
     Meldung = "Dis. null!"
     End If
     If dis > 0 Then
     Meldung = "Dis. positiv!"
     End If
     TextBox6.Text = Meldung
     x1 = (-b + System.Math.Sqrt((b * b) - (4 * a * c))) / (2 * a)
     x2 = (-b - System.Math.Sqrt((b * b) - (4 * a * c))) / (2 * a)
     TextBox4.Text = Str(x1)
     TextBox5.Text = Str(x2)
    
     End Sub
    End Class
    Egal, was ich Eingabe, immer kommt Dis. null!

    Aber rein vom mathematischen her, hat eine Quadratische Gleichung nur 1 Lösung, wenn die Diskriminante gleich null ist. Und, wenn x1 und x2 nicht gerade n. def. -.- Dann haben x1 und x2 verschiedene Werte.

    Hm, ich hät nich gedacht, dass ich soviel Probleme mit dem Programm hab. Dachte eigentlich, das wär was ganz leichtes zu programmieren. :angry:

    Naja, vielleicht kann mir ja noch jemand weiterhelfen.

    skittles


    //EDIT: Die ersten Bewertungen müssten schonmal raus sein
     
  8. #7 18. Dezember 2006
    AW: Quadratische Gleichung

    also erstmal die reihenfolge beachten^^

    erst die variabeln einlesen, dann die dis berechnen^^

    du deklarierst alles als double

    int = integer

    in vb.net 2003 war es noch cdbl(Texbox1.text)
    wenn sich das so nun verändert hat, sollte es vielleicht dbl(Texbox1.text) heissen....

    wenn du die dis oben schon ausrechnest, warum verwendest du unten dann nicht die variable dazu?

    ich würds jetzt mal so probieren, keine ahnung ob es so in vb.net 2005 geht^^

    Code:
     a = dbl(TextBox1.Text)
     b = dbl(TextBox2.Text)
     c = dbl(TextBox3.Text)
     dis = (b * b) - (4 * a * c)
     If dis < 0 Then
     Meldung = "Keine lösung"
     End If
     If dis = 0 Then
     Meldung = "Doppelte nullstelle"
     x1 = (-b + System.Math.Sqrt(dis)) / (2 * a)
     x2 = x1
     End If
     If dis > 0 Then
     Meldung = "Dis. positiv!"
     x1 = (-b + System.Math.Sqrt(dis)) / (2 * a)
     x2 = (-b - System.Math.Sqrt(dis)) / (2 * a)
     End If
     TextBox6.Text = Meldung
    PS: ich mag die p/q-formel
     
  9. #8 18. Dezember 2006
    AW: Quadratische Gleichung

    Jo, das mit der Reihenfolge war mein Fehler, hab da iwas durcheinander gebracht.
    Und ich habe nachgeschaut, der Befehl heisst immernoch CDbl.

    Jetzt kommt wenn die Diskriminante negativ ist für x1 und x2 n. def. (stimmt ja so)
    Wenn die Dis. null ist kommt 2 mal die selbe Lösung und wenn sie positiv ist dann eben 2 Lösungen.

    Vielleicht lags daran das ich Int() anstatt CDbl() verwendet habe und das Programm nicht richtig gefunzt hat.

    Eins find ich noch komisch. Egal welche Zahlen ich verwende, ich bekomm nie eine positive Lösung für x1 oder x2.

    Aber ansonsten schonmal ne Menge Fehler behoben. :) Thx euch allen. Bws sind noch raus.

    Und hoffe mir kann noch einer helfen...

    greetz skittles

    //EDIT:
    Die lautet? ;)
     
  10. #9 18. Dezember 2006
    AW: Quadratische Gleichung

    pq-formel:

    x1,2 = -p/2 +- sqrt((p/2)² - q)

    wobei x² + px+q = 0.. teilst eine gleichung der form ax² + bx + c=0 einfach noch durch a ;)
     
  11. #10 18. Dezember 2006
    AW: Quadratische Gleichung

    hab mal was ganz schnell in vb6 gecoded:

    Code:
    Dim vorx As Single
    Dim p As Single
    Dim q As Single
    Dim x1 As Single
    Dim x2 As Single
    Dim disk As Single
    
    vorx = CSng(txtvorx.Text)
    p = CSng(txtp.Text)
    q = CSng(txtq.Text)
    
    p = p / vorx
    q = q / vorx
    
    disk = ((p / 2) ^ 2) - q
    
    If disk = 0 Then
    Text3.Text = "Doppelte nullstelle"
    x1 = (p / 2)
    Text4.Text = "+/-" & x1
    End If
    
    If disk > 0 Then
    x1 = -(p / 2) - Sqr(disk)
    x2 = -(p / 2) + Sqr(disk)
    Text3.Text = x1
    Text4.Text = x2
    End If
    
    If disk < 0 Then
    Text3.Text = "keine lösung"
    End If
    funktioniert ;)

    verwendet die pq formel ;) P-Q Formel zur L&ouml;sung quadratischer Gleichungen
     
  12. #11 19. Dezember 2006
    AW: Quadratische Gleichung

    kk, danke, also ich teste dann später mal, ob das auch in vb .net 2005 auch funzt...

    grad ganz schlecht :) ich sag dann bescheid obs ging

    skittles
     
  13. #12 20. Dezember 2006
  14. #13 20. Dezember 2006
    AW: Quadratische Gleichung

    öhm, auf der seite kann ich aber nichts von ner eventuellen zahl vor x² lesen?!
     
  15. #14 20. Dezember 2006
    AW: Quadratische Gleichung

    [X] Mathe lernen.
    [X] Erledigt.

    So schwer ist es nun wirklich nicht ... genug Antworten haste ja bekommen.

    ~closed~

    Mfg,

    Kolazomai
     

  16. Videos zum Thema
Die Seite wird geladen...