<< Opakovanie skupiny príkazov (pevný počet opakovaní) | Obsah | Premenné >>
V predchádzajúcej kapitole sme sa dozvedeli ako zapísať to, že nejaká skupina príkazov sa má zopakovať zadaný počet krát. Toto vieme použiť na kreslenie štvorca, 12-cípej hviezdy (alebo vločky?), pravidelného 6-uholníka alebo iného pravidelného útvaru. Čo ale v prípade, keď potrebujeme nakresliť všeobecnejšie definovaný obrazec ako je napríklad n
-cípa hviezda (vločka) alebo pravidelný n
-uholník, kde n
nie je vopred dané, ale je určené ako parameter metódy?
Zamyslime sa najprv, ako by mala vyzerať hlavička metódy (riadok hovoriaci o názve metód a jej parametroch). Doposiaľ sme sa stretli iba sa parametrami typu double
- povolená hodnota bola číslo s desatinnou čiarkou ("reálne číslo"). Tento typ "povolenej" hodnoty pre parameter n
nie je veľmi vhodný. Ako by totiž mala vyzerať 5.5
-cípa hviezda alebo pravidelný 6.35
-uholník? Ak chceme obmedziť hodnotu parametra na celé čísla, namiesto typu double
použijeme typ int
, ktorý dovoľuje len celé čísla. Iste tušíte, že aj tu je jeden menší problém. Keďže aj záporné čísla sú celé čísla, aj záporná hodnota je povolená ako hodnota parametra n
. Toto však nebudeme teraz riešiť a na chvíľu sa spoľahneme, že používateľ bude zadávať len kladné čísla.
Vytváranie metódy na nakreslenie n
-cípej hviezdy začneme napísaním "príkazov", ktorými povieme, že všetky objekty triedy MojaKorytnacka
majú vedieť nakresliť pravidelnú n
-cípu hviezdu (zatiaľ ale nepovieme ako):
Čím sa líši nakreslenie 12
-cípej hviezdy od n
-cípej? Jednoduchou úvahou prídeme na to, že
n
lúčov (cípov) namiesto 12,
360/12=30
, ale v prípade n
lúčov sa uhol 360
° rozdelí na n
rovnakých úsekov, t.j. uhol každého z nich bude 360/n
.
Pri programovaní metódy nHviezda
teraz využijeme, že vo formulke na opakovanie skupiny príkazov ("for-cykle") môžeme napísať ako počet opakovaní nielen konkrétne číslo, ale aj meno parametra. Dôsledkom bude to, že formulka zabezpečí opakovanie skupiny príkazov taký počet krát, akú hodnotu aktuálne zastupuje zadaný parameter.
Výsledkom bude nasledujúca metóda:
Takto naprogramovaná metóda bude takmer dobrá. Vždy sa nakreslí zadaných n
lúčov. Ak budeme trochu experimentovať s hodnotou parametra n
, ľahko prídeme na to, že ak zadáme počet lúčov rovný 100, nakreslí sa síce 100 lúčov (môžete ich skúsiť spočítať...), no uhly medzi nimi nebudú rovnaké. Ako tento problém vyriešiť si vysvetlíme neskôr. Každopádne však vieme, že príkazy sa vykonali 100 krát a to nám nateraz stačí.
int
, ako hodnoty parametra budú dovolené len celé čísla.
<< Opakovanie skupiny príkazov (pevný počet opakovaní) | Obsah | Premenné >>