==Include(page="template/taskheader" task_id="bool")==
Haralambie a primit la scoala o tema destul de dificila. El trebuie sa evalueze o expresie logica. Aceasta expresie contine variabile (litere mari ale alfabetului englez de la $A$ la $Z$), constante ({$TRUE$} si {$FALSE$}), paranteze rotunde {$($} si {$)$}, si operatorii logici $NOT$, $AND$ si $OR$. $NOT$ are prioritatea cea mai mare, $OR$ are prioritatea cea mai mica. Initial toate variabilele au valoarea $FALSE$. Lui Haralambie ii place sa evalueze expresii, dar variabilele isi mai schimba uneori valoarea si expresia trebuie reevaluata. Speriat din aceasta cauza, a decis sa apeleze la ajutorul vostru!
==Include(page="template/raw")==
Dupa cum este mentionat mai sus o expresie logica este definita in unul din modurile urmatoare:
Haralambie a primit la scoala o tema destul de dificila. El trebuie sa evalueze o expresie logica. Aceasta expresie contine variabile(litere mari ale alfabetului englez de la $A$ la $Z$), constante({$TRUE$} si {$FALSE$}), paranteze rotunde ({$($} si {$)$}) si operatorii logici $NOT$, $AND$ si $OR$. $NOT$ are prioritatea cea mai mare, $OR$ are prioritatea cea mai mica. Initial toate variabilele au valoarea $FALSE$. Lui Haralambie ii place sa evalueze expresii, dar variabilele isi mai schimba uneori valoarea si expresia trebuie reevaluata. Speriat din aceasta cauza, a decis sa apeleze la ajutorul vostru! Dupa cum este mentionat mai sus o expresie logica este definita in unul din modurile urmatoare:
table. |_. expresie |_. explicatie |
| $TRUE$ | $ $ |
| $FALSE$ | $ $ |
| $c$ | $c - litera mare a alfabetului englez$ |
| $(e)$ | $e - expresie logica$ |
| $NOT e$ | $e - expresie logica$ |
| $e1 AND e2$ | $e1 si e2 - expresii logice$ |
| $e1 OR e2$ | $e1 si e2 - expresii logice$ |
h2. Cerinta
table(example). |_. expresie |_. explicatie |
| TRUE | |
| FALSE | |
| c | c litera mare a alfabetului englez |
| (e) | e expresie logica |
| NOT e | e expresie logica |
| e1 AND e2 | e1 si e2 expresii logice |
| e1 OR e2 | e1 si e2 expresii logice |
Se da expresia ce trebuie evaluata si modificarile ce apar la valorile variabilelor. Pentru fiecare modificare de variabila trebuie reevaluata expresia si afisat rezultatul ({$1$} pentru adevarat si $0$ pentru fals).
h2. Cerinta
Se da expresia ce trebuie evaluata si modificarile ce apar la valorile variabilelor. Pentru fiecare modificare de variabila trebuie reevaluata expresia si afisat rezultatul ($1$ pentru adevarat si $0$ pentru fals).
h2. Date de Intrare
Pe prima linie a fisierului de intrare $bool.in$ este scrisa expresia logica definita ca mai sus. Pe a doua linie este dat numarul $N$ de modificari ale variabilelor. Pe linia a treia sunt date $N$ caractere intre $A$ si $Z$, reprezentand variabilele a caror valoare este modificata.
h2. Date de Iesire
Fisierul $bool.out$ va contine o singura linie de lungime $N$. Pentru fiecare modificare de variabila se va afisa un caracter reprezentand valoarea logica a expresiei: $1$ pentru adevarat si $0$ pentru fals.
h2. Restrictii si precizari