Table of Contents
Pro vyřešení této úlohy je třeba
Rozumět principům objektového programování v jazyce Java.
Umět pracovat s rozhraními (klíčové slovo
interface
).
V této úloze bude Vaším úkolem imlementovat tři třídy, které budou
reprezentovat unární funkce (tj. funkce s jedním pametrem). Všechny tři
třídy budou implementovat rozhraní UnaryFunction
,
které obsahuje tři metody. Metoda
isDefinedFor(double x)
vrací true, pokud je daná funkce
pro danou hodnotu parametru definována. Metoda
getValue(double x)
vrací hodnotu funkce pro
danou hodnotu parametru x. Metoda
toString()
vrací řetězec popisující funkci.
První třída se bude jmenovat SquareRootFunction
a
bude reprezentovat funkci "odmocnina z x". Bude mít bezparametrický konstruktor
a metoda toString() bude vracet řetězec "sqrt(x)".
Druhá třída se bude jmenovat SinusFunction
a
bude reprezentovat funkci "a * sin(b * x)". Bude mít konstruktor s
parametry "a" a "b" a metoda toString() bude vracet řetězec
"<a> * sin(<b> * x)".
Třetí třída se bude jmenovat PolynomialFunction
a
bude reprezentovat polynom třetího stupně, tj
"a0 + (a1 * x) + (a2 * x*x) + (a3 * x*x*x)". Bude mít čtyři konstruktory,
první s parametry a0, a1, a2 a a3, druhý s parametry a0, a1 a a2,
třetí s parametry a0 a a1 a čtvrtý s parametrem a0.
Metoda toString() bude vracet řetězec
"<a0> + (<a1> * x) + (<a2> * x^2) + (<a3> * x^3)".
Pozor, pokud některý z koeficientů ax hodnotu nula, příslušný člen polynomu
ve vráceném řetězci nebude.
Až budete mít všechny tři třídy implementované, můžete využít třídu
cz.muni.fi.pb162.functions.gui.UnaryFunctionFrame
, která
vám zobrazí průběh těchto funkcí.
Metody pro výpočty hodnot funkcí sinus a odmocnina naleznete ve tříde
java.lang.Math
Před odevzdáním úlohy si zkontrolujte:
Zda jde úloha přeložit a zda jdou přeložit i všechny testy.
Zdali všechny testy projdou bez chyby.
Zda jste nezapomněli správně vyplnit hlavičky všech tříd ve formátu JavaDoc (popis třídy, autor, popis všech metod, apod.)