Code-Beispiel
Lösung quadratischer Gleichungen
Lizenz: | Erster Autor: | Letzte Bearbeitung: |
BSD-Lizenz | ytwinky | 16.03.2011 |
Die Grundlage für die Lösung quadratischer Gleichung bildet dieses Bild,
das als Anhang(s.u.) beigefügt ist.
Die mathematische Herleitung der Formeln ist hier nicht Gegenstand der Untersuchung.
Es geht um's Programm. Hier ist der Code:
#define Real Single 'kann auch Double sein..
Const Author="QuadGlei.Bas v0.21.1 ¸2011 by ytwinky, MD", Esc=!"\27"'
Type QuaGleiRec 'Erstmal einen eigenen Typ erzeugen, da qgaf 3 Werte zurückgeben soll
As Real x1, x2 ' 2 Reals
As String SqrErr ' und einen String für Fehlermeldungen
End Type
Function qgaf(a As Real, b As Real, c As Real) As QuaGleiRec
Dim r As QuaGleiRec 'als Hilfsvariable deklarieren
Dim As Real p, q, d ' Variablen für die Funktion
If a=0 Then ' Fehler
r.SqrErr="keine quadratische Gleichung"
Else
p=b/a 'p normalisieren..
q=c/a 'q ..auch
d=p*p/4-q 'Diskriminante berechnen
If d<0 Then 'Wert unter der Wurzel<0
r.SqrErr="negative Diskriminante(keine relle L”sung..)"
Else
r.x1=-p*0.5+Sqr(d) 'Lösung 1 berechnen
r.x2=-p*0.5-Sqr(d) 'Lösung 2 berechnen
r.SqrErr="" 'kein Fehler
End If
End If
Return r 'Ergebnis zurückgeben
End Function
Dim As QuaGleiRec x
Dim As Real a, b, c
Var m=""
Print Author
Do
Print "Allgemeine Form: a*xý+b*x+c=0"
Input "Koeffizient von xý: a=", a 'Eingabe des Koeffizienten von x²
If a<>0 Then
Input "Koeffizient von x : b=", b 'Eingabe des Koeffizienten von x
Input "Konstante : c=", c 'Eingabe der Konstanten c
End If
x=qgaf(a, b, c)
If x.SqrErr<>"" Then
Print "Fehler:" &x.SqrErr
Else
Print "x" & *IIf(x.x1<>x.x2, @"1", @"") &"=" &x.x1;
If x.x1<>x.x2 Then Print " x2=" &x.x2;
If x.SqrErr<>"" Then Print " SqrErr=" &x.SqrErr;
Print
End If
Print "Noch eine Berechnung?(J/N):";
m=""
While m=""
m=lcase(InKey)
Wend
Print m
Loop Until InStr("n" &Esc, m)
Attachments zum Code-Beispiel | |||||
---|---|---|---|---|---|
|
Zusätzliche Informationen und Funktionen | |||||||
---|---|---|---|---|---|---|---|
|