6. sada domácich zadaní

Najneskorší termín odovzdania: 27.11.2011 (nedeľa) o 21:00
Odovzdávané súbory: ZadanaKorytnacka.java

Doplňujúce požiadavky:

  • riešenia, ktoré nebude možné skompilovať (t.j. riešenia so syntaktickými chybami) nebudú hodnotené,
  • zdrojový kód správne naformátujte (CTRL+SHIFT+F),
  • očakáva sa vhodne okomentovaný zdrojový kód
  • nepoužívajte žiadne inštančné premenné (na riešenie úloh nie sú potrebné)
  • v prípade potreby si vytvorte pomocné metódy

Najväčší súbor (2 body)

Do triedy ZadanaKorytnacka pridajte metódu najvacsiSubor, ktorá vráti názov (len názov, nie úplnú cestu!) najväčšieho súboru v zadanom adresári (parameter cestaKAdresaru). Ak v adresári žiaden súbor nie je, metóda nech vráti null. Ak je v adresári viacero súborov s najväčšou veľkosťou, metóda nech vráti názov ktoréhokoľvek z nich.

public String najvacsiSubor(String cestaKAdresaru)

Väznica (5 bodov)

Systém na vzdialené ovládanie dverí ciel vo väznici zaznamenáva všetky udalosti, ktoré sa v systéme udiali. Denný log operácií obsahuje každú udalosť zapísanú v jednom riadku logovacieho súboru. Tento riadok sa skladá z troch medzerami oddelených častí:

  • čas, kedy sa udalosť zaznamenala,
  • typ operácie: OPEN, ak došlo k požiadavke na otvorenie ciel, alebo CLOSE, ak došlo k požiadavke na uzamknutie ciel,
  • medzerami oddelený zoznam ciel, na ktoré sa operácia aplikovala; kód cely je číslo od 1 po 1000.

Príklady záznamov:

10:04:12 OPEN 3 8 10 12
O 10:04:12 prišla požiadavka na otvorenie ciel 3, 8, 10 a 12.
11:03:15 CLOSE 3 8 6
O 11:03:15 prišla požiadavka na uzamknutie ciel 3, 8 a 6.

Záznamy sú v logovacom súbore uložené usporiadané podľa času, kedy nastali. Ak príde požiadavka na otvorenie už otvorenej cely, cela ostane otvorená. Ak príde požiadavka na uzamknutie uzamknutej cely, cela ostane uzamknutá. Na začiatku dňa sú všetky cely uzamknuté.

Do triedy ZadanaKorytnacka pridajte metódu pocetOtvorenychCiel, ktorá vráti počet ciel otvorených na konci dňa. Metóda má jeden parameter logovaciSubor, ktorý obsahuje cestu a názov logovacieho súboru. V prípade, že sa logovací súbor nepodarí prečítať (napr. neexistuje), metóda nech vráti hodnotu -1.

public int pocetOtvorenychCiel(String logovaciSubor)

Pomôcka pre matematikov (5 bodov)

Do triedy ZadanaKorytnacka pridajte metódu spocitajUlohu, ktorá vyráta jednoduché matematické úlohy v zadanom textovom súbore. V každom riadku je jedno zadanie typu: číslo operácia číslo. Všetky čísla sú kladné celé čísla, operáciou je jedno zo znamienok +, -, *.

Príklad vstupu:

17*10
5-2
100+234
32*56

Príklad výstupu:

17*10=170
5-2=3
100+234=334
32*56=1792

Metóda spocitajUlohu má 2 parametre: názov vstupného súboru vstupnySubor a názov výstupného súboru vystupnySubor.

public void spocitajUlohu(String vstupnySubor, String vystupnySubor)

Poznámka k evaluátoru

Textové súbory vytvorené evaluátorom úloh majú konce riadkov kódované spôsobom, aký sa používa v Linuxe alebo MacOS. Niektoré textové editory v MS Windows (napr. Notepad/Poznámkový blok) nevedia takéto súbory korektne zobraziť. Pre ich korektné zobrazenie v MS Windows odporúčame výborný textový editor PSPad.