Einzelnen Beitrag anzeigen

ASM

Registriert seit: 16. Aug 2004
165 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: pq-Formel Berechnung Letzte fehlende eingaben...

  Alt 27. Nov 2013, 23:48
Erst einmal enthält Dein Code 2 fundamentale Fehler:

1)
Du kannst im Abschnitt IF d=0 THEN der Anweisung ed_x2.Text:=... keinen Boolschen Wert (false) zuweisen!
So lässt sich Dein Code erst einmal überhaupt nicht kompilieren.
Ohnehin muss es vielmehr ed_x2.visible:=false heißen, was Du ja tatsächlich haben willst.
2)
In den beiden Auswertungen für x1 und x2 ist die abschließende Klammer falsch gesetzt!
Statt
x1 := -(p / 2) + sqrt(sqr(p / 2)) - q // falsch!
muss es richtig heißen
x1 := -(p / 2) + sqrt(sqr(p / 2) - q);
Gleiches gilt für die Auswertung von x2.

Zur Optimierung wäre es außerdem sinnvoll (aber nicht zwingend), den Term sqrt(sqr(p / 2) - q) einmalig vorab der Auswertung von x1 und x2 zu berechnen, das Ergebnis in einer Variablen zu speichern und diese Variable dann anstelle des Terms in beide Gleichung zu übernehmen.

Alles, was Du sonst tun musst, ist es, im Programmlayout einen Button auf das Formular zu setzen und im Button1Click-Event auf die Prozedur zur Berechnung zu verweisen.

Die beiden Editfelder für p und q sollten übrigens zur Absicherung gegen falsche, also nichtnumerische Eingaben geschützt werden.
Dazu im KeyPress-Event beider Edits folgenden Code eintragen:
Delphi-Quellcode:
 case key of
 '0'..'9',',','-':;
 #8:;
 else
  key:=#0;
 end;
Warum Du die Anzeigen für x1, x2 sowie den Erfolgskommentar ('keine Lösung' etc.) in Editfeldern darstellen lässt, verstehe ich nicht, da ja dort keine Interaktion durch den Benutzer notwendig bzw. sinnvoll ist.
Wesentlich besser wäre es deshalb, die entsprechenden Ausgaben im Captiontext von Labels anzuzeigen.
  Mit Zitat antworten Zitat