May 6, 2024, Monday, 126

Przykładowe zadania do Laboratorium 10

From MJanik

Jump to: navigation, search

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