Taschenrechner programmieren



  • Hallo
    ich möchte einen Taschenrechner programmieren. Beide Zahlen und Rechenzeichen soll man in einem Editfeld angeben.
    Bisher hatte ich es mit 3 Editfeldern (1=1. Zahl; 2=Rechenzeichen; 3=2. Zahl)
    Aber das wird auf dauer nervig (Tab oder Mausklick)
    Aber wie kann ich das in einem Editfeld machen?
    Danke im voraus



  • Aber wie kann ich das in einem Editfeld machen?

    Alles in einem Editfeld eingeben lassen. Wo ist da nun die Frage?

    Der String wird dann nach Ziffern und Rechenoperationen durchsucht und diese werden dann entsprechend den math. Regel abgearbeitet. Das Parsen dieses Stringes ist dann allerdings etwas für "Fortgeschrittene". Entweder du sucht im Internet nach solchen Parsern oder nimmst statt der Eingabe in einem Editfeld Buttons mit /*-+.



  • Hallo

    wozu parsen? Bau doch einen klassischen Taschenrechner nach, der alle benötigten Daten seperat hintereinander in ein und dasselbe TEdit aufnimmt. Dazu must du dir nach jedem Enter nur merken, bei welcher Eingabe (Zahl oder Operator) du gerade bist, bzw gehst bei aufeinanderfolgenden Zahlen von + aus.

    bis bald
    akari



  • Umgekehrte polnische Notation (UPN).

    Wenn ne Zahl im Feld steht --> ab auf den Stack.
    Wenn ein binärer Operator drin steht --> zwei Zahlen vom Stack ziehen, den Operator drauf anwenden und das Ergebnis ins TEdit.
    Einfacher geht's kaum.

    Und wie ein Taschenrechner ist es auch. Halt einer von HP.
    Hat sogar diesen Old-School-Touch, der heutzutage so hipp ist.



  • Wenn ein binärer Operator drin steht --> zwei Zahlen vom Stack ziehen, den Operator drauf anwenden und das Ergebnis ins TEdit.

    Klammerung??



  • Christian: das ist ja das Schöne an UPN. Man darf nachdenken beim Rechnen.
    Im Ernst, früher war es ein Merkmal eines "high-end" wissenschaftlichen Taschenrechners.



  • Ähhhh, wann früher??

    Mein erster Taschenrechner hat 90 DM gekostet und war fast so groß wie eine DVD Hülle und ca. 5 cm hoch. Konnte aber schon einiges 🙂



  • Tilsiter schrieb:

    Wenn ein binärer Operator drin steht --> zwei Zahlen vom Stack ziehen, den Operator drauf anwenden und das Ergebnis ins TEdit.

    Sorry, ich habe nicht nachgedacht: das Ergebnis muss natürlich auch wieder auf den Stack.
    Wenn € für die Eingabetaste steht, würde man den Ausdruck "23 * (14 + 9)" so rechnen:

    14 € 9 + 23 *
    

    "54 + 12 / ((3 + 7) * (91 + 3) / 2)" wäre:

    54 € 12 € 3 € 7 + 91 € 3 + * 2 / / +
    

    Ich hab das goldene Zeitalter der UPN-Rechner nicht mehr richtig mitgekriegt und ehrlich gesagt nicht wirklich viel Übung. Aber ich kenne Wissenschaftler, die schwören sie seien damit um Längen schneller. Wenn sie mal einen Rechner anfassen müssen.



  • "Früher" heisst: noch Anfang der Neunziger arbeiteten die begehrtesten wissenschaftlichen Taschenrechner auf UPN-Basis.

    Vielleicht ist diese Zeit noch nicht vorbei: ich sehe gerade, HP bietet immer noch entsprechende Geräte an... der HP33s ist wahrscheinlich der Nachfolger vom legendären HP28s seinerzeit.

    Sie haben auch eine ausgezeichnete Erklärung der Vorteile von UPN (RPN auf Englisch), inklusive einen Web-Taschenrechner, auf dem man das ausprobieren kann:
    http://www.hp.com/calculators/news/rpn.html






Anmelden zum Antworten