Zadanie 3
Najneskorší termín odovzdania: 16.10.2022 (nedeľa) o 18:00
Odovzdávaný súbor: HomeTurtle.java
Cieľom tejto sady domácich zadaní je vytvoriť triedu HomeTurtle, 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),
- zdrojový kód musí byť vhodne komentovaný.
Vpísaný obrazec (1 bod)
Naučte korytnačky triedy HomeTurtle metódu squardot, 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 size. 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.
1
2
3 public void squardot(double size) {
}
Divergencia (2 body)
Nech A(n) = 1/n, ak n > 0 je párne, a A(n) = (n-1)/n, ak n > 0 je nepárne. O nekonečnom číselnom rade A(1) + A(2) + A(3) + ... + A(n) + ... je známe, že diverguje (ak neviete, čo to znamená, dozviete sa na nejakej matematike). Naučte korytnačky triedy HomeTurtle metódu, ktorá pre zadané kladné reálne číslo c vráti najmenšie také číslo n, že A(1) + A(2) + ... + A(n) >= c.
1 public int divergence(double c)
Rovnaké cifry (2 bod)
Naučte korytnačky triedy HomeTurtle metódu isUniDigitNumber, ktorá vráti true práve vtedy, ak v zápise čísla n v desiatkovej sústave sú všetky cifry rovnaké. Príklady čísel, pre ktoré má metóda vrátiť hodnotu true: 3333, 11, 99999, 2, -777, 88. 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.
1 public boolean isUniDigitNumber(int n)
Hammingova vzdialenosť (3 body)
Hammingovou vzdialenosťou dvoch celých nezáporných čísel nazveme počet cifier v desiatkovej sústave, v ktorých sa tieto čísla líšia. Napríklad čísla 1323 a 2325 sa líšia na 2 miestach (prvá a posledná cifra) a teda ich Hammingova vzdialenosť je 2. Čísla 87 a 3481 majú Hammingovu vzdialenosť 3 (87 = 0087, 3481 – na 3 pozíciach máme rôzne cifry).
Naučte korytnačky triedy HomeTurtle metódu countHammingDistance, ktorá vráti Hammingovu vzdialenosť 2 zadaných nezáporných čísel. V riešení nie je dovolené použiť operáciu, ktorá prevedie číslo na znakový reťazec.
1 public int countHammingDistance(int number1, int number2)

