Napisz klasę Set opisującą podzbiór liczb całkowitych.
Elementy zbioru powinny być przechowywane w dynamicznie alokowanej tablicy. Tablica jest realokowana w przypadku zmiany liczby elementów zbioru.
Zaimplementuj następujące metody klasy:
operator+=() - suma zbiorówoperator-=() - różnica zbiorówoperator*=() - przecięcie zbiorówoperator+() - suma zbiorówoperator-() - różnica zbiorówoperator*() - przecięcie zbiorówoperator<<() - wypisz elementy zbiorumain() sprawdzającą poprawność zaimplementowanych metodUwaga 1: Pamiętaj o usunięciu powtarzających się elementów ze zbiorów wynikowych.
Uwaga 2: Nie wolno używać klasy bibliotecznej std::set
Napisz klasę Complex implementującą liczbę zespoloną. Klasa
powinna zawierać dwa pola rzeczywiste odpowiadające części rzeczywistej i
urojonej liczby.
Zaimplementuj następujące funkcje składowe:
- Complex(double re, double im); // konstruktor
- Complex& operator+=(const Complex& c); // dodaj liczbę c do aktualnej liczby
- Complex& operator-=(const Complex& c); // odejmij liczbę c od aktualnej liczby
- Complex& operator*=(const Complex& c); // pomnóż liczbę c przez aktualną liczbę
- Complex& operator/=(const Complex& c); // podziel aktualną liczbę przez c
Wykorzystując powyższe operatory zdefiniuj następujące funkcje zewnętrzne:
- Complex operator+(const Complex& c1, const Complex& c2);
- Complex operator-(const Complex& c1, const Complex& c2);
- Complex operator*(const Complex& c1, const Complex& c2);
- Complex operator/(const Complex& c1, const Complex& c2);
- ostream& operator<<(ostream& os, const Complex& c);
Funkcja main() powinna testować działanie wszystkich
wymienionych wyżej funkcji.