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 51: | Linia 51: | ||
---------</nowiki> | ---------</nowiki> | ||
}} | }} | ||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie</span><div class="mw-collapsible-content" style="display:none"> | <div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie</span><div class="mw-collapsible-content" style="display:none"> | ||
Implementujemy rekurencyjną definicję potęgi: | Implementujemy rekurencyjną definicję potęgi: | ||
Linia 97: | Linia 79: | ||
}; | }; | ||
Patrz plik [http://osilek.mimuw.edu.pl/images/9/9c/Pown.h | Patrz plik [http://osilek.mimuw.edu.pl/images/9/9c/Pown.h logic.h]. | ||
</div></div> | |||
{{cwiczenie|3|| | |||
Zaimplementuj szablon funkcji, który będzie przyjmował jako jeden z parametrów szablonu ilość zmiennych logicznych i będzie łączył działanie funkcji <tt>table1</tt>, <tt>table2</tt> i <tt>table3</tt>. Np.: | |||
table<2>(And); | |||
powinno być równoważne wywołaniu: | |||
table2(And); | |||
}} | |||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Podpowiedź</span><div class="mw-collapsible-content" style="display:none"> | |||
Wykorzystaj pomocniczy szablon klasy aby móc skorzystać ze specjalizacji częściowej. | |||
</div></div> | |||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie</span><div class="mw-collapsible-content" style="display:none"> | |||
Patrz plik [http://osilek.mimuw.edu.pl/images/4/4e/Table.h table.h]. | |||
</div></div> | </div></div> |
Wersja z 12:55, 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.
Rozwiązanie
Ćwiczenie 2
{{{3}}}
Rozwiązanie
Ćwiczenie 3
Zaimplementuj szablon funkcji, który będzie przyjmował jako jeden z parametrów szablonu ilość zmiennych logicznych i będzie łączył działanie funkcji table1, table2 i table3. Np.:
table<2>(And);
powinno być równoważne wywołaniu:
table2(And);
Podpowiedź
Rozwiązanie