Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi [Erledigt] Postfix Rechner (Ungültige Zeigeroperation) (https://www.delphipraxis.net/68176-%5Berledigt%5D-postfix-rechner-ungueltige-zeigeroperation.html)

Hador 25. Apr 2006 19:04


[Erledigt] Postfix Rechner (Ungültige Zeigeroperation)
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo Leute.

Bei mir ist heute irgendwie der Wurm drin. Oder zumindest 'n Bug.
Ich habe einen Postfix Taschenrechner erstellt, der jedoch einen von mir nicht nachzuvollziehende Fehler auswirft.
Aber evtl. sitz ich da ja auch einfach nur zu lage vor und seh den Wald vor lauter Bäumen nicht.

Also worum es geht:

Mit dem Programm sollen Rechenterme, die Postfix-Schreibweise eingegeben werden und ausgerechnet werden.
so würde man bspw. um "2 + 1" zu rechnen "2 1 +"
oder für "3 * ( 2 + 4 )", "3 2 4 + *"

Wenn ich jetzt aber z.B. bei mir "2 1 - 1 -" eingebe, krieg ich eine Fehlermeldung.

Vieleicht kann sich das Programm ja mal einer angucken. Es sind auch nur ca. 100 Codezeilen

Daniel G 25. Apr 2006 20:37

Re: Postfix Rechner (Ungültige Zeigeroperation)
 
Das Interface sieht ziemlich leer aus.... Wie soll man denn das vernünftig testen geschweige denn damit arbeiten?

marabu 25. Apr 2006 20:47

Re: Postfix Rechner (Ungültige Zeigeroperation)
 
Hallo Lars,

du solltest zuerst deine Unit Keller überarbeiten. Der Rückbezug auf die Form ist nicht gut, da du so deine Unit nicht frei verwenden kannst. Wenn du deinen Keller als einfach verkettete Liste implementieren willst, dann ist das deine Entscheidung, aber elegant ist das nicht wirklich - du hast da extra ein Element, welches nur schreit "ich bin leer". Beim Pop() übergibst du dann auch noch ungültige Daten.

Wenn du deine Unit etwas aufgräumt hast, dann steht ein Test an - nach dem Muster "zweimal Push und der Keller hat die Größe 2, zweimal Pop und er muss wieder leer sein". So hast du schon vier Methoden getestet. Erst wenn deine Unit Keller alle Tests fehlerfrei beendet solltest du sie in deinem Taschenrechner verwenden.

Grüße vom marabu

Hador 25. Apr 2006 21:43

Re: Postfix Rechner (Ungültige Zeigeroperation)
 
Zitat:

Zitat von Daniel G
Das Interface sieht ziemlich leer aus.... Wie soll man denn das vernünftig testen geschweige denn damit arbeiten?

^^ Du brauchst dort nur was eingeben.



Zitat:

Zitat von marabu
Hallo Lars,

Hallo marabu

Zitat:

Zitat von marabu
du solltest zuerst deine Unit Keller überarbeiten. Der Rückbezug auf die Form ist nicht gut, da du so deine Unit nicht frei verwenden kannst.

Jo da hast du Recht. Das war auch nur eine quick'n'dirty-Lösung um das ganze in die Listbox zu kriegen.

Zitat:

Zitat von marabu
Wenn du deinen Keller als einfach verkettete Liste implementieren willst, dann ist das deine Entscheidung, aber elegant ist das nicht wirklich - du hast da extra ein Element, welches nur schreit "ich bin leer". Beim Pop() übergibst du dann auch noch ungültige Daten.

Von dem Keller komme ich leider nicht weg. Mein Lehrer liebt die Dinger :mrgreen:
Aber bei dem leeren Objekt hast du Recht. Ich denke ich werde das ganze mal so umbauen, dass man dem Keller beim erzeugen bereits Daten übergeben muss. So habe ich kein leeres Objekt. Und wie ich das FEmpty ersetzen kann, da habe ich auch schon eine Idee.

Zitat:

Zitat von marabu
Wenn du deine Unit etwas aufgräumt hast, dann steht ein Test an - nach dem Muster "zweimal Push und der Keller hat die Größe 2, zweimal Pop und er muss wieder leer sein". So hast du schon vier Methoden getestet. Erst wenn deine Unit Keller alle Tests fehlerfrei beendet solltest du sie in deinem Taschenrechner verwenden.

Eigentlich war er schon getestet. Ich habe auch eben bemerkt, dass ich noch eine ältere Version genommen habe, die noch diesen Fehler verursacht. :wall: Nja jetzt habe ich das ganze am laufen.

Zitat:

Zitat von marabu
Grüße vom marabu

Gruß zurück

Daniel G 26. Apr 2006 14:21

Re: Postfix Rechner (Ungültige Zeigeroperation)
 
Zitat:

Zitat von Hador
Zitat:

Zitat von Daniel G
Das Interface sieht ziemlich leer aus.... Wie soll man denn das vernünftig testen geschweige denn damit arbeiten?

^^ Du brauchst dort nur was eingeben.

Trägt aber nicht wirklich zu Usability bei. Ich kann die Werte nicht nachträglich korrigieren, kopieren und einfügen geht so auch nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18: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