KAREL 3D

Karel je malý robot. Vymyslel a navrhol ho Američan Richard Pattis a naučil ho niekoľko základných akcií.

Karel sa vie pohybovať po miestnosti - vie urobiť krok dopredu, vie sa otáčať doprava a doľava. A môže si na mieste, na ktorom stojí nechať značku. Všetko stavia z tehál a kvádrov. Vie teda tehlu položiť, ale aj zobrať.

Karel 3D je výnimočný tým, že pre žiaka, ktorý sa učí základné princípy programovania, veľmi názorne a príťažlivo umožňuje vysvetliť aj zložitejšie pojmy štrukturovaného programovania.. Žiak sa môže stotožniť s postavičkou robota a pochopiť činnosť pri vykonávaní programov počítačom. Keďže všetky príkazy jazyka narábajú s robotom na obrazovke, žiak ma možnost sledovať celý priebeh činnosti a tým je schopný jednoduchšie odfiltrovať chyby v algoritme.

Karel 3D je pascalovského typu, preto by pre deti mal byť neskorší prechod k programovaniu v Pascale jednoduchší.

Programovanie úloh pre Karla nevyžaduje žiadne predbežné znalosti z matematiky alebo geometrie.

Režimy systému Karel 3D

Obrazovka obsahuje tri druhy okien:

Základný režim je dialógový, do ktorého sa systém dostane hneď po štarte. Príkazy zadávané do dialógových riadkov sa po odoslaní klávesom ENTER hneď vykonajú.

Príkazy zadávané v dialógovom režime delíme do štyroch skupín na systémové príkazy, ktoré neriadia robota, ale systém; štandardné príkazy na riadenie robota; programové štruktúry; používateľské príkazy (programy a procedúry).

Systémové príkazy (pre PMD 85)

 Miestnost - systém prejde do priameho režimu. Priamy režim ukončíme klávesom ENTER.

 Priamy režim (Štandardné príkazy)

V priamom režime môžeme Karla riadiť pomocou klávesov

<sipka hore> - KROK ;Karel urobí krok smerom, v ktorom je natočený. Ak má pred sebou prekážku (nie je pred ním voľno), tak urobí krok na mieste. Štandardná podmienka "je volno" je definovaná tak, že políčko pred Karlom nie je ani obvodová stena ani nie je vyššie ako o jeden stupienok

P - POLOZ tehličku; Karel položi na políčko pred seba tehličku. Tehlu nemožno položiť vtedy, keď -pred Karlom je obvodová stena.

-políčko pred Karlom je nižšie ako jeden stupienok

-políčko pred Karlom je vyššie ako 10 stupienkov

-na políčku pred Karlom je viac ako 15 tehličiek.

Prikaz Poloz zvyšuje počítadlo vždy o 1, aj keď Karel nemohol položiť tehličku.

Z - ZDVIHNI tehličku; Karel zdvihne tehličku. Nezdvihne ju vtedy ak

-pred Karlom je obvodová stena

-na políčku pred Karlom nie je tehla

-políčko pred Karlom je nižšie ako 1 stupienok

-políčko pred Karlom je vyššie ako 10 stupienkov.

Takisto zvyšuje počítadlo, aj keď Karel nemohol zdvihnúť tehličku.

<sipka vlavo> resp. VĽAVO - Karel sa na mieste otočí vľavo o 90 stupňov.

<sipka vpravo> resp VPRAVO - Karel sa na mieste otočí doprava o 90 stupňov. Obidva príikazy nezvyšujú počítadlo.

O - OZNAČ, Karel položí na políčko, na ktorom stojí, značku. Ak sa položí na označené miesto tehla, tak značka prejde navrch tehly. Podobne je to aj so zdvíhaním tehly.

O - ODZNAČ, Karel z políčka, na ktorom práve stojí odoberie značku. Ak tam značka nebola, nevykoná sa nič.

K - postav veľky kváder

PIP - tento príkaz využijeme vtedy, keď potrebujeme oznámiť nejaký špeciálny stav v programe.

RYCHLO - príkaz zapne rýchly režim. Keď je systém v tomto režime, tak nezobrazuje zmeny v miestnosti, ale na obrazovke zostáva počiatočný stav a len príkazom POMALY sa tento režim vypne a hneď sa zobrazí momentálny stav miestnosti . Pomocou tohto príkazu sa dajú robiť animačné efekty.

POMALY - režim prejde do normálneho režimu a zobrazí momentálny stav miestnosti.

meno - Tu pod menom rozumieme používateľom zadefinovaný príkaz a tento nie je štandardný.

B - zdvihni kváder

< sipka dolu> - Karel cúva, ide dozadu.

Programové štruktúry

V programovaní je typické to, že sa istá postupnosť príkazov viackrát opakuje. Moderné metodiky tvorby algoritmov odporúčajú používať štruktúry cyklov a vetvení ako je tomu napr. v pascale a maximálne sa vyhýbať skokovým príkazom.

Najjednoduchším typom opakovania istej postupnosti príkazov je cyklus s pevným počtom opakovaní:

UROB (OPAKUJ) číslo KRAT

postupnosť príkazov

* UROB

Táto konštrukcia spôsobí, že príkazy medzi Krat a * Urob sa budú príkazy príslušný početkrát opakovať. Číslo, udáva počet opakovaní (0..255).

Cyklus s podmienkou na začiatku:

KYM test UROB

postupnosť príkazov

* KYM

Test označuje otestovanie podmienky a má tvar, buď je podmienka alebo nieje podmienka.

Na vetvenie slúži príkaz:

AK test TAK

postupnosť príkazov

INAK

postupnosť príkazov

* AK

alebo

AK test TAK

postupnosť príkazov

* AK

Systém pri tejto konštrukcii najprv otestuje platnosť testu a na základe toho vykoná príslušnú postupnosť príkazov.

 Tvar zadefinovaných príkazov

 Nové príkazy môžeme vytvarať alebo opravovať v editovacom režime.Samotný príkaz má tvar:

PRIKAZ meno PRIKAZ meno

ZACIATOK

postupnosť príkazov postupnosť príkazov

KONIEC * PRIKAZ

 V mene možno použiť ľubovoľné znaky okrem medzery.

 Podmienky

 Preddefinované podmienky majú tvar:

JE STENA - pred Karlom je obvodová stena alebo na políčku pred ním sa nachádza veľký kváder.

JE TEHLA - na políčku pred Karlom sa v nejakej výške nachádza aspoň jedna tehlička. Neznamená to ale, že ju môže zdvihnúť.

JE VOLNO - Karel môže urobiť na políčko pred sebou krok.

JE ZNACKA - na políčku, kde stojí Karel sa nachádza značka.

 

Nami definované podmienky majú tvar:

PODMIENKA meno PODMIENKA

ZACIATOK

postupnosť príkazov postupnosť príkazov

KONIEC * PODMIENKA