Repetytorium - Ćwiczenia 6


Poprzednie Następne
Temat: Algorytmy przeszukiwania tablic.

Podczas zajęć należy wykonać jedno zadanie, które będzie realizowało określone funkcje w sposób ustalony podczas ćwiczeń. Projekt stworzony podczas zajęć jest obowiązujący dla wszystkich, a na jego wpływ można mieć jedynie podczas zajęć.

Specyfikacja:

Należy zainmplementować tablicę w taki sposób, aby dało się na niej wykonać następujące operacje:
  1. Sczytywanie tablicy z pliku. Dane w formacie: liczba naturalna n (liczba elementów w tablicy, 0 < n < 10000), a następnie n liczb z przedziału od 0 do 10000.
  2. Sczytywanie tablicy z klawiatury. Dane w formacie: liczba naturalna n (liczba elementów w tablicy, 0 < n < 10000), a następnie n liczb z przedziału od 0 do 10000.
  3. Wyszukiwanie najmniejszego elementu w tablicy.
  4. Wyszukiwanie największego elementu w tablicy.
  5. Wyszukiwanie indeksu najmniejszego elementu w tablicy.
  6. Wyszukiwanie indeksu największego elementu w tablicy.
  7. Sortowanie tablicy przez wybieranie/wstawianie (elementu najmniejszego).
  8. Stwierdzenie, w którym miejscu znajduje się pierwsze wystąpienie ustalonego elementu.
  9. Zliczanie elementów w tablicy

Projekt:

W ramach projektu stworzone zostaną 4 klasy:
  1. Tablica - odpowiedzialna za przechowywanie tablicy oraz wykonywanie operacji z punktów 3-9.
  2. iLoaderTablica - interfejs, lub klasa abstrakcyjna do tworzenia tablicy.
  3. PlikLoaderTablica - klasa dziedzicząca z iLoaderTablica, która jest odpowiedzialna za tworzenie tablicy z pliku (pkt 1).
  4. KlawLoaderTablica - klasa dziedzicząca z iLoaderTablica, która jest odpowiedzialna za tworzenie tablicy z danych z klawiatury (pkt 2).
W klasie Tablica mają znaleźć się następujące atrybuty: W klasie tablica mają znaleźć się następujące metody: W klasie abstrakcyjnej iLoaderTablica mają znaleźć się następujące metody: W klasie PlikLoaderTablica mają znaleźć się następujące metody: W klasie KlawLoaderTablica mają znaleźć się następujące metody:

Zadanie

Zaimplementuj opisany powyżej projekt oraz metody.