3. sada domácich zadaní

Najneskorší termín odovzdania: 14.10.2013 (pondelok) 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

Vpísaný obrazec (1 bod)

Naučte korytnačky triedy ZadanaKorytnacka metódu obrazec, ktorá nakreslí "nekonečnú" postupnosť postupne sa striedajúcich vnorených štvorcov a kruhov podľa obrázka nižšie ("nekonečnú" znamená, že štvorce, resp. kruhy so šírkou menšou ako 1 pixel nekreslíme). V postupnosti sa striedajú svetlosivé kruhy a sivé štvorce, ktorých stred je aktuálna pozícia korytnačky. Prvým útvarom postupnosti je kruh s priemerom určeným parametrom sirka. Každý ďalší útvar vznikne vpísaním do predošlého útvaru (buď do kruhu vpíšeme štvorec alebo do štvorca kruh). Štvorce sú v smere aktuálneho natočenia korytnačky.

public void obrazec(double sirka) {

}

Euklidov algoritmus (1 bod)

Naučte korytnačky triedy ZadanaKorytnacka metódu gcd, ktorá vráti najväčšieho spoločného deliteľa dvoch kladných celých čísel podľa opisu iteratívnej verzie Euklidovho algoritmu: http://sk.wikipedia.org/wiki/Euklidov_algoritmus

public int gcd(int u, int v)

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)

Sínus a Taylorov rad (1+1 bod)

Z matematickej analýzy vieme (alebo budeme vedieť), že hodnotu funkcie vieme vyjadriť ako súčet členov nekonečného Taylorovho (mocninového) radu. Naučte korytnačky triedy ZadanaKorytnacka metódu sin, ktorá vráti sin(x) ako súčet prvých n+1 členov Taylorovho radu:

public double sin(double x, int n)

+1 bod: Pokúste sa implementovať výpočet čo najefektívnejšie, t.j. snažte sa eliminovať zbytočné matematické operácie.