Entwickler-Ecke
Free Pascal - Formelberechnung via Lazarus
H.Wagner - Mo 21.12.15 09:10
Titel: Formelberechnung via Lazarus
Moin Leute,
und zwar habe ich folgendes Problem. Ich habe ein Programm geschrieben, welches die P-Q Formel anwendet. Das Compilieren funktioniert aber es kommen sehr falsch klingende werte raus. Es stecckt also ein "Rechenfehler" da drinne, den kann ich aber nicht finden. Ich hinterlege hier mal meinen Quellcode :)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure TForm1.Button1Click(Sender: TObject); VAR x1, x2, q, p ,d : REAL; begin q := StrToFloat (Edit1.text); p := StrToFloat (Edit2.text); Edit3.text := FloatToStr (x1); Edit4.text := FloatToStr (x2); D := ((p*p)/4) - q;
IF D > 0 then begin (x1) := (p/2) + SQRT(D) ; (x2) := (p/2) - SQRT(D) ; end Else If D < 0 then begin panel1.caption := ('Die eingabe war ungültig') ; end
ELSE (x1) := (p/2); |
Ich habe den Wurzelteil als D dargestellt, um mir unnötige schreibarbeit zu sparen. Ich danke schon mal den Leuten die sich dafür Zeit nehmen:)
Moderiert von Martok: Delphi-Tags hinzugefügt
baumina - Mo 21.12.15 09:39
Sicher wäre es sinnvoller zuerst die Werte x1 und x2 zu berechnen und erst danach die Ausgabe der Werte auf dem Bildschirm zu machen und nicht andersrum, denn x1 und x2 sind am Anfang der procedure mit irgendeinem Müll belegt.
frankyboy1974 - Mo 21.12.15 10:38
hallo,
muss es nicht
Delphi-Quelltext
1: 2:
| (x1) := -(p/2) + SQRT(D) ; (x2) := -(p/2) - SQRT(D) ; |
heissen?
mfg
Moderiert von Martok: Delphi-Tags hinzugefügt
klassiknerd - Mo 21.12.15 15:17
Hallo,
vielleicht solltest du die Ausgabe bei negativen D, was in der Mathematik im Übrigen als Diskriminante bezeichnet wird, von "Die eingabe war ungültig" in "Die Lösungen sind nicht reel" verändern. Den mathematisch gesehen gibt es Lösungen, eben nur keine im Bereich der reellen Zahlen.
Beste Grüße
klassiknerd
H.Wagner - Sa 26.12.15 00:17
Danke für die Zahlreiche hilfe:) Frohe weihnacht euch allen und ein guter rutsch ins neue jahr:)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!