Úvod 1 2 3 4 Příklady Testy

Lekce 1

Obsah
 


Anotace kapitoly
V této kapitole se seznámíte se základními druhy algoritmů, jejich zápisem pomocí příkazů FERDA a základními vývojovými diagramy. 
Zápis algoritmu se provádí podle určitých pravidel a zásad. Základními strukturami algoritmu jsou složené příkazy, které se skládají vždy z příkazů dalších. Nejjednoduší jsou příkazy, které provádí přímo procesor, což jsou základní (elementární) příkazy. Na následujích řádkách se dozvíte jak se elementární příkazy skládají do příkazů složených.

Sekvence

Sekvencí se rozumí posloupnost příkazů, které se provádějí postupně jeden po druhém, tak jak jdou za sebou. Každý příkaz se zapisuje na samostaný řádek. Příkladem sekvence je algoritmus tohoto typu:
KROK
KROK
VLEVO VBOK
KROK
POLOZ
KROK
kde v sekvenci jsou použity pouze základní příkazy jazyka FERDA. Po ukončení sekvence program skončí.
Zkusme si v programovacím jazyku FERDA napsat náš první program, který bude demonstrovat provádění algoritmu typu sekvence. Každý program v jazyku FERDA musí začínat příkazem "PROGRAM" a končit příkazem "KONEC PROGRAMU". Na velikosti písmen nezáleží. Do prázdného okénka se záložkou PROGRAM napište tyto příkazy:
program sekvence
rekni Začínám kráčet
krok
krok
vlevo vbok
krok
poloz
krok
rekni Tak jsem došel. Ahoj babi.
konec programu
a pomocí tlačítka RUN program spusťte. Ferda provede příslušné příkazy a svojí činnost ukončí. Výsledná poloha a Ferdy je na následujícím obrázku.

Podmíněný příkaz neúplný

Pokud se v prostředí ve kterém se Ferda pohybuje vyskytnou nějaké proměnné veličiny (například je tam postavena zeď nebo položena značka) měl by Ferda na tuto skutečnost umět reagovat. To je umožněno příkazem, který se nazývá podmíněný. Podmíněný proto, protože provedení těla příkazu je vázáno na splnění nebo nesplnění podmínky. Pokud je podmínka v hlavičce příkazu splněna, příkazy v těle příkazu se provedou a jinak se neprovedou. Podmíněný příkaz umožňuje takzvané větvení programu - umožňuje inteligentní chování programu a jeho reakci na proměnné prostředí.
KDYZ NEBUDE ZED    - to je hlavička podmíněného příkazu s podmínkou nebude zed
 KROK              - to je tělo podmíněného příkazu s příkazem krok
KONEC KDYZ         - to je konec podmíněného příkazu
A zápis podmíněného příkazu pomocí vývojového diagramu:
Vyzkoušejte si, jak Ferda provádí podmíněný příkaz tak, že stavte nebo mažte zeď na políčko následující za políčkem počátečním. Využijte záložku MESTO a myš.
program podmínka
rekni Zkouším zda bude zeď
kdyz nebude zed
rekni Tak tady není zeď
krok
konec kdyz
konec programu

Podmíněný příkaz úplný

Podmíněný příkaz úplný umožňuje rozhodnutí a provedení jednoho nebo druhého těla příkazu. Tedy je-li podmínka v hlavičce příkazu splněna, provedou se příkazy, které následují za příkazem KDYZ, když podmínka není splněna provedou se příkazy za oddělovačem JINAK.
KDYZ NEBUDE ZED  - to je hlavička podmíněného příkazu s podmínkou nebude zed
 KROK            - to je tělo podmíněného příkazu s jedinným příkazem krok
JINAK            - to je oddělovač
VLEVO VBOK       - to je druhé tělo podmíněného příkazu s  příkazy vlevo vbok a krok
KROK    
KONEC KDYZ       - to je konec podmíněného příkazu
A zápis pomocí vývojového diagramu:
Vyzkoušejte si, jak Ferda provádí podmíněný příkaz tak, že stavte nebo mažte zeď na políčko následující za políčkem počátečním. Využijte záložku MESTO a myš.
program podmínka úplná
rekni Zkouším zda bude zeď
kdyz nebude zed
rekni Tak tady není zeď
krok
jinak
rekni Je tam zeď. Tam já nejdu.
vlevo vbok
krok
konec kdyz
konec programu

Cyklus s pevným počtem opakování

Cyklem s pevným počtem opakování se rozumí zadání složeného příkazu, který uvnitř svého těla má další příkazy. Příkazy v tělě příkazu CYKLUS se opakují tolikrát, kolikrát je uvedeno v hlavičce příkazu CYKLUS I - I je počet opakování. Je nutno zadat celé kladné číslo.
CYKLUS 10    - to je hlavička cyklu s deseti opakováními
 KROK        - to je tělo cyklu s jedinným příkazem  
KONEC CYKLUS - to je závěr cyklu
A zápis pomocí vývojového diagramu:
A týž algoritmus zapsaný jako program pro Ferdu:
program ukázka cyklu s pevný počtem opakování
rekni Tak já jdu těch pár kroků
cyklus 10
krok
konec cyklus
rekni Tak jsem konečně došel
pip 
konec programu
A kam se Ferda dostal nám ukazuje další obrázek.

Cyklus s podmínkou na začátku

Tento cyklus se také nazývá cyklus typu WHILE. Tělo cyklu se opakuje, dokud je podmínka v hlavičce cyklu splněna. Je tedy možné Ferdu naučit, jak provádět určité úkony dokud je splněna určitá podmínka. Tedy Ferda může pochodovat až dojde ke zdi.
DOKUD NEBUDE ZED   - to je hlavička cyklu s podmínkou
 KROK        - to je tělo cyklu s jediným příkazem  
KONEC DOKUD - to je závěr cyklu
A zápis pomocí vývojového diagramu:
A program pro Ferdu:
program ukázka cyklu dokud
rekni Tak já jdu ke zdi
dokud nebude zed
krok
konec dokud
rekni Tak jsem došel ke zdi
pip 
konec programu
A kam se Ferda dostal nám ukazuje další obrázek.

Cyklus s podmínkou na konci

Tento cyklus se také nazývá cyklus typu REPEAT. Tělo cyklu se opakuje, až do té doby, dokud není podmínka na konci cyklu splněna. Na rozdíl od cyklu DOKUD, kde se tělo cyklu nemusí provést ani jednou, se tělo cyklu OPAKUJ provede vždy nejméně jednou. V programech pak je možné oby typy cyklů vhodně kombinovat.
OPAKUJ   - to je hlavička cyklu 
 KROK        - to je tělo cyklu s jedinným příkazem  
AZ DO BUDE ZED - to je závěr cyklu s podmínkou
A zápis pomocí vývojového diagramu:
A program pro Ferdu:
program ukázka cyklu opakuj
rekni Tak já jdu ke zdi
opakuj
krok
az do bude zed
rekni Tak jsem došel ke zdi
pip 
konec programu

Samostatné opakování

Odpovězte na otázky a splňte úkoly

  1. Jaké základní algoritmy znáte?
  2. Jaký je rozdíl mezi cykly DOKUD a OPAKUJ?
  3. Nakreslete vývojový diagram algoritmu s pevným počtem opakování.
  4. Jaký je rozdíl mezi úplným a neúplným podmíněným příkazem. Vysvětlete pomocí vývojového diagramu.
  5. Jaké jsou platné zápisy podmínek pro program Ferda?
  6. Jak se realizují jednotlivé algoritmy v programu Ferda?

Naprogramujte následující algoritmy