SimReal - Hvordan lage en kalkulator? parAbel Logo

[Hovedmeny] [Galleri] [SMin] [SMax] [SWin] [Eng] [Hjelp] [Forrige] [Neste]
På denne siden vises en algoritme for omforming av et infix-uttrykk til tilhørende postfix-uttrykk.
På neste side vises steg for steg hvordan infix, postfix og stakk ser ut ved lesing av et aritmetisk uttrykk.


Kort fortalt går algoritmen ut på følgende:
Les fortløpende ett og ett tegn si (operand/operator) fra infix-uttrykket.
Hvis lest tegn er en operand, flyttes (konkateneres) operanden til postfix-uttrykket.
Hvis lest tegn er en utvidet operator, poppes øverste stakk-element so opp.
Så lenge so har større enn eller lik prioritet som si, konkateneres so til postfix-uttrykket, og nytt element so poppes fra operator-stakken.
So pushes ned på stakken.
Si pushes ned på stakken.
Hvis si er en høyreparentes, poppes so opp fra operator-stakken.
Så lenge so er ulik venstreparentes, konkateneres so til postfix-uttrykket og nytt element so poppes opp fra operator-stakken.
Hvis si er lik slutt-tegnet #, poppes so opp fra operator-stakken og konkateneres til postfix-uttrykket.
Nye so poppes opp fra operator-stakken og konkateneres til postfix-uttryket inntil operator-stakken er tom.


Her finner du en simulering av denne algoritmen.
Når simuleringen starter, velger du først punkt nr 3 (Simulering) i menyen.
Deretter skriver du inn et aritmetisk uttrykk på infix form.
Som et godt eksempel kan du skrive inn:

a/b^c+d*e-a*c

Trykk deretter 'Return' (Enter/Linjeskift).
Infix-uttrykket blir da plassert i infix-posisjonen i simuleringen.
For hvert nye trykk på 'Return', vil nå simuleringen vise steg for steg hvordan omformingen foregår fra infix til postfix form.