3. sada domácich zadaní

Najneskorší termín odovzdania: 18.10.2015 (nedeľa) o 21:00
Odovzdávaný súbor: ZadanaKorytnacka.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

Veterník pre Zuzanu (2 body)

Naučte korytnačky triedy ZadanaKorytnacka metódu veternik, ktorá nakreslí obrazec, ako je to na obrázku nižšie. Veterník sa skladá zo 4 pravouhlých trojuholníkov, ktorých odvesny majú rovnakú dĺžku. Metóda má len jeden parameter rozmer určujúci dĺžku odvesien týchto trojuholníkov. Korytnačka sa na začiatku aj konci metódy nachádza v strede veterníka a natočená je v smere odvesny jedného z trojuholníkov.

Trojuholníky tvoriace veterník sú vyfarbené postupne sa striedajúcimi čiernymi a červenými pásmi. Šírka prvého (čierneho) pásu je 1/3 výšky odvesny trojuholníka, šírka druhého (červeného) pásu a každého ďalšieho pásu je 2/3 šírky predošlého pásu. Pásy, resp. trojuholníky, ktoré nebude vidieť, nekreslite.

public void veternik(double rozmer) {

}

Rady:

  • Odporúčame si najprv vytvoriť pomocnú metódu pravouholnik, ktorá nakreslí vyplnený pravouhlý trojuholník s odvesnami rovnakej dĺžky. Dĺžka týchto odvesien je zadaná parametrom dlzkaOdvesny a ako farba výplne sa použije aktuálne nastavená farba výplne. Navyše korytnačka sa na začiatku a na konci nachádza vo vrchole trojuholníka, v ktorom nie je pravý uhol a je natočená v smere odvesny.
public void pravouholnik(double dlzkaOdvesny) {

}
  • S využitím metódy pravouholnik naprogramujte metódu ccPravouholnik, ktorá nakreslí pravouholník s farebnými pruhmi (jeden z trojuholníkov veterníka).
public void ccPravouholnik(double dlzkaOdvesny) {

}

Inverzný faktoriál (1+1 bod)

Naučte korytnačky triedy ZadanaKorytnacka metódu inverznyFaktorial, ktorá pre zadané nezáporné celé číslo n vráti najmenšie také celé číslo k, že n <= k!.

+1 bod za udeľuje podľa efektívnosti riešenia.

public int inverznyFaktorial(long n)

Parita na striedačku (2 body)

Naučte korytnačky triedy ZadanaKorytnacka metódu paritaNaStriedacku, ktorá vráti true práve vtedy, ak v zápise čísla cislo v desiatkovej sústave sa striedajú párne a nepárne cifry. Príklady čísel, pre ktoré má metóda vrátiť hodnotu true: 83616, 23, 123, 854, -9258, -470. Príklady čísel, pre ktoré má metóda vrátiť hodnotu false: 1111, 2348, 9013. Metóda má fungovať pre kladné i záporné čísla. V riešení nie je dovolené použiť operáciu, ktorá prevedie číslo na znakový reťazec. Poznámka: Pre jednociferné čísla vráti metóda true, keďže neobsahujú za sebou idúce cifry s rovnakou paritou.

public boolean paritaNaStriedacku(int cislo)

Poznámky k evaluácii 3. sady

"Odfajknutie" metódy v úlohe Veterník pre Zuzanu znamená, že sa podarilo zrealizovať všetky testy a po skončení metódy ostala korytnačka v požadovanom stave. Neznamená to, že korytnačka nakreslila to, čo mala.

Očakávané grafické výstupy evaluátora pre korektné riešenie (poloha, natočenie a veľkosť obrazcov sa môžu líšiť):

Veterník pre Zuzanu