Cześć mam dwa zadania, lecz nie rozumiem pewnych części ich treści, pomoże ktoś?
Zdania, których nie rozumiem zostały pogrubione.
Zadanie pierwsze:
Napisz klasę interval, której obiekty będą reprezentować przedziały skończone, (pół)nieskończone i puste na prostej rzeczywistej. Przedziały są domknięte w swoich skończonych końcach. Przedział może zawierać pojedynczy punkt.
Wyposaż ją w konstruktor akceptujący końce przedziału w dowolnej kolejności. Przekazanie do konstruktora dwóch wartości nan sygnalizuje przedział pusty.[nie rozumiem jak mogę coś podać coś typu NAN chodzi tu poprostu o coś co nie jest liczba?] Zastanów się nad niezmiennikiem obiektów tej klasy, upewnij się, że konstruktor po pomyślnym ukończeniu zostawia obiekt spełniający niezmiennik.[nie wiem co to niezmiennik w klasie]
Suma przedziałów, na użytek tego zadania, zdefiniowana jest jako najmniejszy przedział zawierający oba przedziały sumowane. Napisz operatory realizujące tak zdefiniowaną operację sumy.
Iloczyn przedziałów z kolei, jest zdefiniowany jako największy przedział zawarty w obu mnożonych przedziałach, czyli zwykły przekrój. Napisz operatory realizujące tak zdefiniowaną operację mnożenia.
Wyposaż klasę w akcesory pozwalające odczytać końce przedziału (w przypadku przedziału pustego oba są nan), oraz w operatory == oraz != odpowiadające na pytanie, czy dwa przedziały są dokładnie równe lub różne. Zwróć uwagę na to, że dwa przedziały puste są sobie równe. Napisz operator wypisania na strumień << wypisujący przedział w formacie [a;b] dla przedziału niepustego, i [] dla przedziału pustego. Operator wejścia nie jest wymagany. Napisz funkcję testującą wszystkie zaprogramowane usługi.
I drugie zadanie, tutaj ogólne pytanie
Napisz klasę intset , której obiekty będą reprezentować skończone zbiory złożone z liczb całkowitych typu int .
Wyposaż ją w konstruktor, który będzie akceptował ciągi unikalnych liczb, niekoniecznie uporządkowane, które będą należały do konstruowanego zbioru.
Napisz operator() , który wywołany z liczbą całkowitą zwróci w naturalny sposób informację, czy ta liczba jest w zbiorze, w metodę same , która odpowie, czy drugi przekazany jako argument obiekt klasy intset jest taki sam, w metodętostring zwracającą listę wartości należących do zbioru, rozdzielaną przecinkami (wartości nie muszą być uporządkowane), oraz w komplety operacji dodawania i mnożenia, które będą realizować, odpowiednio, sumę oraz przekrój zbiorów. Napisz operatory == oraz != odpowiadające na pytanie, czy dwa zbiory są równe lub różne. Napisz operator wypisania na strumień << wypisujący zbiór w takim samym formacie jak opisany przy metodzie tostring . Operator wejścia nie jest wymagany. Napisz funkcję testującą wszystkie zaprogramowane usługi. |
Najlepiej użyć to tego klasy z argumentem typu vector, prawda?