Spis treści

Dziedziczenie

Składnia

class Bazowa
{
  // definicja klasy
}; 
 
class Pochodna: public Bazowa
{
  // definicja klasy
};

Ćwiczenie: Klasa pochodna Parabola

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.

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}$$

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) = 0.1x^2 - 100x + 0.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

Zadanie 6: Klasa pochodna Linia

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:

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