Dziedziczenie

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

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.