Zaawansowane CPP/Ćwiczenia 9: Szablony wyrażeń

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Zadanie 1 Zaimplementuj funkcję generującą tabele prawdy. Pierwszym argumentem tej fnkcji ma być wyrażenie logiczne przyjmujące od 1 do 3 argumengtów (zmiennych) logicznych. Drugim argumentem ma być liczba zmiennych logicznych w wyrażeniu.

 bool and(bool q,bool r) {return q && r;}

table(and,2) ;

powinno wygenerować :

-------------
| 0 | 0 || 0 |    
| 0 | 1 || 0 |    
| 1 | 0 || 0 |    
| 1 | 1 || 1 |    
-------------

Zadanie 2 Napisz szablony wyrażeń które będzie można użyć z powyższym szablonem table.

 First  q;
Second r;
table(q && r,2);

Zaimplementuj operatory &&(i), ||(lub), !(zaprzeczenie), >> (implikacja) i ==(równoważność).

 table(q >> r,2);

generuje:

-------------
| 0 | 0 || 1 |    
| 0 | 1 || 1 |    
| 1 | 0 || 0 |    
| 1 | 1 || 1 |    
-------------