ZP3JV-08: upgrade rpnCalc
- blax65
- 30. 10. 2015
- Minut čtení: 1
Odkaz na cvičení: zde
Odkaz s řešenými zdrojovými kódy: zde
Ú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:
1 2 3 4 < ? --> 2 1 2 3 4 + ? --> Exception -- 7 neni pravdivostni hodnota
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.
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.
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.
Comments