Autorské riešenie
Úlohou bolo vytvoriť program, ktorý vykreslí náramok s požadovaným vzorom. Ukážkové náramky boli takéto:
Keď sa na tieto náramky na obrázkoch lepšie pozrieme a zamyslíme, objavíme, že sa na nich opakuje nasledujúci vzor:
Keď sa pozrieme lepšie na tento opakujúci sa vzor, zistíme, že aj v tomto vzore sa niečo opakuje. Opakuje sa v ňom 4krát nasledujúci menší vzor:
Keďže sme už objavili opakujúce sa vzory v obrázkoch, môžeme vytvoriť program, ktorý takýto náramok vykreslí. Pomôžeme si tým, že si vytvoríme procedúru, ktorá nám vykreslí štvorec vyplnený zadanou farbou so zadanou dĺžkou strany. Na to nám slúži procedúra farebny_stvorec. Na začiatku si zapamätáme pôvodný stav, teda, aká bola pôvodná farba pera, pôvodná farba výplne a či bolo kresliace pero hore alebo dolu.
;Imagine logo
viem farebny_stvorec :velkost_stvorca :farba urobTu "povodna_farba_pera farbaPera urobTu "povodny_stav_pera pero urobTu "povodna_farba_vyplne farbaVýplne nechFarbaVyplne :farba peroHore polygon[ opakuj 4 [ ph do :velkost_stvorca vp 90 ] ] nechFarbaPera :povodna_farba_pera nechFarbaVýplne :povodna_farba_vyplne ak2 :povodny_stav_pera = "pd [pd][ph] koniec Keď už vieme vykresliť farebný štvorec, môžeme kresliť menší opakujúci sa vzor, ktorý pozostáva zo 4 farebných štvorcov: 2 modré, 1 červený a 1 biely. Na to nám poslúži procedúra mensi_vzor, ktorá vykreslí menší vzor so zadanou dĺžkou strany jedného farebného štvorca.
;Imagine logo
viem mensi_vzor :velkost_stvorca vp 90 do :velkost_stvorca vl 90 do :velkost_stvorca farebny_stvorec :velkost_stvorca "modrá vp 90 farebny_stvorec :velkost_stvorca "červená vp 90 farebny_stvorec :velkost_stvorca "modrá vp 90 farebny_stvorec :velkost_stvorca "biela vp 90 vl 90 do :velkost_stvorca vl 90 do :velkost_stvorca vp 180 koniec Keď už vieme vykresliť menší opakujúci sa vzor, môžeme kresliť väčší opakujúci sa vzor. Použijeme na to procedúru vacsi_vzor, ktorá vykreslí väčší opakujúci sa vzor so zadanou dĺžkou strany najmenšieho farebného štvorca.
;Imagine logo
viem vacsi_vzor :velkost_stvorca opakuj 4 [ mensi_vzor :velkost_stvorca do 2 * :velkost_stvorca vp 90 do 2 * :velkost_stvorca ] koniec Keď už vieme vykresliť aj väčší opakujúci sa vzor, môžeme vykresliť celý náramok. Na to nám poslúži procedúra vykresli_naramok, ktorá vykreslí náramok s požadovaným opakujúcim sa vzorom so zadaným počtom opakovania sa väčšieho vzoru a so zadanou dĺžkou strany najmenšieho farebného štvorca. Nakoniec ešte vrátime korytnačku na jej pôvodnú pozíciu.
;Imagine logo
viem vykresli_naramok :dlzka :velkost_stvorca opakuj :dlzka[ vacsi_vzor :velkost_stvorca vp 90 do 4 * :velkost_stvorca vl 90 ] vl 90 do 4 * :velkost_stvorca * :dlzka vp 90 koniec
Vaše zaujímavé riešenia a najčastejšie chyby
Najčastejšou chybou bolo nevrátenie korytnačky do pôvodného stavu a používanie globálnych premenných, keď to
nebolo nevyhnutné.
|
||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |