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.

Metody Pole() i Obwod() nie muszą (a nawet nie powinny) być definiowane dla klasy Figura. Uczyń je czysto wirtualnymi.