Adott egy kifejezés, teljes zárójelezéssel.
( ( 3 + ( 4 - 12 ) ) / ( 5 - ( 2 * 1 ) ) )
A teljes zárójelezés azt jelenti, hogy minden művelthez tartozik egy nyitó és egy csukó zárójel: ( a - b ) . Az egyszerűség kedvéért a további megszorításokat is feltételezzük: - minden token (zárójel, műveleti jel, szám) szóközökkel van egymástól elválasztva
- csak az egészeken értelmezett négy alapművelet szerepelhet, az osztás "egész osztás" (DIV)
- a kifejezés helyes
Feladat
Írjunk programot, ami kiszámolja a kifejezés értékét.
Bemenet
A bemenet egyetlen sor, a teljesen zárójelezett kifejezés.
Kimenet
A kifejezés értéke. Nullával osztás estén ezt írjuk ki, hogy HIBA.
Példa
kifejezes.txt |
Kimenet |
( 1 + 0 )
| 1
|
( 2 + ( ( 3 + 4 ) * ( 5 * 6 ) ) ) | 212 | ( ( 2 * 2 ) / ( 2 + 3 ) ) | 0 | ( ( 3 + ( 4 - 12 ) ) / ( 5 - ( 2 * 1 ) ) ) | -1 | ( 3 / ( 4 / 5 ) ) | HIBA |
Tesztadatok
Lásd fent.
Címkék
A feladat forrása: Sedgewick, Intro to Computer Science
Algoritmusok: verem használata
megoldás |