Záhradka s opakovaním
Petřík sníva o tom, že by si rád vysádzať kvety po obvode svojej
záhradky o veľkosti 15 políčok na šírku i výšku. Mohli by sme síce
viackrát skopírovať príkazy z predošlej kapitoly, ale za niečo také by sa
musel snáď každý programátor začervenať hanbou
.
Naučíme sa preto používať cyklus. Cyklus zabezpečuje
opakované vykonávanie príkazov. Použijeme cyklus s pevným počtom
opakovaní. Je označený menom opakovanie príkazov s počtom
a nájdete ho v okne Základné prvky, kôš v skupinke
riadenie programu
. Presuňte ho na úplný začiatok programu z minulej kapitoly (pred všetky
príkazy).
Po položení prvku cykle si všimnite, že si so sebou priniesol ešte
ďalšie dva prvky. Tieto dva prvky sú neoddeliteľnou súčasťou cyklu a nie
je možné ich zrušiť ani nikam presunúť. Prvý prvok je označený
pre počet opakovaní
a je určený na zadanie počtu, koľkokrát sa majú príkazy cyklu vykonať.
Druhý prvok nesie označenie opakuj príkazy
. Sem kladieme príkazy cyklu určené k opakovaniu. Hovoríme mu tiež
telo cyklu.
Najskôr určíme príkazy, ktoré bude cyklus vykonávať. Z predošlej
kapitoly máme pripravený príkaz pre krok a príkaz pre položenie kvety pred
Petríka. Tieto dva príkazy pretiahnite do tela cyklu, teda do prvku
opakuj príkazy
. Pre pripomenutie, príkaz pre položenie kvety pred Petríka sme si predtým
vytvorili z dvoch prvkov, z prvku predmet pred Petrik
a k nemu pripojeného prvku Kvetina
.
Teraz určíme počet opakovaní, koľkokrát budú príkazy v cykle
vykonané. K tomu potrebujeme prvok číselná konštanta
, Ktorý nájdete v skupinke výpočty
. Pretiahnite ho do prvku pre počet opakovaní * [
images/img/petr_tutorial_propocet.gif ]
. Ak prvok číselné konštanty v okne Základných
prvkov rozviniete, nájdete v ňom prvky číslic 0
[ images/img/petr_tutorial0.gif ]
až 9 [ images/img/petr_tutorial9.gif *]
. Presuňte číslice do číselné konštanty v programe tak, aby vzniklo
číslo počtu opakovaní príkazov. Zostavené číslo v číselnej konštante
pritom čítame zhora nadol. Ako počet opakovaní zvolíme číslo o jedno
menšie, než je šírka záhradky. Nastavíme teda číslo 14
- konštanta bude obsahovať číslicu 1, pod ňou bude
číslica 4.
Prezradím vám ešte iný spôsob zadávania čísla. Neobsahuje Ak číselná konštanta vnútri žiadny prvok číslice, uplatní sa číslo napísané v informatívnom texte číselné konštanty. Za číslom môže nasledovať akákoľvek poznámka. Takže v našom prípade by stačilo napísať k prvku text 14 - počet krokov. Predošlý spôsob je však trochu názornejšie.
Teraz už vyhoďte do koša (poľa vpravo hore) všetky ostatné prvky,
ktoré zostali mimo cyklus, okrem jedného príkazu pre otočenie vľavo a
príkazu pre čakanie na stlačenie klávesy. Vyhadzovať môžete myšou, ale
existuje aj rýchlejší spôsob pomocou klávesnice. Označte kliknutím
ľavým tlačidlom myši na ikonu prvý z rušených prvkov a potom tlačte
kláves Delete, kým nebudú všetky nepotrebné prvky
odstránené. Moc to ale neprežeňte, nech nemusíte používať obnovovaciu
tlačidlo Späť
.
Po všetkých úpravách by vám mal vzniknúť program vyzerajúce takto:
Všimnite si, ako možno program vďaka popisom prvkov čítať celkom prirodzeným spôsobom: "Pre počet opakovaní 14 opakuj príkazy: polož ako predmet pred Petrik Kvetinu, potom urob krok."
Program spustite. Petřík sa vydá k pravému okraju okna a cestou vsádza kvety. Keď nasade kvety takmer po celom spodnom okraji okna, otočí sa hore a čaká. Zabudol kvetinu na začiatku radu vľavo, ale nabudúce sa určite polepší.
Teraz by sme mohli náš cyklus skopírovať ešte trikrát; potrebujeme totiž celkom štyri strany. Ale pretože sme správne programátori, použijeme k tomu opäť cyklus. Cyklus je totiž v podstate bežný príkaz a tak ho môžeme vložiť do iného cyklu.
Presuňte z poľa Základných prvkov ďalší prvok
opakovanie príkazov s počtom
a vložte ho úplne na začiatok programu. Ako počet opakovaní uveďte číslo
4. Pre číselné konštanty s jednou číslicou môžeme
používať priamo samotné číslice, ktoré nájdete u prvku číselné
konštanty. Takže do parametra cyklu pre počet opakovaní pretiahnite prvok
číslice 4
.
Do tela cyklu opakuj príkazy
pretiahnite skôr vytvorený cyklus pre vysádzanie jednej strany záhradky a
pod neho príkaz pre otočenie vľavo. Príkaz pre čakanie na stlačenie
klávesy necháme úplne na konci celého programu. Dobrý programátor si ešte
svoj výtvor okomentuje poznámkami, aby mu bola činnosť programu jasná aj na
druhý deň. A nielen jemu, ale aj všetkým ostatným, ktorí program niekedy
uvidia. Komentovanie znamená zmena textu u prvku. Až na špeciálne prípady
(číselná a textová konštanta) program text uvedený u prvku nijako
nepoužíva a je plne k dispozícii poznámkam programátora.
Tu vidíte výsledok našej usilovnej práce:
Program spustite. Petřík sa rozbehne okolo svojej novej záhradky a usilovne vsádza kvety. Tentoraz už nastrieľal všetky a na žiadnu nezabudol. Páči sa vám jeho záhradka?
Ak zvýšite počet krokov vo vnútornom cykle, napríklad na 44, môžete pozorovať, že Petřík vytváraný kvetiny teraz už skutočne po celom obvode plochy a ani mu nevadí, že na konci cesty vždy narazí hlavou do steny. Ak nemôže nejakú operáciu vykonať, tak ju jednoducho nevykoná a nič sa nestane.
Ak chcete ešte experimentovať, skúste zväčšiť číslo v počte
opakovaní hlavného (vonkajšieho) cyklu. Petřík bude pobehovať okolo okraja
okna neustále. Pri veľkom počte opakovaní sa možno už ani konca
nedočkáte a budete musieť program prerušiť kliknutím na tlačidlo s
krížikom
(v pravom hornom rohu okna) alebo stlačením kombinácie klávesov Alt
+ F4.
Ako domácu úlohu skúste doplniť program tak, aby Petřík po nasadení kvetov obišiel všetko ešte raz a kvety naopak otrhali.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 276x (129.18 kB)
Aplikácia je vrátane zdrojových kódov v jazyku Petr (sú obsiahnuté v EXE súbore, ktorý možno v programe priamo otvoriť)