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.
zobrazení okna paměti želva nabídka příkazů Grafická plocha Textová plocha Logo základní příkazy Akce Příkaz Zkratka, Popis příkazu parametr lez dopředu forward fd číslo želva postoupí vpřed o počet pixelů daný číslem 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 želva se otočí o daný počet stupňů po směru hodinových ručiček smaž obrazovku clearscreen cs smaže hodinových obrazovku a umístí želvu do výchozí polohy nastav barvu setpencolor setpc číslo želva hodinových změní barvu stopy nastav sílu čáry setpenwidth setpw číslo želva změní tloušťku stopy
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] 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] 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 ) 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] 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 :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] Odvození procedury kruh to kruh repeat 360 [fd 1 rt 1] Sestrojení procedury spirála to spirala :a repeat 180 [fd :a rt 1] spirala :a - 0.3 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
Prověrka 1. Procedura dlažba to kachle :a repeat 6[fd :a rt 60] to dlazba :a repeat 6 [kachle :a fd :a lt 60] 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