4. sada domácich zadaní

Najneskorší termín odovzdania: 1.11.2011 (utorok) o 21:00
Odovzdávané súbory: ZadanaKorytnacka.java, KlikaciaPlocha.java

Cieľom tejto sady domácich zadaní je vytvoriť triedu ZadanaKorytnacka, ktorá rozširuje triedu Turtle a ktorá obsahuje nižšie predpísané metódy.

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
  • pri riešení používajte len poznatky, ktoré boli súčasťou 4. prednášky a na ňu nadväzujúcich cvičení.

E-mailové adresy na UPJŠ (2 body)

Naučte korytnačky triedy ZadanaKorytnacka metódu emailovaAdresa, ktoré pre zadané meno a priezvisko zamestnanca UPJŠ vráti jeho e-mailovú adresu. E-mailová adresa zamestnanca UPJŠ má formát meno.priezvisko@upjs.sk, kde meno a priezvisko sú napísané malými písmenami. Meno a priezvisko osoby sa nachádzajú v parametri osoba a sú oddelené jednou medzerou.
Príklad:

  • emailovaAdresa("Janko HRASKO") = "janko.hrasko@upjs.sk"
  • emailovaAdresa("Peter Chemik") = "peter.chemik@upjs.sk"
  • emailovaAdresa("ALBERT MATEMATIK") = "albert.matematik@upjs.sk"
public String emailovaAdresa(String osoba)

RLE dekóder (3 body)

Naučte korytnačky triedy ZadanaKorytnacka metódu rleDekoder, ktorá dekóduje zadaný reťazec. Kódovanie, ktoré je použité, je variant jednoduchého RLE kódovania (http://cs.wikipedia.org/wiki/Run-length_encoding). V ňom je opakovaný výskyt znaku zakódovaný ako dvojica znakov (cifra, znak), kde cifra môže byť 1, 2, 3,...,9 a vyjadruje počet opakovaní znaku znak. Teda, napríklad dvojica znakov 5a kóduje reťazec aaaaa. Keďže znaky cifier 1, 2,..., 9 sú použité na vyjadrenie počtu opakovaní, samostatné (bez opakovania) výskyty cifier 1, .., 9 musia byť kódované ako dvojica znakov (1, cifra) - teda ako jedno opakovanie znaku cifry. Čiže napríklad dvojica znakov 17 kóduje len jeden znak 7.
Príklad:

  • rleDekoder("ab4at2d32er18ad") = "abaaaatdd222er8ad"
  • rleDekoder("ua4e11d32") = "uaeeee1d222"
public String rleDekoder(String retazec)

RLE kódovač (5 bodov)

Naučte korytnačky triedy ZadanaKorytnacka metódu rleEnkoder, ktorá zakóduje zadaný reťazec kódovaním, ktoré je popísané v úlohe RLE dekóder tak, aby vrátený (zakódovaný) reťazec mal čo najmenšiu dĺžku.

public String rleEnkoder(String retazec)

Štvorčeky (2 body)

Naprogramujte triedu KlikaciaPlocha rozšírujúcu triedu WinPane, ktorá sa bude pracovať tak, že kliknutím do plochy sa v ploche nakreslí vyplnený štvorec so stredom v mieste kliknutia. Dĺžka strany prvého štvorca bude 10, každý ďalší štvorec bude mať dĺžku strany o 10% väčšiu ako predchádzajúci. Farby štvorcov sa budú postupne striedať: červená, zelená, modrá, červená, zelená, modrá, ...