Algorithmus Taschenrechner

Post Reply
Message
Author
Herbert Maschke

Algorithmus Taschenrechner

#1 Post by Herbert Maschke »

Hallo.
Ich interessiere mich fuer den Algorithmus bei simplen Taschenrechnern, also
wie baue ich einen Stack auf, in dem alle Werte und Operationen, die der
Benutzer eingibt berechnet und ein Endergebnis erzeugt wird. Oder gibt es
Algorithmen, die vermeiden dass ueberhaupt ein Stack gebraucht wird?

Ich habe auch bereits in den sourcen von kcalc gewuehlt, da ich jedoch
noch nie in QT programmiert habe werd ich daraus nicht besonders schlau.
Wenn jemand schonmal einen Taschenrechner gebaut hat koennte er mir ja
nen tip geben.

thx im voraus

Jochen

Re: Algorithmus Taschenrechner

#2 Post by Jochen »

Für so etwas kann man ganz toll bison bzw. byacc als Parser-Generator verwenden, mit flex als Lexical Analyzer dazu. Schau mal in die Info-Pages zu bison ("info bison", auch aus dem KDE-Helpcenter mit bequemerer Oberfläche zu erreichen), da hast Du ein mehrstufiges Beispiel, wie ein Taschenrechner gebaut werden kann, angefangen vom UPN-Taschenrechner bis hin zum Multifunktions-Infix-Taschenrechner mit Präzedenz, Variablen, Funktionen usw.

Jochen

Herbert Maschke

Re: Algorithmus Taschenrechner

#3 Post by Herbert Maschke »

Sieht ja recht kryptisch aus, trotzdem werd ich mich jez erstmal
mit bison beschaeftigen und irgendwie den Algorithmus, der dort
zumindest im Quellcode in den info-files steht, auf C zu
uebertragen. Thx

Jochen

Re: Algorithmus Taschenrechner

#4 Post by Jochen »

Öh - das ist das, was der bison macht. Man wirft ihm eine Parser-Definition zum Frass vor und er spuckt einen dazu passenden Parser in C aus. Der Code ist aber nicht unbedingt leicht lesbar...

Jochen

Post Reply