Comenius Logo je objektově orientovaný programovací nástroj pracující v prostředí Windows. Byl vyvinut na Slovensku jako nástroj k výuce programování na základních školách. Rozvíjí tvořivost a schopnost řešení problémů. Výsledkem práce mohou být například výukové aplikace nebo hry. Nevýhodou je, že vše co v CL vytvoříte, v něm musíte i spouštět, protože překladač CL pracuje jako interpret.
Princip programování CL pracuje ve dvou, současně fungujících, režimech - v textovém a grafickém. V grafické části pracovní plochy je umístěna želva, která vykonává instrukce zadávané z textového pole. Podle nich pak může například vykreslit jednoduché geometrické obrazce (trojúhelník, čtverec). Kreslené útvary mohou vypadat všelijak, neboť to, co želva nakreslí, záleží jen na nás. Můžeme modifikovat tvar stopy (barvu, šířku, vzor), který za sebou zanechá, měnit její vzhled nebo ji skrýt. Tento přístup k práci se proto nazývá "želví grafika". CL má kolem 250 předefinovaných příkazů v různých kategoriích. Abychom se neupsali zadáváním opakujících se instrukcí, můžeme samozřejmě tvořit další, složitější, tzv. definované procedury (právě to učí základům programování). Nebyl by to tak mocný nástroj, kdybychom mohli pracovat jen s jedním objektem (želvou). Po ploše obrazovky se v jednom okamžiku může pohybovat několik želv a tak mohou v CL vznikat zajímavé interaktivní aplikace.
Prostředí Comenius Logo Želva se nachází v tzv. grafickém okně (zviditelníme ji klávesou +), v němž jsou vidět i čáry, které nakreslila. Příkazy, které má želva vykonat, se zapisují z klávesnice na příkazový řádek vlevo dole v okně. Do jednoho řádku lze psát více příkazů oddělených mezerou. Příkazy se vykonají po stisknutí klávesy Enter. Mezi grafickým oknem a příkazovým řádkem se nachází textové okno, kde jsou zaznamenány použité příkazy. V příkazovém řádku lze vybírat i šipkami „nahoru“ a „dolů“ příkazy, které jsme želvě zadali v minulosti.
nabídka příkazů zobrazení okna paměti
želva
Grafická plocha
Textová plocha
Logo – základní příkazy Akce
Příkaz
Popis příkazu
forward
Zkratka, parametr fd číslo
lez dopředu lez dozadu
back
bk číslo
želva postoupí vzad o počet pixelů daný číslem
otoč vlevo
left
lt číslo
želva se otočí o daný počet stupňů proti směru
želva postoupí vpřed o počet pixelů daný číslem
hodinových ručiček
otoč vpravo
right
rt číslo
želva se otočí o daný počet stupňů po směru hodinových ručiček
nastav barvu
setpencolor
setpc číslo
hodinových smaže obrazovku a umístí želvu do výchozí polohy hodinových želva změní barvu stopy
nastav sílu čáry
setpenwidth
setpw číslo
želva změní tloušťku stopy
smaž
clearscreen cs
obrazovku
Vytvoření nové procedury
Do příkazového řádku pak píšeme pouze ctverec a želva nakreslí čtverec
Proměnné Proměnnou v Comenius Logu píšeme tak, že před jméno proměnné napíšeme dvojtečku Př. to ctverec :a :barva :t setpencolor :barva setpenwidth :t repeat 4 [forward :a left 90] end Do příkazového řádku pak napíšeme ctverec a za něj hodnoty parametrů ctverec 100 12 3 Procedura n_uhelnik sestrojí pravidelný mnohoúhelník o zvolené délce strany to n_uhelnik :n :s repeat :n [fd :s rt 360/:n] end Procedura domecek – samostatná práce – nakreslit domeček jedním tahem to domecek :a repeat 4 [fd :a rt 90] rt 45 fd ( :a * sqrt 2 ) lt 75 fd :a lt 120 fd :a lt 75 fd ( :a * sqrt 2 ) end SQRT – druhá odmocnina wait 1000 – program čeká jednu sekundu Není to jediné možné řešení, lze sestrojit i jinak
Př. Napište proceduru, která sestrojí trojúhelník postavený na vrchol to trojuhelnik :a lt 30 repeat 3 [fd :a rt 120] end Př. Napište proceduru, která trojúhelník vybarví to trojuhelnik :a :v lt 30 repeat 3 [fd :a rt 120] pu wait 2000 rt 30 fd ( :a / 3 ) wait 2000 setfillcolor :v fill bk ( :a / 3 ) lt 30 pd end
:a – délka strany :v – barva výplně pu – pero nahoru wait 2000 – čekej 2s pd - pero dolů fill - vyplň
Proceduru trojúhelník použijeme na vytvoření procedury kriz to kriz :a :v repeat 4 [trojuhelnik :a :v lt 60] end
Odvození procedury kruh to kruh repeat 360 [fd 1 rt 1] end Sestrojení procedury spirála to spirala :a repeat 180 [fd :a rt 1] spirala :a - 0.3 end Procedura spirála používá techniku rekurze - jedna a tatáž funkce volá před svým dokončením sama sebe s použitím nové sady parametrů. Tato procedura je musí ručně zastavit nebo je nutné použít podmínku: to spirala :a if :a<1 [stop] repeat 180 [fd :a rt 1] spirala :a - 0.3 end
Prověrka 1. Procedura – dlažba to kachle :a repeat 6[fd :a rt 60] end to dlazba :a repeat 6 [kachle :a fd :a lt 60] end 2. Definujte proceduru, která nakreslí pravidelný n_úhelník a zavolá sama sebe tak, aby počet úhlů byl o jeden menší. Program se zastaví, bude-li počet úhlů menší než 3 to n_uhelnik :a :n if :n<3[stop] repeat :n [fd :a rt 360/:n] n_uhelnik :a :n-1 end