Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi pq-Formel Berechnung Letzte fehlende eingaben... (https://www.delphipraxis.net/177793-pq-formel-berechnung-letzte-fehlende-eingaben.html)

Eichel 27. Nov 2013 19:13


pq-Formel Berechnung Letzte fehlende eingaben...
 
hey leute

ich muss für die schule ein pq-formel programm entwickeln...
ich habe schon ein grundgerüst in dem ich alle vorgaben verarbeitet habe, aber ich weiß nich was noch fehlt um es zum laufen bzw. rechnen zu bekoomen :)
hier das gerüst:



Delphi-Quellcode:
VAR p, q, d, x1, x2: REAL; p_str, q_str: STRING;
begin
p_str := ed_p.Text;
q_str := ed_q.Text;
p := strtofloat (p_str);
q := strtofloat (q_str);
d := sqr(p/2)-q;

IF d<0 THEN BEGIN
ed_komm.Text := 'keine Lösung';
Label5.Visible := false;
Label6.Visible := false;
ed_x1.Visible := false;
ed_x2.Visible := false;
END

ELSE IF d=0 THEN BEGIN
ed_komm.Text := 'eine Lösung';
x1 := -(p/2);
ed_x1.Text := floattostr(x1);
Label6.Visible := false;
ed_x2.Text := false;
END

ELSE IF d>0 THEN BEGIN
ed_komm.Text := 'zwei Lösungen';
x1 := -(p/2)+sqrt(sqr(p/2))-q;
x2 := -(p/2)-sqrt(sqr(p/2))-q;
ed_x1.Text := floattostr(x1);
ed_x2.Text := floattostr(x2);
END

So das wars :)
ich hoffe ihr könnt mir helfen und das gerüst ergänzen :)
danke schonmal im vorraus...

ASM 27. Nov 2013 22:48

AW: pq-Formel Berechnung Letzte fehlende eingaben...
 
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
Delphi-Quellcode:
x1 := -(p / 2) + sqrt(sqr(p / 2)) - q // falsch!
muss es richtig heißen
Delphi-Quellcode:
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.

BUG 28. Nov 2013 01:15

AW: pq-Formel Berechnung Letzte fehlende eingaben...
 
Eine ziemlich umfassende Betrachtung gab es schonmal im Thema: [Tutorial] Quadratische Gleichungen vollständig lösen

ASM 28. Nov 2013 07:43

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

Zitat von BUG (Beitrag 1237722)
Eine ziemlich umfassende Betrachtung gab es schonmal im Thema: [Tutorial] Quadratische Gleichungen vollständig lösen

An sich ein guter Hinweis.
Wieso aber habe ich den Eindruck, dass der Hinweis auf dieses Tutorial sein Problem nicht hätte lösen können ?
Immerhin hat er ja den Lösungsansatz insoweit richtig angelegt, wenn man von dem fatalen Fehler mit der abschließenden Klammer in der Berechnung einmal absieht.

Sein Problem scheint offensichtlich eher eines im eher schon trivialen programmiertechnischen Grundlagenwissen zu sein (und außerdem eines des orthografisch und grammatisch korrekten, der Oberstufe angemessenen Satzbaues *) s.u.).

*)
Preisfrage nebenbei: Wieviele Fehler enthält wohl allein der kleine Satz seiner Frage:
Zitat:

Zitat von Eichel
"ich weiß nich was noch fehlt um es zum laufen bzw. rechnen zu bekoomen"

[Antwort: 6 Fehler!]

Perlsau 28. Nov 2013 07:56

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

Zitat von ASM (Beitrag 1237732)
Preisfrage nebenbei: Wieviele Fehler enthält wohl allein der kleine Satz seiner Frage: "ich weiß nich was noch fehlt um es zum laufen bzw. rechnen zu bekoomen"

Der Satz müßte korrekt lauten:

Ich weiß nicht, was noch fehlt, um es zum Laufen bzw. Rechnen zu bekommen.

Nach meiner Zählung ergeben sich daraus genau 8 Rechtschreibfehler.

Eichel 28. Nov 2013 15:42

AW: pq-Formel Berechnung Letzte fehlende eingaben...
 
Danke für deine hilfe ASM :)

ich habe das alles unter einem procedure "bt.Click" angegeben, aber es wird mir trotzdem nichts angezeigt wenn ich in die edit-felder von p und q eine zahl eingebe und dann auf den button klicke... :O

was fehlt jetzt noch um es zum starten zu bekommen? weiß nich was noch falsch is...

danke für weitere hilfe :)

MrSpock 28. Nov 2013 15:54

AW: pq-Formel Berechnung Letzte fehlende eingaben...
 
Hallo Eichel,

benutze bitte Groß-/Kleinschreibung und achte besser auf Rechtschreibung.

DP-Maintenance 5. Dez 2013 14:43

Dieses Thema wurde am "05. Dec 2013, 15:43 Uhr" von "TBx" aus dem Forum "Neuen Beitrag zur Code-Library hinzufügen" in das Forum "Programmieren allgemein" verschoben.

p80286 5. Dez 2013 15:33

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

Zitat von Eichel (Beitrag 1237838)
ich habe das alles unter einem procedure "bt.Click" angegeben, aber es wird mir trotzdem nichts angezeigt wenn ich in die edit-felder von p und q eine zahl eingebe und dann auf den button klicke... :O

Der Hinweis auf den Debugger wird wohl nicht auf große Gegenliebe stoßen, alse zeig' doch bitte einmal den vollständigen Sourcecode.

(Ich gehe jetzt mal davon aus, daß es keine Fehlermeldung gibt!?)

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz