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.

$$ f(x) = ax^2 + bx + c $$

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

3. 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 funkcji 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

4. Zaimplementuj klasę pochodną, dziedziczącą po klasie Parabola, która zastępuje implementację funkcji Pierwiastki i wyznacza miejsca zerowe wzorami Viète’a:

5. Przetestuj działanie programu wyznaczającego miejsca zerowe funkcji kwadratowej wykorzystując klasę pochodną z punktu 4.

Diagram klas UML

Zadanie 6: Klasa pochodna Linia

Utwórz klasę pochodną klasy Wielomian o nazwie Linia reprezentującą wielomian stopnia pierwszego (linię prostą) o postaci $$y=ax+b$$

Zaimplementuj metody umożliwiające następujące operacje na obiektach klasy Linia:

$$Ax + By = C \qquad \text{czyli} \qquad y = -\frac{A}{B}x + \frac{C}{B}$$

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ń. Możesz założyć, ż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