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 Wielomian
Parabola
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