Składnia
class Bazowa { // definicja klasy }; class Pochodna: public Bazowa { // definicja klasy };
1. Utwórz klasę pochodną klasy Wielomian o nazwie Parabola. Kod źródłowy klasy Wielomian znajdziesz w zakładce pliki lub w repozytorium GitHub.
Parabola jest szczególnym rodzajem wielomianu, którego stopień wynosi 2. Dla paraboli możemy zdefiniować specyficzne operacje jak, np. wyznaczenie miejsc zerowych, wyznaczenie punktu ekstremalnego, itp.
Parabola' będzie wymagała dostepu do prywatnych zasobów wielomianu, aby było to możliwe nalezy zmienić poziom dostępu dziedziczonych elementow z private do protected w klasie WielomianParabola dodaj chronione pole delta zawierające wartość rzeczywistą równą $$ \Delta = b^2 - 4ac$$
2. Dla klasy Parabola zaimplementuj następujące operacje (dostępne publicznie):
$$x_1 = \frac{-b - \sqrt{\Delta}}{2a} \qquad x_2 = \frac{-b + \sqrt{\Delta}}{2a}$$
ObliczWartosc, która dla danej w argumencie wartości rzeczywistej x zwróci wartość wielomianu $f(x)$.
4. Napisz program, który wykorzysta klasę Parabola do wyznaczenia i wypisania wartości miejsc zerowych $x_1$ i $x_2$, wartość ekstremum $x_e$ oraz wartości funkij w punktach $f(x_1)$, $f(x_2)$ oraz $f(x_e)$ dla dowolnej paraboli o współczynnikach $a$, $b$ i $c$ podanych przez użytkownika. Przetestuj działanie dla funkcji $f(x) = x^2 - 10^6x + 1$
Diagram klas UML
5 . Zaimplementuj klasę pochodną, dziedziczącą po klasie Parabola, która zastępuje implementację funkcji wyznaczającej pierwiastki i wykorzystuje do obliczeń wzory Viète’a:
6. Przetestuj działanie programu wyznaczającego miejsca zerowe funkcji kwadratowej wykorzystując klasę pochodną z punktu 5.
Diagram klas UML
Utwórz klasę pochodną klasy Wielomian o nazwie Linia reprezentującą wielomian stopnia pierwszego
$$y=ax+b$$
Zaimplementuj metody umożliwiające następujące operacje na obiektach klasy Linia:
PunktPrzeciecia(const Linia &l), która zwraca współrzędne przecięcia się z linią l daną w argumencie funkcji. Dwie linie $y=a_1x+b_1$ i $y=a_2x+b_2$ przecinaja się w punkcie $$x = -\frac{b_2-b_1}{a_2-a_1}$$
Napisz program, który wykorzysta klasę Linia oraz funkcję wyznaczającą punkt przecięcia linii prostych do rozwiązania układu równań postaci
$$
\left\{\begin{array}{l}
a_1 x + b_1 y = c_1 \\
a_2 x + b_2 y = c_2 \\
\end{array}\right.
$$
Dla wartości rzeczywistych $a_1, b_1, c_1, a_2, b_2, c_2$ podanych przez użytkownika program wypisuje wartość $x$ i $y$ stanowiące rozwiązanie powyższego układu równań. Zakładamy, że układ równań zawsze posiada rozwiązanie, tj. obie linie proste nie są równoległe i posiadają jeden punkt przecięcia.
Diagram klas UML
Przykład działania programu:
Podaj wspolczynniki a, b, c pierwszego rownania 2 8 4 Podaj wspolczynniki a, b, c drugiego rownania 1 1 2 Rozwiazaniem bedzie przeciecie linii prostych: f(x) = -0.25 x +0.50 f(x) = -1.00 x +2.00 Rozwiazanie x = 2 y = 0
Rozwiązanie w postaci plików nagłówkowych *.h i źródłowych *.cpp umieść w Moodle Zadanie 6: Klasa Linia