From MJanik
(Difference between revisions)
|
|
(2 intermediate revisions not shown) |
Line 1: |
Line 1: |
- | Przed zajęciami należy powtórzyć klasy szablonowe [http://www.if.pw.edu.pl/~gos/PO/wyklad10-2012.pdf Wykład 10] oraz podstawowe struktury danych z STL (list, queue, vector, stack). | + | Przed zajęciami należy powtórzyć klasy szablonowe [http://www.if.pw.edu.pl/~majanik/data/JP/2013/Klasy_Szablonowe.pdf Instrukcja] oraz podstawowe struktury danych z STL (list, queue, vector, stack). |
| + | |
| + | Przykładowe zadanie z wykorzystaniem szablonów: |
| + | |
| + | '''Napisać klasę Tablica''', przechowującą zbiór elementów o zadanym typie (klasa szablonowa) w jednowymiarowej tablicy. |
| + | |
| + | Zaimplementować klasę szablonową Tablica,przechowującą podstawowe informacje o tablicy: |
| + | - liczbę całkowitą n (ilość elementów) |
| + | - tab – tablica jednowymiarowa przechowująca elementy |
| + | Tablica powinna być alokowana dynamicznie podczas tworzenia obiektu klasy. |
| + | |
| + | Wszystkie pola powinny być prywatne. |
| + | |
| + | Powinna zawierać konstruktor bezparametrowy (tworzy tablicę na 3 elementy) oraz z jednym parametrem. Ponadto konstruktor przyjmujący obiekt Tablica (kopiujący odpowiednie wartości pól składowych), a także destruktor (jeśli potrzebny). Klasa zawiera także deklarację metod: |
| + | Print() - wypisującą tablicę |
| + | Write() - zapisującą tablicę do pliku "tab.txt" |
| + | Sort() - sortuje tablice |
| + | |
| + | W programie głównym należy stworzyć dwie tablice: znaków (char): 'a', 'h', 'b', 'r' oraz liczb całkowitych (int): 5 3 2 6. Należy wypisać obie te tablice na ekran, następnie posortować i zapisać do pliku. |
| + | |
| + | |
| + | Przykładowe zadanie: '''Należy napisać klasę szablonową implementującą strukturę ''list''.''' |
| + | |
| + | Klasa powinna umożliwiać: |
| + | - dodawanie elementu do listy |
| + | - wypisywanie listy |
| + | - usuwanie elementu z listy |
| + | |
| + | Następnie w programie głównym należy stworzyć dwie listy: list1 (będącą listą zmiennych typu int), oraz list2 (będącą listą zmiennych typu char). |
| + | |
| + | Do listy1 należy dodać liczby 4, 6, 7, wypisać, oraz usunąć 4, wypisać ponownie. |
| + | |
| + | Do listy2 należy dodać znaki 'h', 'u', 'j', wypisać, usunąć 'j' oraz wypisać ponownie. |
| + | |
| + | |
| + | Następnie należy użyć truktury list z biblioteki STL i wykonać ponownie te same operacje co dla listy1. |
| + | |
| + | Uwaga! Używamy do tego celu iteratora: |
| + | |
| + | list<int>::iterator it; |
| + | for ( it=mylist.begin() ; it != mylist.end(); it++ ) |
| + | cout << " " << *it; |
| + | |
| + | Polecam dokumentację C++ Reference (google). |
Latest revision as of 12:44, 14 January 2014
Przed zajęciami należy powtórzyć klasy szablonowe Instrukcja oraz podstawowe struktury danych z STL (list, queue, vector, stack).
Przykładowe zadanie z wykorzystaniem szablonów:
Napisać klasę Tablica, przechowującą zbiór elementów o zadanym typie (klasa szablonowa) w jednowymiarowej tablicy.
Zaimplementować klasę szablonową Tablica,przechowującą podstawowe informacje o tablicy:
- liczbę całkowitą n (ilość elementów)
- tab – tablica jednowymiarowa przechowująca elementy
Tablica powinna być alokowana dynamicznie podczas tworzenia obiektu klasy.
Wszystkie pola powinny być prywatne.
Powinna zawierać konstruktor bezparametrowy (tworzy tablicę na 3 elementy) oraz z jednym parametrem. Ponadto konstruktor przyjmujący obiekt Tablica (kopiujący odpowiednie wartości pól składowych), a także destruktor (jeśli potrzebny). Klasa zawiera także deklarację metod:
Print() - wypisującą tablicę
Write() - zapisującą tablicę do pliku "tab.txt"
Sort() - sortuje tablice
W programie głównym należy stworzyć dwie tablice: znaków (char): 'a', 'h', 'b', 'r' oraz liczb całkowitych (int): 5 3 2 6. Należy wypisać obie te tablice na ekran, następnie posortować i zapisać do pliku.
Przykładowe zadanie: Należy napisać klasę szablonową implementującą strukturę list.
Klasa powinna umożliwiać:
- dodawanie elementu do listy
- wypisywanie listy
- usuwanie elementu z listy
Następnie w programie głównym należy stworzyć dwie listy: list1 (będącą listą zmiennych typu int), oraz list2 (będącą listą zmiennych typu char).
Do listy1 należy dodać liczby 4, 6, 7, wypisać, oraz usunąć 4, wypisać ponownie.
Do listy2 należy dodać znaki 'h', 'u', 'j', wypisać, usunąć 'j' oraz wypisać ponownie.
Następnie należy użyć truktury list z biblioteki STL i wykonać ponownie te same operacje co dla listy1.
Uwaga! Używamy do tego celu iteratora:
list<int>::iterator it;
for ( it=mylist.begin() ; it != mylist.end(); it++ )
cout << " " << *it;
Polecam dokumentację C++ Reference (google).