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
-
Jaké základní algoritmy znáte?
-
Jaký je rozdíl mezi cykly DOKUD a OPAKUJ?
-
Nakreslete vývojový diagram algoritmu s pevným počtem opakování.
-
Jaký je rozdíl mezi úplným a neúplným podmíněným příkazem. Vysvětlete pomocí
vývojového diagramu.
-
Jaké jsou platné zápisy podmínek pro program Ferda?
-
Jak se realizují jednotlivé algoritmy v programu Ferda?
Naprogramujte následující algoritmy
-
Ferda udělá 5 kroků a poté vlevovbok a pak se zastaví.
-
Ferda určí, zda na páté pozici je značka a oznámí to hlášením. Poté se
zastaví.
-
Ferda dojde k nejbližší značce a zastaví se.
-
Ferda dojde k políčku kde jsou položeny dvě značky.
-
* Ferda určí kolik značek je na třetím políčku.
