Date: 2017-05-08T22:00:00+00:00
Description: Imagine – eučebnica programovacieho jazyka pre začiatočníkov. Naučiť sa dnes programovať je oveľa jednoduchšie, ako kedysi. S množstvom návodov a fór je dnes riešenie problému vzdialené len niekoľko minút hľadania. My vám prinášame túto jedinečnú eučebnicu programovacieho jazyka Imagine – www.imagine.input.sk. Označuje sa aj ako „detský programovací jazyk“, ale nie je len pre deti zaujímajúceho sa o túto oblasť. Svojim vzhľadom pripomína skôr detský svet, v ktorom kreslíte chvostom korytnačky objekty, ktoré jej naprogramujete, v pozadí sa však ukrýva mocný nástroj, s ktorým sa naučíte objektov
Publisher: Elist

Vydavateľstvo Elist
www.elist.sk

Anino Belan

IMAGINE

Eučebnica programovacieho jazyka pre začiatočníkov

Autor: © Anton Belan, 2004

Obálka: © Elist, 2014

Vydavateľ elektronickej knihy: © Elist

Všetky práva vyhradené. Nijaká časť tejto knihy nesmie byť reprodukovaná, uchovávaná v rešeršných systémoch alebo prenášaná akýmkoľvek spôsobom vrátane elektronického, mechanického, fotografického či iného záznamu bez predchádzajúceho písomného súhlasu autora, respektíve vydavateľa.

ISBN: 978-80-8171-012-4

Úvod

Varovanie pre pedagógov: Napriek tomu, že sa tento text používa v terciách gymnázia Školy pre nadané deti, treba mať na pamäti, že žiaci našej školy majú informatiku od prvého ročníka ZŠ a nie sú úplne neskúsení programátori. Niektoré kapitoly sú aj pre nich pomerne náročné, úroveň vyžadovanej abstrakcie a algoritmickej zručnosti je v nich vysoká a v plnom rozsahu sú ich schopní pochopiť iba niektorí. Texty je pokojne možné použiť aj pri vyučovaní informatiky vo vyšších ročníkoch gymnázia. Pre začiatočníkov, alebo deti nižších vekových kategórií môžu slúžiť ako vítaná inšpirácia, ale vždy treba opatrne zvážiť, či je daný text pre danú skupinu žiakov vhodný. Toto ponechávame na Váš pedagogický cit a majstrovstvo.

Varovanie pre žiakov: Programovanie je niekedy ťažké. Ale má tú výhodu, že ak spravíte hlúposť, následky väčšinou vidíte rýchlo. A ďalšiu, že mašina robí presne to, čo jej poviete (aj keď zďaleka nie vždy to, čo by ste chceli). A programovanie (okrem toho, že je ťažké) je aj pekné a ak mu prepadnete, už sa toho nezbavíte.

Prvá kapitola

Pasieme korytnačku

Dávno pradávno, keď sa voda sypala, piesok lial a počítače skoro ešte ani neboli, vymyslel ktosi programovací jazyk a nazval ho LOGO. Prešlo pár rokov, jazyk sa mal utešene k svetu a kadekto ho používal a tak sa dala dokopy parta ľudí z bratislavského Matfyzu a spravila prostredie, zvané Comenius Logo. I mnohí premnohí sa v tomto prostredí vytešovať mohli, svoje projekty v jazyku LOGO písali a na svete im blažene bolo. Ale čas plynul neúprosne ďalej, procesory zväčšovali svoju rýchlosť aj kapacitu a nereentrantné šestnásťbitové aplikácie zhadzovali operačné systémy a tak sa ďalší vývojári rozhodli, že urobia prostredie nové, Imagine nazvané. A učinili tak. Objektovú stránku jazyka LOGO posilnili, kresliace nástroje povylepšovali, syntax pomenili a bežným užívateľom k dispozícii za rozumnú cenu dali.

Obrázok 1: Žofka

Jazyk LOGO má od počítačového praveku až doteraz ústrednú postavu. Je ňou korytnačka v našich zemepisných šírkach a dĺžkach nazývaná Žofka. V závislosti od verzie sa podobá na trojuholník, strelu krátkeho doletu, skutočnú korytnačku alebo niečo úplne iné. V prípade Imaginu sa (aspoň zo začiatku) bude na korytnačku celkom aj podobať. (Pozri obrázok 1.)

