top of page

ZP3JV-06: Set, freq, 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

1. Vytvořte množinu (Set) bodů (použijte třídu Point z minulých cvičení) a přesvědčte se, zda-li obsahuje duplicity. (Body zvolte tak, aby minimálně dva měly stejné souřadnice.)

2. Rozšiřte třídu Point z minulých cvičení tak, aby vhodně překryla metody Object.equals a Object.hashCode.

3. Vytvořte množinu bodů jako v kroce 1. a přesvědčte se, že neobsahuje duplicity.

Úkol č.2

Implementujte statickou metodu Map<String, Integer> freq(String s), která vrací četnost slov v daném textu, mezery, čísla a interpunkci ignorujte, tj. chápejte je jako oddělovače slov.

Úkol č.3

Implementujte statickou metodu Map<String, Integer> freqIgnoreCase(String s), která se chová stejně jako metoda freq, ale nerozlišuje velká a malá písmena.

Úkol č.4

Implementuje jednoduchou RPN kalkulačku. Implementujte ji jako metodu int rpnCalc(String expr), kde jako argument bude předaný výraz v postfixové notaci (např. "1 2 3 + +" nebo "1 32 + 42 * 5 + 66 -") a na výstupu bude hodnota výrazu. Kalkulačka by měla fungovat následovně. Výraz je rozložen na jednotlivé atomy a potom je procházen zleva doprava. Pokud je nejlevější prvek číslo, je jeho hodnota uložena na zásobník, je-li to operátor, jsou odebrány ze zásobníku dvě hodnoty a je provedena příslušná operace. Výsledná hodnota je uložena na zásobník. Pro jednoduchost uvažujme pouze celá čísla a binární operace +, -, *, /.

Úkol č.5

Rozšiřte předchozí úkol tak, aby metoda int rpnCalc(String expr, Map <String, Integer> variables) měla ještě jeden argument představující vazby proměnných. Pokud bude nalezen atom představující proměnnou, bude příslušná hodnota uložena na zásobník. Např. "1 foo +" přečte hodnotu "foo" z argumentu variables.

Komentáře


Featured Posts
Recent Posts
Archive
Search By Tags
Follow Us
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square

© 2015 by Milan Černý  Created with Wix.com

  • w-facebook
bottom of page