Zadani prikladu na trinactem prvnim terminu UNIXu (29.6.2000)
Naprogramujte kalkulacku
From: "Albrecht Stepan - I"
Sent: Thu, 29 Jun 2000 21:21:23 +0200
To: "Jan.Stuchl@st.ms.mff.cuni.cz"
Subject: Unix 28.6. - precti si to !!!
Meli jsme delat kalkulacku, ktera vyhodnocuje vyraz v postfixu - tak
jednoduchy to zase nebylo.
Ze vstupu si cet stringy a podle toho, co ti prislo si to hodil na
zasobnik popripade vyhodnotil, priradil do nove promene (ta je taky
v zasobniku) to co mas v zasobniku.
Co si pouzival:
cela cisla (nebo prirozena)
+ - * /
promene - napr: aa , abx
nebo indexovane promene
3 aa ] -> tzn. aa[3]
navic: ten index moh bejt taky promena a taky
treba indexovana
A ted stringy, co nebyly promene ani nic jinyho, jen vypisovaly
nebo provadeli operace se zasobnikem.
= do promene pred rovnasem zapis co je na zasobniku a to same
z neho vymaz
. - to taky neco delalo
) to byla jen zarazka pro dalsi vec, max - kdyz tohle se obevilo na
vstupu, mel si vypsat nejvetsi operand na zasobniku
zadal si regexp nebo wildcard a vypsal si hodnoty vsech
promenych, co odpovidaji tomu re nebo wi.
pak jeste kdyz si neco zadal ze vstupu, tak ti to vypsalo zasobnik
Takze treba
3 ab ] aa 3 + * i 2 + aa ] =
udelalo tohle aa[i+2] := (3 + aa) * ab[3]
a v zasobniku nezustalo nic