<< home >>
Didaktické využitie mini-jazyka Robot Karel na ZŠ
<<- ->>


  • Karel 96

KAREL96

Programovací mini-jazyk Robot Karel 96 je freeware bez vyšších nárokov na hardvér.

Prečo Karel 96

Pre úvod do štruktúrovaného programovania je vhodná verzia Karel 96 pre svoju názornosť, jednoduchý programovací režim, podmienky svetových strán a náhody. Prostredie je farebne pútavé, kladom je tiež možnosť pracovať pomocou myši - jednoduché stláčanie tlačidiel v programovacom režime. Program je napísaný s farebným odlíšením syntaktických prvkov a zarovnávaním do hĺbky štruktúry. Existuje tu možnosť zlepšovania svojich zručností ovládania klávesnice a rozloženia znakov na nej prostredníctvom hry Písanie. Túto hru možno realizovať v žiackom kolektíve i formou súťaže. Nevýhodou je komplikovaná editácia, chýba ladenie (krokovanie) programu. V režime práce nie je vidno program. Miestnosť je fixne daná s rozmermi 10 x 12 (žiaci sa uchyľujú k nadmernému používaniu cyklu s presným počtom opakovaní, namiesto všeobecnejšieho podmieneného cyklu). Ak je uvedené v predchádzajúcom texte sekcie, že sa dá programovať aj bez počítača, tak táto verzia je pri nedostatku počítačov najvhodnejšia na ukážku správania sa Robota Karla v jeho prostredí. 

Prostredie Karel 96


karel96

Základné príkazy

Krok - krok v smere šípky
Vlevovbok - otočí sa o pravý uhol
Polož - položí značku (tehlu)
Zvedni - zoberie jednu značku

Naučené príkazy môžeme vyberať alebo ukladať do slovníka na pravej strane. Môžeme využívať klávesy na zrýchlenie (Shit), prerušenie (Esc) alebo ukončenie príkazu.

Ulož - uloží slovník na disk
Načti - načíta slovník z disku
Turbo (F8) -väčšia/menšia rýchlosť
Zvuk (F9) - vypne/zapne pípanie
Konec (Alt+F4) - ukončí program 

Karel sa učí nové príkazy

Karel je schopný naučiť sa svoje základné príkazy v slovenčine


PRIKAZ VLAVO
  VLEVOVBOK
KONEC

PRIKAZ ZOBER
  ZVEDNI
KONEC

alebo sa naučiť nový príkaz použitím postupnosti známych príkazov


PRIKAZ VPRAVO
  VLEVOVBOK
  VLEVOVBOK
  VLEVOVBOK
KONEC

V tomto režime sa Karel učí nové príkazy stlačením tlačidiel alebo načítaním zo slovníka. Prostredie umožňuje opravu príkazov, ich zmazanie a archiváciu.

Cyklus

Pre názornosť v ďalšom texte použijem aj tvar pascalovskej syntaxe príslušného prvku jazyka ohraničený znakmi < a > písaný kurzívou.

Príkaz, alebo postupnosť príkazov sa opakuje presný počet krát (<for to/downto do>). Napríklad, ak je vopred známe, že Karel stojí v rohu miestnosti s rozmerom 10 miest (políčok) a úlohou je, aby prešiel na druhú stranu a všade zanechal "stopu", možno využiť cyklus s presným počtom opakovaní. 

PRIKAZ PREJDI
  POLOZ
  OPAKUJ 9 KRAT
    KROK
    POLOZ
  KONEC
KONEC

Podmienka

Ak by sa v predchádzajúcom príklade rozmer miestnosti zmenšil, Karel by narazil a program by sa s chybou prerušil. Karel je našťastie dosť inteligentný (na úrovni jeho programátora) a vie vyhodnotiť jednoduchú podmienku v tvare ÁNO (pravda <true>) je splnená, alebo NIE (nepravda <false>), nie je splnená. Na základe vyhodnotenia podmienky Karel buď vykoná jeden príkaz (postupnosť, blok príkazov), alebo iný (<if then else>). Použitím tejto konštrukcie - podmienený príkaz, žiak zabezpečí (binárne) vetvenie programu.

PRIKAZ PREJDI
  POLOZ
  KDYZ NENI ZED
    KROK
    POLOZ
  KONEC JINAK
  KONEC
KONEC

Všeobecne v prostrediach Karla (okrem Karla 3.2) nie je syntakticky zabezpečené viacnásobné vetvenie (<case of>), vlastne ani nie je potrebné kvôli absencii premenných, ale dá sa nahradiť viacnásobným použitím podmieneného príkazu (napríklad pri orientácii a postupe na základe zemepisného smeru).

Ale čo ak sa rozmer miestnosti zväčší? Karel prejde 9 krokov (dostane sa na desiate miesto - políčko) a program skončí. Ak túto otázku položí žiak, učiteľ môže byť spokojný a mädliť si ruky. Žiak myslí, testuje rôzne možnosti vstupu, vidí obmedzenia konkrétneho algoritmu riešenia a hľadá riešenie všeobecnejšie. 

Spojením cyklu s podmienkou možno dosiahnuť cyklus opakovania dovtedy, pokiaľ je/nie je podmienka splnená. Cyklus už nemá presný počet opakovaní, ale jeho ukončenie závisí od vyhodnotenia podmienky. Karel pozná konštrukciu podmieneného cyklu s podmienkou na začiatku, to znamená že príkaz (postupnosť, blok príkazov) cyklu sa nemusí vykonať ani raz (<while do>)

