Magyarforma

Aritmetikai kifejezések kiértékelése kapcsán közismert a lengyelforma. Elevenítsük fel a (postfix) lengyel formában adott aritmetikai kifejezés kiértékelésének algoritmusát. Az algoritmus lényege, hogy a lengyelformában adott kifejezést szekvenciálisan olvasva, amennyiben operandust olvasunk, bedobjuk a veremben, ha operátort olvasunk, kivesszük a verem tetején lévő két operandust és a műveletet elvégezve, az eredményt visszadobjuk a verembe.

Legyen a magyarforma is az aritmetikai kifejezések kiértékelésére használt felírási módok egyike. A magyarforma definícióját adjuk meg a kiértékelésének algoritmusával. Az algoritmus lényege legyen ugyan az, mint a lengyelforma esetén, csak a verem helyett használjunk sort. Tehát a magyarformában adott kifejezést szekvenciálisan olvasva, amennyiben operandust olvasunk, berakjuk a sorba (végére), ha operátort olvasunk, kivesszük a sor elején lévő két operandust és a műveletet elvégezve, az eredményt visszarakjuk a sorba (végére).

Feladat:

Adott egy kifejezés "hétköznapi" (infix-es) alakban. Értékeljük ki a kifejezést magyarforma használatával.

Bemenet:

A bemenet egy-egy sora egy-egy aritmetikai kifejezést tartalmaz "hétköznapi" (infix-es) alakban. A kifejezések a következő elemekből állnak:

ˇ        operandusok: pozitív egészszám konstansok

ˇ        kétoperandusú operátorok: +,-,*,/,^ (hatványozás)

ˇ        zárójelek: ( )

Kimenet:

Minden egyes kifejezésre adjuk meg a kifejezés értékét, továbbá a kifejezés magyarformájú alakját.

 

 

(Nagy Tibor)