Zaawansowane CPP/Ćwiczenia 9: Szablony wyrażeń: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
 
Linia 1: Linia 1:
 
''Uwaga: przekonwertowane latex2mediawiki; prawdopodobnie trzeba wprowadzi� poprawki''
 
 
{Szablony wyraźeń}
 
 
 
'''Zadanie 1 '''  Zaimplementuj funkcję generującą tabele
 
'''Zadanie 1 '''  Zaimplementuj funkcję generującą tabele
 
prawdy.  Pierwszym argumentem tej fnkcji ma być wyrażenie logiczne
 
prawdy.  Pierwszym argumentem tej fnkcji ma być wyrażenie logiczne
Linia 11: Linia 6:
 
  <nowiki> bool and(bool q,bool r) {return q && r;}
 
  <nowiki> bool and(bool q,bool r) {return q && r;}
  
table(and,2) ;
+
table(and,2) ;</nowiki>
</nowiki>
 
  
 
powinno wygenerować :
 
powinno wygenerować :
  
  <nowiki> -------------
+
  <nowiki>-------------
 
| 0 | 0 || 0 |     
 
| 0 | 0 || 0 |     
 
| 0 | 1 || 0 |     
 
| 0 | 1 || 0 |     
Linia 25: Linia 19:
  
 
'''Zadanie 2 '''  Napisz szablony wyrażeń które będzie można użyć
 
'''Zadanie 2 '''  Napisz szablony wyrażeń które będzie można użyć
z powyższym szablonem <code><nowiki> table</nowiki></code>.
+
z powyższym szablonem <code><nowiki>table</nowiki></code>.
  
 
  <nowiki> First  q;
 
  <nowiki> First  q;
 
Second r;
 
Second r;
table(q && r,2);
+
table(q && r,2);</nowiki>
</nowiki>
 
  
Zaimplementuj operatory <code><nowiki> &&</nowiki></code>(i), <code><nowiki>   |     |   </nowiki></code>(lub), <code><nowiki> !</nowiki></code>(zaprzeczenie),   
+
Zaimplementuj operatory <code><nowiki>&&</nowiki></code>(i), <code><nowiki>||</nowiki></code>(lub), <code><nowiki>!</nowiki></code>(zaprzeczenie),   
<code><nowiki> >></nowiki></code> (implikacja)  i  <code><nowiki>   =     =   </nowiki></code>(równoważność).  
+
<code><nowiki>>></nowiki></code> (implikacja)  i  <code><nowiki>==</nowiki></code>(równoważność).  
  
  <nowiki> table(q >> r,2);
+
  <nowiki> table(q >> r,2);</nowiki>
</nowiki>
 
  
 
generuje:  
 
generuje:  
  
  <nowiki> -------------
+
  <nowiki>-------------
 
| 0 | 0 || 1 |     
 
| 0 | 0 || 1 |     
 
| 0 | 1 || 1 |     
 
| 0 | 1 || 1 |     

Wersja z 09:30, 3 wrz 2006

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 |    
-------------