Úloha číslo 3

Rozhraní

Petr Adámek

Abstract

Cílem této úlohy je naučit se používat rozhraní.


Table of Contents

Co je potřeba znát
Zadání
Odevzdání úlohy
Pokyny pro opravování

Co je potřeba znát

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).

Zadání

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

.

Odevzdání úlohy

Před odevzdáním úlohy si zkontrolujte:

  1. Zda jde úloha přeložit a zda jdou přeložit i všechny testy.

  2. Zdali všechny testy projdou bez chyby.

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

Pokyny pro opravování

  • Prověřte, že studenti do hlaviček tříd správně doplnili své jméno a popis třídy.

  • Prověřte, že studenti neporušují princip zapouzdření.