![]() |
Re: Taschenrechner Ausgabe
Also zuerst kommt bei mir ne Warnung
[DCC Warnung] Calculator_Main.PAS(88): W1035 Rückgabewert der Funktion 'TFormTR.BerechneTerm' könnte undefiniert sein danach starte ich das Programm was einwandfrei funkioniert, wenn ich aber ne Multiplikation mache kommt ne fehlermeldung. [DCC Warnung] Calculator_Main.PAS(88): W1035 Rückgabewert der Funktion 'TFormTR.BerechneTerm' könnte undefiniert sein. Und wenn du mir erklären würdest wie du das gemacht hast wäre ich sehr dankbar.. P.S: Alle anderen Operanden funktionieren außer die Multiplikation |
Re: Taschenrechner Ausgabe
Welche Version von BerechneTerm? Die in Post #27 von mir oder die in Post #29 von Klaus01.
Lies im Thread bitte alle Antworten, nach Deiner letzten Frage. Wenn Du die Hälfe der Antworten hier ignorierst, macht es für mcih keinen Sinn, überhaupt zu Antworten |
Re: Taschenrechner Ausgabe
Zitat:
Das as Du angegeben hast sind Warnungen, sie besagen das der result Wert von BerechneTerm undefiniert sein könnte. Das kannst Du beheben indem Du zu Anfang der Routine ein result := 0 einfügst. Benutzt Du auch das 'x' zum Multiplizieren oder das '*'. In Deiner Routine solltest Du das x verwenden in der meinigen das *. [edit] Kommetare im Quelltext eingefügt [edit] Grüße Klaus |
Re: Taschenrechner Ausgabe
dein letzten beitrag habe ich erst jetzt gelesen sorry..
also ich habe deine(satty67) Version benutzt, jetzt funktioniert das auch. Aber da sind auch rechenfehler drin, ich bin mir nicht sicher aber wenn ich mind. 3 operanden eingebe macht er manchmal fehler.. höchstwahrscheinlich macht er die fehler bei der division.. ich bin mir aber nicht sicher.. |
Re: Taschenrechner Ausgabe
Beschriftung des SpeedButton für Multiplikation muss natürlich identisch sein. Also überall "*" oder überall "x" verwenden.
Mit überall ist Caption von SpeedButton und die Zeichen in BerechneTerm gemeint. |
Re: Taschenrechner Ausgabe
das problem ist nicht bei der multiplikation jetzt sondern bei der division..
wenn ich z.B 12-3+1 eintippe gibt er 8 aus. der verwandelt iwi das + in minus um oder noch ein beispiel 18 -4+3 gibt er 11 aus. |
Re: Taschenrechner Ausgabe
Ja, das Problem hat irgendwo schon mal jemand angesprochen. Das wäre dann auch schon die nächste Baustelle:
Die Reihenfolge der berechneten Terme stimmt nicht mit den mathematischen Regeln überein. |
Re: Taschenrechner Ausgabe
Zitat:
Bespiel 12 -3 = 9 9 +1 = 10 12 - (3+1) = 12 -4 = 8 oder 18 - 4 +3 18 - 4 = 14 14 +3 = 17 18 - (4+3) = 18 - 7 = 11 Grüße Klaus |
Re: Taschenrechner Ausgabe
hmm wieder so´ne scheiße.. satty67 kannst du dein teil kommentieren was du da gemacht hast, wenn es keine umstände macht..
das mit der mathematischen müssen wir nochmal anschauen |
Re: Taschenrechner Ausgabe
Dieser spezielle Fehler liegt nicht an der Reihenfolge sondern daran das die Schleife weiterläuft, auch wenn ein Operator gefunden wird.
Wenn man nach dem case ein break einfügt kommt bei 12-3+1 auch 10 raus :)
Delphi-Quellcode:
Aber 1+1*2 ist 4 ;)
case index of
0: Result := Seg1 * Seg2; 1: Result := Seg1 / Seg2; 2: Result := Seg1 + Seg2; 3: Result := Seg1 - Seg2; end; break; Also stimmt die Reihenfolge auch nicht. (wohoo endlich mal wieder delphi geschrieben, c geht mir aufn keks...) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz