Feu un programa que llegeixi una expressió booleana completament parentitzada, i que escrigui el resultat d’avaluar-la. Els operadors admissibles són conjunció i disjunció (binaris) i negació (unari).
Els valors booleans es representen per ‘0’ i
‘1’. La conjunció, la disjunció i la negació es representen
amb ‘’, ‘+’ i ‘!’ respectivament.
L’entrada és una expressió completament parentitzada. Això vol dir que sempre apareixen parèntesis al voltant de les expressions amb operadors binaris. Per exemple,
l’expressió
vindria donada així: (1*0)
l’expressió
vindria donada així: (0+(1*0))
l’expressió
vindria donada així: !(0+(1*0))
Cal escriure el resultat d’avaluar l’expressió en una línia.
Fixeu-vos que una expressió és d’una d’aquestes possibilitats:
o bé és directament un dígit zero o u;
o bé és l’operador unari de negació, seguit d’una expressió;
o bé és un parèntesi obert, seguit d’una expressió, d’un operador binari, d’una altra expressió, i d’un parèntesi tancat.
Input
0
Output
0
Input
!0
Output
1
Input
(1*0)
Output
0
Input
(0+(1*0))
Output
0
Input
!(0+(1*0))
Output
1
Input
!!!!0
Output
0
Input
!(!0+!1)
Output
0