Zaawansowane CPP/Ćwiczenia 8: Metaprogramowanie: 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|| | ||
Napisz szablon funkcji lub klasy wyliczający | |||
funkcję silnia: | funkcję silnia: | ||
<center><math>\displaystyle | <center><math>\displaystyle | ||
Linia 7: | Linia 7: | ||
</math></center> | </math></center> | ||
}} | }} | ||
<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/b/b1/Word_rozw.cpp word_rozw.cpp]. | |||
</div></div> | |||
{{cwiczenie|2|| | {{cwiczenie|2|| | ||
Zaimplementuj szablon <code><nowiki>Pow<N,M></nowiki></code> obliczający | |||
<math>\displaystyle N</math>. Np.: | |||
Pow<3,4>::val; | |||
powinno mieć wartość 81. | |||
}} | }} | ||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Wskazówka </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">Wskazówka </span><div class="mw-collapsible-content" style="display:none"> |
Wersja z 10:07, 21 wrz 2006
Ćwiczenie 1
Napisz szablon funkcji lub klasy wyliczający funkcję silnia:
Rozwiązanie
Ćwiczenie 2
Zaimplementuj szablon Pow<N,M>
obliczający
. Np.:
Pow<3,4>::val;
powinno mieć wartość 81.
Wskazówka
Ćwiczenie 3
Wymyśl i zaimplementuj jako metaprogram, szybszy algorytm funkcji pow(x)
.
Wskazówka
Ćwiczenie 4
Napisz szablon generujący, pierwsze wyrazów rozwinięcia funkcji :
Ćwiczenie 5
Napisz szablon generujący funkcję implementującą iloczyn skalarny dwu wektorów. Parametrem szablonu ma być dlugość mnożonych szablonów.
Ćwiczenie 6
Napisz szablon generujący funkcję implementujący iloczyn macierzy i wektora o elementach:
void matrix_v<N>(double *A,double *v,double *u)
powoduje obliczenie:
Tablica jest reprezentowana w pamięci zgodnie z konwencją , tzn. elementowi odpowiada .