Projekt 1 * Klasa ZbiórPunktówNaPłaszczyźnie. Punkt opisany za pomocą współrzędnych. Dodawanie, odejmowanie i przecięcie zbiorów (przeciążyć odpowiednie operatory). Wykorzystać klasę pomocniczą Punkt. Implementacja klasy, która powinna udostępniać co najmniej konstruktor, destruktor, konstruktor kopiujący, operator przypisania (=). Interfejs klasy powinien być możliwie czytelny i oddzielony od implementacji (dla większej czytelności należy umieścić interfejs i implementację w różnych plikach, oraz przygotowa odpowiedni plik Makefile) zaś klasa powinna w sposób przemyślany ukrywać swoje składowe. Dla każdej klasy należy umżliwić drukowanie jej zawartości (przeciążyć operator przekierowania strumienia). Dodatkowo należy przygotować krótki program pokazujący możliwości klasy. * Klasa Rysunek opisana przez N na N piksel. Każdy piksel opisany przez kolor z palety RGB. Suma i różnica rysunków o tym samym wymiarze (przeciążyć odpowiednie operatory). Wykorzystać klasy pomocnicze Piksel i Kolor. Implementacja klasy, która powinna udostępniać co najmniej konstruktor, destruktor, konstruktor kopiujący, operator przypisania (=). Interfejs klasy powinien być możliwie czytelny i oddzielony od implementacji (dla większej czytelności należy umieścić interfejs i implementację w różnych plikach, oraz przygotowa odpowiedni plik Makefile) zaś klasa powinna w sposób przemyślany ukrywać swoje składowe. Dla każdej klasy należy umżliwić drukowanie jej zawartości (przeciążyć operator przekierowania strumienia). Dodatkowo należy przygotować krótki program pokazujący możliwości klasy. * Klasa Zdanie. Dodawanie i usuwanie słów (przeciążyć operatory += i -=). Porównywanie zdań (operatory != i ==). Sprawdzanie czy słowo należy do zdania. Wykorzystać klasę pomocniczą słowo. Implementacja klasy, która powinna udostępniać co najmniej konstruktor, destruktor, konstruktor kopiujący, operator przypisania (=). Interfejs klasy powinien być możliwie czytelny i oddzielony od implementacji (dla większej czytelności należy umieścić interfejs i implementację w różnych plikach, oraz przygotowa odpowiedni plik Makefile) zaś klasa powinna w sposób przemyślany ukrywać swoje składowe. Dla każdej klasy należy umżliwić drukowanie jej zawartości (przeciążyć operator przekierowania strumienia). Dodatkowo należy przygotować krótki program pokazujący możliwości klasy. Projekt 2 * Klasyfikacja za pomocą Naiwnego Klasyfikatora Bayesowskiego. Atrybuty nominalne. Walidacja zbiorem testowym. Dane wejściowe - plik w formacie ARFF. * Grupowanie danych za pomocą algorytmów k-means i k-medoids. Dane wejściowe - plik w formacie ARFF. * Mini-SQL dla plików w formacie ARFF. Do zaimplementowania proste zapytania (jak dla odwołań do pojedynczej tabeli) typu: SELECT *; SELECT kolumna; SELECT avg(kolumna); SELECT DISTINCT kolumna; SELECT kolumna WHERE warunek itp.