Beim klick auf die ziffern: eingabe erweitern (führende nullen eliminieren und höchstens ein komma akzeptieren), evtl. lassen sich sich die ziffern als control-array anlegen, denn der code ist ja immer identisch.
Beim klick auf operator (+-*/=): letzte gemerkte aktion durchführen, ergebnis als "op1" speichern und die aktuelle operation merken.
z.b.:
eingabe op1 aktion
start # 0 =
3 3 0 =
1 31 0 =
+ # 31 + (übernahme wegen =)
1 1 31 +
4 14 31 +
= # 45 = (addition wegen +)
* # 45 * (keine aktion, da keine eingabe, nur * merken)
2 2 45 *
= # 90 = (multiplikation wegen *)
3 3 90 =
- # 3 - (ergebnis überschreiben, weil eingabe vorhanden)
1 1 3 -
+ # 2 + (subtraktion wegen -)
5 5 2 +
= # 7 = (addition wegen +)
Hier bedeutet "#", dass seit der letzten aktion keine eingabe erfolgt ist. In diesem fall wird op1 angezeigt. Die aktion von "=" ist es, den eingabewert zu übernehmen.
eingabe, op1 und aktion sind die variablen. Ist keine neue eingabe vorhanden, wenn ein operator angeklickt wird, wird nicht gerechnet, sondern nur der neue operator gemerkt.
mr.escape