Na obrázku okrem korytnačky vidíte aj jednu náramne užitočnú vec: príkazový riadok. (To je ten biely obdĺžnik na spodku.) To je riadok, cez ktorý môžete korytnačke hovoriť, čo má robiť. Zadané príkazy sa objavia v šedej ploche vyššie. Na obrázku je vidieť posledný zadaný príkaz zmaz.

Takže hor sa pilotovať korytnačku. Skúste zadať príkaz vpravo 90 Korytnačka spraví vpravo-bok a pootočí sa o 90 stupňov. Bude vyzerať takto: Podobne po zadaní príkazu vľavo 60 sa Žofka otočí doľava o 60 stupňov a bude vyzerať takto: Vyskúšajte si to.[1]

Úloha č.1: Natočte korytnačku

Tak, aby po vašich pokusoch zase smerovala hore.

Keď už viete korytnačku otočiť správnym smerom, môžete ju poslať do sveta. Zadajte jej príkaz dopredu 100.[2] Korytnačka popolezie o 100 korytnačích krokov (korytnačie kroky sú malé, zodpovedajú jednotlivým bodom na obrazovke). A zanechá za sebou stopu, akú vidíte na obrázku. Vláči totiž so sebou atramentové pero a to čarbe, kadiaľ korytnačka chodí. Zadajte teraz príkaz vpravo 90 (korytnačka sa otočí) a potom stlačte šipku hore. V príkazovom riadku sa vám znovu objaví posledný zadaný príkaz. Ak šipku stlačíte ešte raz, objaví sa príkaz, ktorý ste zadali predtým (áno, bolo to dopredu 100). Stlačte <Enter> a príkaz sa vykoná. Niekoľkokrát za sebou pootočte korytnačku o 90 stupňov a pošlite ju o 100 krokov dopredu. Korytnačka vám nakreslí štvorček a vy sa môžete tešiť. Ak niečo pokazíte, zadajte príkaz znovu a celá plocha sa uvedie do pôvodného stavu.

Úloha č. 2: Nakreslite štvorček

Príkazom znovu si zmažte plochu.

Večné prepisovanie príkazov a preklikávanie sa k ním s pomocou šipiek môže byť po čase únavné a môže liezť na nervy. Preto je užitočné vedieť korytnačke prikázať, aby nejakú činnosť niekoľkokrát zopakovala. Ak napríklad chceme nakresliť štvorec, musíme štyrikrát zopakovať príkazy  dopredu 100 vpravo 90. Môžeme to spraviť takto:

opakuj 4 [dopredu 100 vpravo 90]

Za príkaz opakuj napíšeme, koľkokrát to treba zopakovať a do hranatých zátvoriek napíšeme príkazy, ktoré treba zopakovať.

Úloha č. 3: Vyskúšajte, čo spravia príkazy
opakuj 36 [dopredu 100 vpravo 70]

opakuj 180 [dopredu 150 vpravo 178]

Ak chcete, aby korytnačka za sebou čiaru nerobila, zadajte príkaz peroHore, ak chcete, aby ju zase začala robiť, zadajte príkaz peroDolu.[3] Ak chcete vymeniť atrament v pere, napíšte príkaz nechFarbaPera "červená (Pozor! Názov farby začína uvodzovkami, ale nekončí nimi.) Samozrejme môžete zvoliť aj iné farby. Ak chcete zmeniť hrúbku pera, napíšte nechHrúbkaPera 6 a hrúbka pera bude 6 bodíkov.[4]

Úloha č.4: S pomocou známych príkazov nakreslite nasledujúce obrázky:

Druhá kapitola

Vzdelávanie korytnačky

Ako sa dalo v prvej kapitole zistiť, korytnačka Žofka je veľmi poslušné zviera. Vykoná, čo vám na príkazovom riadku uvidí. V tomto je samozrejme problém. Korytnačka by isto rada vykonala aj to, čo vám na srdci uvidí, ale zatiaľ ešte nebolo vyvinuté dostatočne spoľahlivé rozhranie, ktoré by vedelo prečítať vaše túžby, takže je to na tom príkazovom riadku. A čo si do neho napíšete, to korytnačka (ak tomu porozumie) naozaj urobí.

