zadanie nr 9 termin realizacji: 27 kwiecień 2005

C++

dowolnie indeksowane tablice (przestrzenie nazw) studia wieczorowe

W przestrzeni nazw struktury zdefiniuj wzorzec klasy dla bezpiecznej tablicy. Powinna to być klasa opakowująca dynamicznie przydzielaną tablicę elementów określonego w parametrze szablonu typu. Jej elementy powinny być zainicjalizowane konstruktorem domyślnym, lub wartościami podanymi w tablicy wzorcowej (wskaźnik do pierwszego elementu). Zgodnie ze sztuką należy również zaprogramować konstruktor kopiujący, operator przypsania kopiującego i wirtualny destruktor.

Do elementów tablicy należy się odwoływać poprzez operator[], który powinien zwracać referncję do elementu. Tablica ma być indeksowana kolejnymi liczbami całkowitymi, ale niekoniecznie od 0 (zakres indeksów dla tablicy ma być podawany w konsrtuktorze). Dodatkowo napisz metody

pierwszyIndeks() ostatniIndeks() i dlugosc().

Bezpieczeństwo tablicy ma polegać na tym, że kiedy będziemy się odwoływali do elementu spoza dopuszczalnego zakresu, to będzie zgłaszany wyjątek BladZakresu, który będzie zawierał informację o indeksie powodującym sytuację wyjątkową.

Następnie (w przestrzeni nazw testy) napisz programy testujące twój szablon:

• W tablicy P[-256...255] zapisane są liczby zespolone. Znajdź elementy minimalny i maksymalny (względem modułu) w tej tablicy. Twój program powinien przemieścić element minimalny na początek tablicy a maksymalny na koniec.

• W tablicy T[1...24] zapisane są marki najpopularniejszych samochodów (obiekty typu string). Posortuj tą tablicę leksykograficznie.

Uniwersytet Wrocławski Paweł Rzechonek Instytut Informatyki ul. Przesmyckiego 20 PL-51-151 Wrocław