Úterý 20. března
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 hodinových ručiček
otoč vpravo
right
rt číslo
smaž obrazovku
clearscreen cs
nastav barvu
setpencolor
setpc číslo
želva se otočí o daný počet stupňů po směru hodinových ručiček 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
želva postoupí vpřed o počet pixelů daný číslem
Úterý 27. března 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
Úterý 3. dubna Trojúhelník postavený na špičku to trojuhelnik :a lt 30 repeat 3 [fd :a rt 120] end Vybarvit trojúhelník to trojuhelnik :a :vypln lt 30 repeat 3 [fd :a rt 120] pu rt 30 fd (:a /3) wait 2000 setfillcolor :vypln fill bk (:a / 3) lt 30 pd end
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 :vypln repeat 4 [trojuhelnik :a :vypln lt 60] end
Úterý 10. dubna Definujte proceduru pro nakreslení sluníčka, které vznikne tak, že nad každou stranou n_úhelníka bude rovnostranný trojúhelník. Nejprve vytvoříme proceduru paprsek to paprsek :s repeat 3 [fd :s rt 120] fd :s end
Při vytváření procedury slunce použijeme proceduru paprsek to slunce :s :n repeat :n [paprsek :s lt 360 / :n] end Procedura domek – samostatná práce – nakreslit domeček jedním tahem to domek :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