To, že korytnačka nespraví to, čo chcete, môže mať dve príčiny. Buď porozumie všetkým vašim príkazom a vykoná ich. A vy pozeráte na výsledok a hovoríte si: „Fí ha, toto som naprogramoval ja?!?!? To som tak teda nemyslel!“ Vtedy treba zadať príkaz znovu a zadať príkaz znovu, ale nejak inak, aby korytnačka spravila to, čo chcete. Druhá možnosť je tá, že korytnačke zadáte príkaz, ktorý nepozná. Napríklad chcete, aby korytnačka nakreslila štvorec a tak napíšete štvorec. Korytnačka je samozrejme celá zmätená, v živote o takom, že štvorec nepočula, a tak napíše: Neviem ako sa robí štvorec Buď si sa pomýlil v mene procedúry alebo si ju ešte vôbec nedefinoval Skrátka, snaží sa ako vládze, v náhlivosti ani čiarky, ani bodky za vetou nepíše, ale nevie. A v tejto kapitole sa dozviete, ako ju to naučiť.

Je to jednoduché. Ak korytnačku chcete naučiť kresliť štvorce, napíšte jej do príkazového riadku toto:

viem Štvorec

dopredu 70 vpravo 90

koniec

Akonáhle napíšete príkaz viem Štvorec, prepne sa príkazový riadok do učiaceho režimu. Miesto znaku ? Sa na začiatku začne objavovať znak > a žiaden z príkazov, ktorý zadáte sa nevykoná. Všetky príkazy sa ale budú zaznamenávať a pridávať do príkazu Štvorec. Tento stav bude trvať až dovtedy, kým nezadáte príkaz koniec.

Keď teraz napíšete príkaz Štvorec, už sa neobjaví chybová hláška.

Úloha č.1: Naučte korytnačku príkaz Štvorec podľa návodu a vyskúšajte ho

Ak ste postupovali presne podľa návodu, zistili ste, že Žofka príkaz síce vykonala, ale že na štvorec sa to veľmi nepodobá. Dôvod je jednoduchý – uvedené príkazy sme zabudli štyrikrát zopakovať. Túto chybu treba napraviť. Dá sa to spraviť dvoma spôsobmi. Ten komplikovanejší je, že korytnačku naučíme celý príkaz odznova a tentokrát správne. Ten jednoduchší je, že Imaginu siahneme do pamäte a zmeníme príkaz priamo tam.

Najprv si treba zapnúť okno Pamäť. Urobíte to tlačidlom vyznačeným na obrázku. Okno Pamäť nám ukáže celé vnútro Imaginu. Nájdete tu informácie o všetkých objektoch, ktoré sa v ňom nachádzajú, o korytnačkách, udalostiach, plochách a iných veciach o ktorých sme sa zatiaľ nezmienili. A samozrejme je tam aj príkaz, ktorý sme práve vytvorili. Keď si teda otvoríte okno Pamäť a rozbalíte chlievik s nápisom Procedúry, ukáže sa vám to, čo vidíte na obrázku vľavo. Medzi procedúrami sa vyníma naša nová procedúra Štvorec. (Bodaj by sa nevynímala, keď je tam zatiaľ jediná.) Keď na ňu dvojkliknete, otvorí sa vám editor, v ktorom môžete procedúru upraviť.

Úloha č. 2: Upravte procedúru v editore tak, aby skutočne nakreslila štvorec. Vyskúšajte, či to naozaj funguje.

Keď ste upravovali procedúru Štvorec, isto ste si všimli, že na okne editora je vľavo dole tlačidlo s nápisom Pridaj. S jeho pomocou môžete rovno pridávať nové procedúry a písať ich v editore. Je to pohodlnejšie, ako pridávať procedúry s pomocou príkazu viem z príkazového riadku.

Procedúru Štvorec teraz môžete používať rovnako ako ktorýkoľvek iný príkaz z Imagine. Môže byť dokonca použitý aj v iných zložitejších príkazoch. Vyskúšajte napríklad napísať príkaz
opakuj 24 [Štvorec vpravo 15]

Korytnačka zmúdrela a procedúru vykoná bravúrne, rýchlo a bez problémov.

Úloha č. 3: S pomocou príkazu Štvorec nakreslite nasledovné útvary:

Úloha č. 4: Napíšte procedúry Trojuholník a Šesťuholník a s ich pomocou nakresite nasledovné útvary:

a vyskúšajte príkaz
opakuj 3 [ opakuj 10 [ Šesťuholník dopredu 10 ] vpravo 120 ]

Úloha č. 5: Napíšte príkaz Domček, ktorý nakreslí nasledovný útvar:

Tretia kapitola

Korytnačka s pamäťou

Každá lepšia kalkulačka má aspoň jednu pamäť. Imagine má dokonca okno pamäť.[5] A ako uvidíte v budúcnosti, aj jednotlivé korytnačky si môžu všeličo pamätať. Kalkulačka si pamätá iba čísla. Pamäť Imagine je všestrannejšia. Môže si pamätať čísla, slová alebo obrázky. A v tejto kapitole sa dozviete, ako do pamäte niečo vložiť a ako to zas vybrať von.

