Zaawansowane CPP/Ćwiczenia 9: Szablony wyrażeń: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
{{cwiczenie|1|| | {{cwiczenie|1|| | ||
Zaimplementuj | Zaimplementuj szablony funkcji <tt>table1</tt>, <tt>table2</tt> i <tt>table3</tt>, generujące tabele | ||
prawdy. | prawdy dla jednej, dwu lub trzech zmiennych logicznych. Argumentem tych funkcji ma być funkcja przyjmująca, w zależności od funkcji, od 1 do 3 argumentów typu <tt>bool</tt>, np.: | ||
<nowiki> bool | <nowiki> bool And(bool q,bool r) {return q && r;} | ||
table2(And2) ;</nowiki> | |||
powinno wygenerować : | powinno wygenerować : | ||
Linia 18: | Linia 15: | ||
| 1 | 1 || 1 | | | 1 | 1 || 1 | | ||
-------------</nowiki> | -------------</nowiki> | ||
Podobnie dla <tt>table1</tt> i <tt>table3</tt>. | |||
}} | }} | ||
{{cwiczenie|2|| | {{cwiczenie|2|| | ||
Napisz szablony wyrażeń które będzie można użyć | Napisz szablony wyrażeń, które będzie można użyć | ||
z | z powyższymi szablonami. Zaimplementuj trzy klasy <tt>First</tt>, <tt>Second</tt> i <tt>Third</tt>, oznaczające odpowiednio pierweszy, drugi i trzeci argument funkcji logicznej. 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ść). Np.: | |||
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ść). | |||
First q; | |||
Second r; | |||
table2(q >> r); | |||
powinno wygenerować: | |||
<nowiki>------------- | <nowiki>------------- | ||
Linia 42: | Linia 37: | ||
| 1 | 1 || 1 | | | 1 | 1 || 1 | | ||
-------------</nowiki> | -------------</nowiki> | ||
a | |||
table1(True == q); | |||
powinno wygenerować: | |||
<nowiki>--------- | |||
| 0 | 0 | | |||
| 1 | 1 | | |||
---------</nowiki> | |||
}} | }} |
Wersja z 12:17, 21 wrz 2006
Ćwiczenie 1
Zaimplementuj szablony funkcji table1, table2 i table3, generujące tabele prawdy dla jednej, dwu lub trzech zmiennych logicznych. Argumentem tych funkcji ma być funkcja przyjmująca, w zależności od funkcji, od 1 do 3 argumentów typu bool, np.:
bool And(bool q,bool r) {return q && r;} table2(And2) ;
powinno wygenerować :
------------- | 0 | 0 || 0 | | 0 | 1 || 0 | | 1 | 0 || 0 | | 1 | 1 || 1 | -------------
Podobnie dla table1 i table3.
Ćwiczenie 2
{{{3}}}