PRIKAZ PREJDI
  POLOZ
  DOKUD NENI ZED
    KROK 
    POLOZ
  KONEC
KONEC

Všeobecne v prostrediach Karla (okrem Karla 3.2) nie je syntakticky zabezpečený cyklus s podmienkou na konci (<repeat until>).

Procedúra

Každý príkaz, ktorý sa Karel už naučil možno považovať za procedúru - modul, ktorý môže byť neskôr volaný a využitý bez opätovného zadávania (deklarácie). Riešenie konkrétnej úlohy (problému) sa tým rozloží na niekoľko jednoduchších procedúr. Predstavuje konkrétny pracovný postup pri vytváraní návrhu programu.

Všeobecne v prostrediach Karla (okrem Karla 3.2) musí byť syntakticky zabezpečené, aby volaná procedúra (príkaz) bola deklarovaná (naučená) skôr, než je volaná. Je tak vytvorená akási logická hierarchia - hlavný program - podprogram - podprogram podprogramu - ... 

Rekurzia

Podobne ako pri volaní procedúry sa volá a vykonáva časť programu, príkaz, postupnosť príkazov deklarovaných a označených nejakým identifikátorom - menom, pri rekurzii je touto procedúrou sám program (príkaz). Príkaz, ktorý sa Karel naučil vlastne počas vykonávania volá sám seba.




Riešené úlohy Karel 96

 


Karel obmuruje svoju miestnosť značkami 

  

·     jedným programom – príkazom (OBRAD) 

 

·     s použitím procedúry – príkazom už vopred deklarovanom (naučenom) (OB, RAD) 

 

·     s použitím rekurzie 

  

    REKU_1 – Karel stále beží dookola, program nikdy neskončí 

  

    REKU_2 – Karel po práci síce stojí na mieste, ale program stále beží 

  

    REKU_3 – Program je ošetrený 

  

Karel sa večer opitý potáca a sem tam si pregrcne značkami   program OPILEC 

 

Karel ráno čistí po svojom večernom "řádení"    program CISTIC 

  

  


 



PRIKAZ OBRAD 

  OPAKUJ 4 KRAT 

    DOKUD NENI ZED 

      DOKUD NENI PLNO 

        POLOZ 

      KONEC 

      KROK 

    KONEC 

    VLEVOVBOK 

  KONEC 

KONEC 

 


  

 


 

 


 

  



PRIKAZ RAD 

  DOKUD NENI ZED 

    DOKUD NENI PLNO 

      POLOZ 

    KONEC 

    KROK

  KONEC 

KONEC 

  

PRIKAZ OB 

  OPAKUJ 4 KRAT 

    RAD 

    VLEVOVBOK 

  KONEC 

KONEC 

 



  

 


 

 


 

 



PRIKAZ REKU_1 

  DOKUD NENI ZED 

    KDYZ NENI PLNO 

      POLOZ 

    KONEC JINAK 

    KONEC 

    KROK 

  KONEC 

  VLEVOVBOK 

  REKU_1 

KONEC 

 



  

 


 

 


 

  



 PRIKAZ REKU_2 

  DOKUD NENI ZED 

    KDYZ NENI PLNO 

      POLOZ 

      KROK 

    KONEC JINAK 

    KONEC 

  KONEC 

  VLEVOVBOK 

  REKU_2 

KONEC 

 



  

 


 

 


 

  



 PRIKAZ REKU_3 

  DOKUD NENI ZED 

    POLOZ 

    KROK 

  KONEC 

  VLEVOVBOK 

  KROK 

  KDYZ NENI PLNO 

    VLEVOVBOK 

    VLEVOVBOK 

    KROK 

    VLEVOVBOK 

    VLEVOVBOK 

    REKU_3 

  KONEC JINAK 

    VLEVOVBOK 

    VLEVOVBOK 

    KROK 

    VLEVOVBOK 

    VLEVOVBOK 

  KONEC 

KONEC 

 



  

 


 

 


 

  



 PRIKAZ OPILEC  

  DOKUD NENI STISK 

    KDYZ JE NAHODA 

      KDYZ NENI ZED 

        KROK 

        KDYZ JE NAHODA 

          KDYZ NENI PLNO 

            POLOZ 

          KONEC JINAK 

          KONEC 

        KONEC JINAK 

          VLEVOVBOK 

        KONEC 

      KONEC JINAK 

        VLEVOVBOK 

      KONEC 

    KONEC JINAK 

      VLEVOVBOK

    KONEC 

  KONEC 

KONEC 

 


  

 


 

 


 

  



PRIKAZ CISTIC 

  DOKUD NENI STISK 

    KDYZ JE NAHODA 

      KDYZ NENI ZED 

        KROK 

        KDYZ JE NAHODA 

          KDYZ JE ZNACKA 

            ZVEDNI 

          KONEC JINAK 

          KONEC 

        KONEC JINAK 

          VLEVOVBOK 

        KONEC 

      KONEC JINAK 

        VLEVOVBOK 

      KONEC 

    KONEC JINAK 

      VLEVOVBOK 

    KONEC 

  KONEC 

KONEC 

 



 

 



 

Riešené úlohy dowňák

<<- ->>