Predstavte si, že trpíte neprekonateľnou sklerózou a chcete, aby si Imagine niekde zapamätal číslo 5, lebo ak si ho nezapamätá on, vy ho okamžite zabudnete. Musíte si na to číslo vyrobiť krabičku (počítačový guru by povedal „rezervovať pamäť“ alebo „zaviesť premennú“) a tú krabičku nejak pomenovať. Dá sa to spraviť príkazom urob. Predpokladajme, že tá naša krabička sa bude volať číselko. Ak napíšete príkaz
urob "číselko 5
udejú sa naraz dve veci. Imagine sa pozrie, či existuje premenná, ktorá sa volá číselko a ak nie, tak ju vytvorí. Ak sa pozriete do okna pamäť, tak ju tam nájdete v chlieviku s názvom Globálne premenné. Druhá vec, ktorá sa udeje je, že Imagine do premennej číselko vloží päťku. Môžete sa o tom presvedčiť tak, že dvojkliknete na jej ikonu.

Na uvedenom príklade je jedna nezvyklá vec (aspoň zo slovenčinárskeho hľadiska). Nachádza sa tam totiž len jedna úvodzovka. V Imagine bolo totiž potrebné rozlíšiť názvy príkazov od normálnych slov. Ak to začína úvodzovkou, je to normálne slovo (a príkaz urob ho môže použiť ako názov novej premennej). Ak by sme tam tú úvodzovku nedali, Imagine by si myslel, že sa jedná o príkaz číselko a sťažoval by sa, že taký nepozná. Ak chcete, môžete si to vyskúšať.

Dobre. S vynaložením istého úsilia sme vyrobili našu prvú premennú. Ako teraz využiť to, čo je v nej uložené? Na to, aby sme sa dostali k hodnote, ktorá je do premennej (po starom do „pamäte“) vložená, potrebujeme ďalší špeciálny uvádzací znak – dvojbodku. Takže ak napríklad zadáme príkaz
píš :číselko

Imagine vám vypíše 5. A ak to skúsite s príkazom
dopredu 10 * :číselko
korytnačka sa posunie dopredu o 50 korytnačích krokov. (Hviezdička znamená „krát“.) Podľa dvojbodky Imagine spozná, že má použiť hodnotu premennej, ktorej meno za dvojbodkou nasleduje.

Do premenných môžeme okrem čísel ukladať aj mnohé iné veci (zoznamy, obrázky, ...) Ak napríklad zadáme príkaz
urob "zviera "mamut
do premennej zviera sa uloží slovo mamut.

Ukladanie obrázkov do premenných je troška zložitejšie. Najprv si vytvoríme premennú, v ktorej bude prázdny obrázok. (Prázdny obrázok je taký obrázok, v k torom nič nie je nakreslené, takže to vlastne skoro ani nie je obrázok. Hlavné je, že sa Imagine k nemu ako k obrázku bude chovať.) Spravíme to príkazom
urob "obrázoček prázdnyObrázok

V okne pamäť nám pribudne premenná obrázoček, ale zatiaľ v nej nič nie je. Keď na ňu dvojkliknete, otvorí sa okno so všetkými globálnymi premennými a uvidíte, že rámček vedľa nej je prázdny. A teraz nastala vaša chvíľa. Dvojkliknite do toho prázdneho priestoru. Objaví sa vám program LogoMotion, ktorý je určený na kreslenie. V kolónke Súbor si vyberte Nový (Alebo stlačte Ctrl-N) a môžete kresliť. Keď ste hotoví, zavrite LogoMotion a na otázku, či váš výtvor do premennej uložiť odpovedzte Áno.

To, čo ste nakreslili, sa stalo obsahom premennej obrázoček. Túto premennú môžete používať v príkazoch, ktoré s obrázkami vedia pracovať. Môžete napríklad zmeniť tvar korytnačky príkazom
nechTvar :obrázoček
urob "hausnumero 3

urob "hausnumero :hausnumero + 4

opakuj 10 [ urob "hausnumero :hausnumero + 2 ]

urob "hausnumero :hausnumero / 9

píš :hausnumero
urob "a 1

opakuj 400 [ dopredu :a vpravo 90 urob "a :a + 1]

Table of Contents

Úvod

Prvá kapitola

Pasieme korytnačku

Druhá kapitola

Vzdelávanie korytnačky

Tretia kapitola

Korytnačka s pamäťou