Seminář 8 (Úkoly)

Úkol č.1

Třídy a metody ze semináře č. 2 rozšiřte o komentáře a vygenerujte dokumentaci.

Úkol č.2

Rozšiřte/upravte úkol č. 5 z předminulého semináře (RPN kalkulačku), tj. metodu rpnCalc(String expr, Map <String, Object> variables) o následující vlastnosti:

  • Metoda by měla umět vyhodnocovat výrazy s celými čísly (např. 1, 12, -123) i s čísly s plovoucí řádovou čárkou (např. 1.0, 2.23, 45.56, -78.123). Pokud dojde k sečtení (odečtení, atd.) dvou čísel, kde jedno je číslo s plovoucí řádovou čárkou, výsledkem je číslo s plovoucí řádovou čárkou.
    1.1 2 +    --> 3.1
    1 2 +      --> 3
    
  • Přidejte podporu pravdivostních hodnot reprezentovaných literály (#t, #f) a přidejte operátory <, > =, !=, <=, >=, porovnávající čísla a pravdivostní hodnoty. Pokud hodnoty nejde porovnat, skončí metoda vyjímkou.
    1.1 2 <    --> #t
    #f #t <    --> #t
    #f #t >    --> #f
    1 #f =     --> Exception -- Neporovnatelne hodnoty
    
  • Přidejte ternární operátor "?", který odebere z vrcholu zásobníku pravdivostní hodnotu a dvě další hodnoty. Pokud byla na vrcholu zásobníku hodnota #t, vrátí druhou odebranou hodnotu, jinak vrátí třetí. Pokud na vrcholu zásobníku nebude pravdivostní hodnota, skončí metoda vyjímkou.
  • 1 2 3 4 < ?    --> 2
    1 2 3 4 + ?    --> Exception -- 7 neni pravdivostni hodnota
    
  • Program napište tak, aby adekvátně ošetřil i další chybové stavy, např. dělení nulou, špatně zapsaný výraz, atd.
  • Program napište tak, aby nebyl realizován jako jedna metoda a byl řádně rozčleněn a dokumentován.

Vyřešené úkoly zašlete do 19.11.2014 17:00 CET na email petr.krajca (zavináč) upol.cz s předmětem ZP3JV. Zasílejte pouze zdrojové kódy. Pokud chcete zdrojové kódy poslat zkomprimované, použijte buď formát zip nebo kombinaci tar+gz.


Last update on 13. 11. 2014 11:14
Powered by Schemik.

© Petr Krajča, 2010, 2012
petr.krajca (at) upol.cz