Arbres lògics

Considerem arbres lògics on cada node intern correspon a una operació lògica (AND, OR o NOT) i on les fulles corresponen a variables booleanes (paraules en minúscules). Per exemple, l’arbre següent correspon a l’expressió lògica AND(OR(a,b),NOT(c)):

Les expressions lògiques s’escriuen en una línia en forma de funcions completament parantitzades, separant els paràmetres amb comes, amb els operadors en majúscules, i amb les variables en minúscules. Els operadors AND i OR tenen dues subexpressions lògiques; els operadors NOT només una. Aquests són alguns exemples d’expressions lògiques:

AND(OR(a,b),NOT(c))

parell

OR(parell,senar)

NOT(AND(OR(a,b),AND(b,NOT(c))))

Avaluar un arbre lògic correspon a calcular el valor que conté la seva expressió lògica per a un conjunt de variables certes (la resta de variables es consideren falses). Per exemple, amb el conjunt de variables certes {𝚊}\{\texttt{a}\}, l’arbre de la figura s’avalua a cert, i amb el conjunt de variables certes {𝚌,𝚊}\{\texttt{c}, \texttt{a}\}, l’arbre de la figura s’avalua a fals.

Descarregeu-vos el codi proposat code.cc i completeu-lo per tal que llegeixi una expressió lògica, construeixi el seu arbre, l’escrigui, i escrigui el resultat de la seva avaluació per a diferents conjunts de variables certes (una per línia).

Pistes

Informació del problema

Autoria: Jordi Petit

Generació: 2026-01-25T11:17:47.936Z

© Jutge.org, 2006–2026.
https://jutge.org