Dziedziczenie
Klasa Wielomian
1. Utwórz klasę pochodną klasy Wielomian o nazwie Linia.
Zadeklaruj i zdefiniuj konstruktor:
- kopiujący
- domyślny (inicjuje linię y=0)
- posiadający 2 argumenty rzeczywiste definiujące linię na płaszczyźnie y=ax+b
- posiadający argumenty określające dwa punkty na płaszczyźnie. Linia przechodzi przez oba punkty.
Zaimplementuj metody:
Punkt PunktPrzeciecia(const Linia &l) const; double MiejsceZerowe(); Linia Prostopadla(double x); // linia prostopadła przecinająca linie *this w punkcie x Linia Prostopadla(Punkt x); // linia prostopadla przechodzaca przez punkt x
Powyżej używany jest typ Punkt (obiekt tego typu określa punkt na płaszczyźnie). Jak powinna wyglądać definicja tego typu?
2. Utwórz klasę pochodną klasy Wielomian o nazwie Parabola.
Zaimplementuj konstruktor:
- kopiujący
- inicjujący parabolę trzema wartościami a,b i c, które definiują parabolę y=ax^2+bx+c. Ustaw wartości domyślne argumentów a,b,c=0.
Zaimplementuj metodę:
- zwracającą położenie ekstremalnej wartości (minimum lub maksimum funkcji)
- zwracającą ilość pierwiastków (miejsc zerowych) oraz ich wartości
3. Napisz program testujący działanie zaimplementowanych metod.
Przykładowy diagram klas UML
Figury
Zaimplementuj klasy Figura, Kolo, Kwadrat i Trojkat oraz odpowiednie metody zgodnie z podanym diagramem (kliknij w obrazek aby powiększyć):
Konstruktory domyślne inicjują wartości boków figur (promienia) zerami zaś zmienna nazwa jest inicjowana łańcuchami znaków, odpowiednio: „Figura”, „Kwadrat”, „Kolo” i „Trojkat”.
Metody Obwod() i Pole() dla obiektu klasy Figura niech zwracają wartość 0.
Dociąż operator « dla obiektu klasy Figura oraz strumienia wyjściowego ostream (uczyń tą funkcję przyjacielem klasy Figura), tak aby wywołanie postaci:
Kwadrat k(3); cout << k << endl; Trojkat t(3,4,5); cout << t << endl;
generowało nastepujący komunikat:
Kwadrat o polu 9 i obwodzie 12. Trojkat o polu 6 i obwodzie 12.