**Imagine** alebo **Imagine Logo** je programovací jazyk a IDE prostredie určený na výuku programovania na základných a stredných školách. Imagine je pokračovateľom programovacieho jazyka Logo.

Imagine Logo patrí medzi detské programovacie jazyky, napriek tomu v ňom možno písať aj komplexnejšie aplikácie. Motivačným základom je ovládanie korytnačky Žofky, ktorá ovláda niekoľko základných príkazov, ktoré žiak píše v materinskom jazyku. Na začiatku príkazy zadáva cez príkazový riadok, postupne však sady príkazov zoskupuje do procedúr a celých projektov.

Imagine v IDE prostredí je interpretačný jazyk, projekt možno skompilovať do exe súboru. Projekt tiež možno zverejniť na www stránkach, používateľ, ktorý by si ho chcel spustiť v prehliadači musí mať nainštalovaný plugin.

Školy zapojené do projektu Infovek majú zakúpenú multilicenciu pre všetkých svojich žiakov a učiteľov.

Základné príkazy
----------------

*Poznámky: Príkazy v zátvorkách sú skratky príkazov v plnom tvare*
*Pod termínom príkaz sa v ďalšom texte rozumie nielen jednoduchý príkaz, ale aj programátorom definované procedúry s parametrami a zložené príkazy*
* *Dopredu n* (DO) – korytnačka sa pohne o n bodov v smere v ktorom je otočená. Ak má pero dole, nakreslí za sebou čiaru v nastavenej farbe a hrúbke
* *vzad n* – to isté ako Dopredu, ale korytnačka cúva
* *vpravo n*; *vľavo n* – korytnačka sa otočí doprava alebo doľava o n stupňov
* *nechHrúbkaPera n* (*nechHP n*) – nastavenie hrúbky pera
* *nechFarbaPera "farba* (*nechFP "farba*) – nastavenie farby pera, farba sa zadáva v prirodzenom jazyku len zo syntaktických dôvodov je uvedená na začiatku úvodzovkou, koncová úvodzovka sa nezadáva
* *PeroHore* (*PH*) – pri pohybe korytnačka nezanecháva stopy
* *PeroDole* (*PD*) – pri pohybe korytnačka kreslí nastaveným perom
* *opakuj n príkaz* – n krát zopakuje príkaz
* *ak podmienka príkaz* – ak je splnená podmienka vykoná sa príkaz
* *ak2 podmienka príkaz1 príkaz2* – ak je splnená podmienka vykoná sa príkaz1 inak sa vykoná príkaz2
* *kým podmienka [prikaz1 príkaz2 ... príkazN]* – cyklus, ktorý sa bude vykonávať, kým je splnená podmienka. Hranaté zátvorky slúžia na ohraničenie príkazov ktoré sa majú opakovane vykonať
* *náhodne n* – vygeneruje náhodné číslo 0 až n
* *znovu* – zmaže pracovnú plochu a umiestni korytnačku do stredu pracovnej plochy, korytnačka smeruje nahor
* *nechFarbaVýplne "farba (nechFV "farba)* – nastavenie farby výplne
* *vyplň* – vyfarbí plochu ohraničenú inou farbou, než je aktuálna farba bodu, na ktorom korytnačka stojí
* *čakaj čas* – čaká toľko milisekúnd, koľko sme zadali v parametri čas
* k v minulosti zadaným príkazom sa dostaneme tak, že kurzor myši presunieme na príkazový riadok a stláčame šipky hore alebo dole

Premenné
--------

*urob "premenná hodnota* – ak premenná ešte neexistovala, vytvorí ju a nastaví na hodnotu hodnota, inak len nastaví novú hodnotu

*:premenná* – použitie premennej, ktorá už bola definovaná

*urob "premenná :premenná+5* – k hodnote premennej sa pripočíta 5

Definovanie procedúry
---------------------

*viem názovprocedúry prikaz1 príkaz2 ... príkazN koniec*

Príkazy sú oddelené medzerami alebo odriadkovaním, v tomto prípade ide o precedúru bez parametrov.

*viem názovprocedúry :premenná príkaz1 príkaz2 ... príkazN koniec*

Procedúra s jedným parametrom. Ak pri volaní procedúry nezadáme parameter, vyžiada si hodnotu od používateľa.

Ak by sme chceli, aby korytnačka nakreslila štvorec so zvolenou dĺžkou, možno to zadefinovať napríklad nasledujúcu procedúru:

*viem štvorec :dĺžka opakuj 4 [dopredu :dĺžka doprava 90] koniec*

Zdroj
-----

* Anino Belan: *IMAGINE : učebný text pre terciu osemročného gymnázia*. Škola pre Mimoriadne Nadané Deti a Gymnázium, Bratislava 2004.