Průběh programu můžeme řídit pomocí cyklů a podmínek. Cykly umožňují vykonávat příkazy opakovaně: buď zadaný počet opakování (opakuj N×), nebo dokud platí nějaká podmínka (opakuj dokud). Podmíněné příkazy umožňují vykonat část programu, pouze pokud platí určitá podmínka.

Cykly a podmínky lze kombinovat – můžeme je do sebe vnořovat. Často se používají zejména podmínky uvnitř cyklů (opakované rozhodování) a cykly uvnitř cyklů (vnořené cykly).

Tipy k procvičování

  • Před procvičováním cyklů a podmínek je vhodné důkladně procvičit posloupnosti příkazů. Zejména je potřeba vědět, v jakém pořadí jsou příkazy vykonávány.
  • Určování, které příkazy patří do těla cyklu a podmínek, lze procvičit samostatně v rámci tématu vnořené bloky.
  • Před vytvářením vlastních programů je užitečné procvičit čtení kódu a pochopení principu cyklů a podmínek, k tomu lze využít cvičení Kód kostky, Rozhodovačku, Pexeso, Přesouvání a Krok po kroku.
  • Důkladné procvičení podmínek a cyklů pak umožnuje řešení interaktivních programovacích úloh formou blokového programování. V Želví grafice a ProgMalování lze procvičovat cykly s daným počtem opakování (i vnořené), v Plošinovce podmíky, Stavitel pak umožňuje procvičení všech cyklů i podmíněných příkazů.
  • Konkrétní náměty na postup procvičování nabízí výukové moduly Algoritmické myšlení a základy blokového programování (zaměřené na posloupnosti příkazů a cykly) a Blokové programování: podmínky, ladění (zaměřené na podmíněné příkazy a cyklus opakuj dokud).

Kdybychom všechny algoritmy vyjadřovali jako prostou posloupnost akcí, byly by často velmi dlouhé a nepřehledné. Proto se snažíme v problémech hledat pravidelnosti a vzory a ty následně vyjádřit v algoritmu pomocí opakovaného provádění stejných instrukcí.

Základní forma opakování je cyklus s pevně daným počtem opakování (v programovacích jazycích se běžně označuje jako for cyklus). Takto například dáme želvě pokyn, aby vykreslila čtverec (který se skládá ze 4 stejných stran):

Při zápisu opakování musíme dávat dobrý pozor na to, co je součástí cyklu a co je mimo něj. Příklad:

První příklad opakuje pouze vykreslování jablek, kreslení jahody je mimo cyklus. Ve druhém příkladě se opakuje vykreslování jablek i jahod. Ve třetím příkladě nejdříve nakreslíme tři jablka, potom tři jahody.

Můžeme též použít cyklus, který se opakuje tak dlouho, dokud není splněná zadaná podmínka. Tyto cykly pokrývá navazující téma opakuj dokud.

U většiny algoritmů potřebujeme, aby postup závisel na aktuálním stavu. Polévku musíme zahřívat a míchat, dokud nezačne vřít. Pokud při příjezdu na křižovatku svítí červená, auto musí zastavit.

Rozhodování podle podmínek zapisujeme pomocí slov pokudjinak (v angličtině ifelse). Názorné příklady:

Někdy větev „jinak“ nepoužíváme. Pokud podmínka není splněna, tak se v takovém případě neprovede žádná speciální akce:

Při vyjadřování podmínek často využíváme logické spojky (a zároveň, nebo, negace).

Kromě základních cyklů s pevně daným počtem opakování využíváme často v algoritmech i cyklus typu opakuj dokud. Tento cyklus se opakuje tak dlouho, dokud je splněna zadaná podmínka. V programovacích jazycích se pro zápis tohoto typu cykly využívá příkaz while.

Pozor na rozdíl oproti podobně znějícímu podmíněnému příkazu pokud. Tělo příkazu pokud se provede nejvýše jednou, zatímco tělo příkazu dokud se může provádět opakovaně.

Všimněte si, že po provedení cyklu podmínka neplatí (vláček není na žlutém políčku). Podmínka se vyhodnocuje ještě před prvním vykonáním těla cyklu. Pokud není splněna, tak se tělo cyklu neprovede ani jednou:

Jako u všech řídících bloků musíme dávat dobrý pozor na to, co je součástí cyklu a co je mimo něj:

Podmínka se kontroluje vždy před provedením celého bloku, nikoliv po každém příkazu:

Při vyjadřování podmínek často využíváme logické spojky (a zároveň, nebo, negace):

K rozhodování podle podmínky používáme podmíněný příkaz pokud. Pokud se potřebujeme rozhodovat opakovaně, můžeme podmíněný příkaz provádět opakovaně uvnitř cyklu. K opakování využíváme příkaz opakuj N× nebo opakuj dokud, případně rekurzi – vzájemně se volající funkce (ve cvičení Robotanik). Příklady:

V těle cyklu může být příkazů více. Pozornost je potřeba věnovat odsazení, které určuje, který příkaz je součástí cyklu a podmíněného příkazu. V následujícím programu je příkaz nahoru součástí vnořeného podmíněného příkazu (provede se 3×), příkaz doprava je součástí cyklu, ale nikoliv podmíněného příkazu (provede se 5×) a příkaz doleva je vně cyklu (provede se pouze jednou, po skončení cyklu).

K opakování příkazů slouží příkazy opakuj N× a opakuj dokud.

V těle cyklu mohou být nejen základní příkazy, ale třeba i další cyklus – ten nazýváme vnořený cyklus. Pro jeho použití nepotřebujeme žádný nový příkaz. Prostě jen cyklus zapíšeme (a odsadíme) uvnitř jiného cyklu:

Odsazení příkazů je důležité – určuje, co je součástí kterého cyklu. Kdyby bylo kreslení jahody odsazené více, bylo by součástí vnitřního cyklu:

Naopak, kdyby bylo kreslení jahody odsazené méně, nebylo by součástí žádného cyklu a provedlo by se až po dokončení vnějšího cyklu:

NAPIŠTE NÁM

Děkujeme za vaši zprávu, byla úspěšně odeslána.

Napište nám

Nevíte si rady?

Nejprve se prosím podívejte na časté dotazy:

Čeho se zpráva týká?

Vzkaz Obsah Ovládání Přihlášení Licence