Najneskorší termín odovzdania: 18.10.2020 (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:
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.
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
.
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.
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.