21. April 200719 j Hi, also wir sollen einen Taschenrechner programmieren der auf einem Kellerautomaten beruht. Ich hab schon rausgefunden, dass man mit dem Kellerautomaten den String der Rechnung (z.B. "4*(3+2)") auf Richtigkeit überprüfen kann, also ob die Zeichen zulässig sind und ob die Klammern richtig gesetzt wurden usw.. aber weiter komm ich nicht.. wie kann ich den Term denn tatsächlich berechnen mit dem Kellerautomaten??
23. April 200719 j Du legst einfach nicht nur die Klammern, sondern auch die Operanden und Operatoren in dem Kellerspeicher ab. Und sobald du etwas hast, das du ausrechnen kannst, tust du das. Sollst du Punkt-vor-Strich o.ä. beachten, oder nur die Klammern?
23. April 200719 j Punkt vor Strich muss auch beachtet werden. Das ist es ja was mir so schwierigkeiten bereitet.. So kann ich den Kellerspeicher nicht einfach so durchgehen, sondern je nachdem was für Operatoren und Klammern benutzt worden sind ändert sich ja die "Reihenfolge" der Berrechnungen sag ich mal.. Wie lös ich denn das Problem?
23. April 200719 j So kann ich den Kellerspeicher nicht einfach so durchgehen, sondern je nachdem was für Operatoren und Klammern benutzt worden sind ändert sich ja die "Reihenfolge" der Berrechnungen sag ich mal.Eben. Du musst bei jeder Eingabe in den Automaten entscheiden, ob die Priorität der Operation in der Eingabe höher ist, oder die der Operation, die oben auf dem Stack liegt. Könnte im nächsten Schritt noch eine Operation mit höherer Priorität folgen, musst du die Eingabe erst mal auf dem Stack sichern. Wenn nicht, kannst du anfangen, den Stack wieder abzubauen. Ein Tipp: Mach's erst mal ohne Klammern.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.