Algoritmy se skládají z příkazů, které určují, co má počítač udělat (vypiš znak A, nakresli jablko, popojdi dopředu). Při programování je proto potřeba vědět, které příkazy máme k dispozici a jaký je jejich přesný význam. Významnou skupinou příkazů jsou příkazy pro vstup a výstup, které umožňují programu interagovat se světem.

Jednotlivé příkazy pak skládáme do posloupností, a tím výtváříme složitější programy. Důležité je pořadí příkazů – různé pořadí může vést k výrazně odlišnému chování (pokud se otočíme doprava a uděláme krok vpřed, dojdeme jinam, než když nejprve uděláme krok vpřed a teprve potom se otočíme). Posloupnosti příkazů můžeme navíc obalovat do bloků, které můžeme vykonávat opakovaně nebo podmíněně pomocí složených příkazů (tomu se budeme věnovat v tématu cykly a podmínky).

Tipy k procvičování

Algoritmické myšlení se nejlépe procvičuje prakticky tvorbou programů. Zkušení programátoři píší programy v textových programovacích jazycích jako je například Python. Pro začátečníky je ale lepší začít s grafickým programování pomocí bloků, protože u toho se nemusí řešit detaily zápisu, ale mohou se soustředit na samotné algoritmy.

  • Jako rozcvička a cvičení pro úplné začátečníky je vhodná Šipkovaná.
  • Typický způsob procvičování základů algoritmického myšlení spočívá v interaktivním řešení úloh formou blokového programování. To nabízí cvičení Želví grafika, ProgMalování, Stavitel.
  • Další cvičení (Rozhodovačka, Pexeso, Přesouvání, Krok po kroku) nabízí cílenější procvičení dílčích dovedností. Tato cvičení nemusí být tak atraktivní jako tvorba vlastních programů, ale jsou velmi užitečná pro důkladné pochopení principů.
  • Konkrétní náměty na postup procvičování nabízí výukový modul Algoritmické myšlení a základy blokového programování.

Programy se skládají z jednotlivých příkazů. V našich úlohách na procvičování můžete například potkat:

  • příkazy pro vypsání textu nebo nakreslení jednoduchého obrázku: vypiš, nakresli,
  • příkazy pro pohyb (dopředu, zatočit doprava),
  • provedení kouzla (vyčaruj klobouk, změň na žábu).

Při praktickém programování používáme například příkazy pro vypsání textu na monitor, vykreslení obrázku, načtení informace ze souboru nebo uložení výsledku výpočtu do paměti počítače.

Z dílčích příkazů následně skládáme programy pomocí posloupností příkazů, opakování, podmínek a dalších metod.

Příkazy vstupu a výstupu umožňují programům interagovat se světem. Základní průběh výpočtu obsahuje posloupnost vstup → zpracování → výstup. Programy ale můžou obsahovat více příkazů vstupu i výstupu. Ve hře se po každém stisknutí šipky (vstup) vykreslí nová poloha ovládané postavy (výstup).

Příkazy vstupu

Příkazy vstupu získávají data ke zpracování. Vstup lze načítat buď od uživatele skrze různá vstupní zařízení (např. myš, klávesnice, dotykový displej), ze souboru uloženého v počítači (např. uložený stav hry), nebo ze senzorů vnímajících okolní prostředí (např. vzdálenost robota od překážky, zjištění barvy políčka, detekce hrany v Plošinovce).

Příkazy pro načítání vstupu typicky čekají na načtení dat (např. dokud uživatel nezadá odpověď), teprve potom program pokračuje dalším příkazem. Alternativou je definovat kód, který se spustí při určité vstupní události (např. kliknutí myši), toho se často využivá v hrách (i v Plošinovce) a jiných grafických aplikacích.

Příkazy výstupu

Příkazy výstupu předávají výsledek zpracování. Výstup lze předat buď uživateli skrze různá výstupní zařízení (monitor, reproduktor), uložit do souboru pro pozdější využití (např. uložení aktuálního stavu hry), nebo provedením akcí stroje vykonávajícího program (např. pohyb robota). Výstup může mít různou formu, například text (výpis na obrazovku), grafika (vykreslení herní scény), nebo zvuk (varovné pípnutí).

Programy s vstupem a výstupem

Ne všechny příkazy jsou vstupní či výstupní. Například následující program má 2 příkazy vstupu (načti), 4 příkazy výstupu (vypiš) a 1 příkaz pro zpracování načtených dat (nastav), který není ani vstupní, ani výstupní.

Některé programy nemusí mít žádný vstup – dělají pokaždé to samé. (Například programy v želví grafice kreslí vždy jeden konkrétní obrázek.) Všechny užitečné programy však mají nějaký výstup.

Základním krokem jakéhokoliv algoritmu je provádění posloupnosti akcí v předepsaném pořadí. Pořadí, v jakém akce provádíme, je důležité. Někdy je to úplně jasné. Když připravujeme palačinky, musíme nejdříve těsto zamíchat, a až potom dát na pánvičku. Kdybychom pořadí akcí prohodili, nedopadlo by to příliš palačinkově. Podobně to dopadne, když chystáme program pro robota. Pokud se robot nejdřív otočí a pak udělá krok, dopadne to jinak, než když udělá krok a pak se otočí.

Význam pořadí akcí je dobře vidět třeba ve cvičení ProgMalování, kde je velmi důležité, který obrázek nakreslíme dříve a který později:

Pořadí příkazů zapisujeme v programech stejně jako při psaní běžného textu: odshora dolů (případně zleva doprava).

Kromě jednoduchých příkazů (vypiš, jdi dopředu, zatoč) existují příkazy složené (opakuj, pokud), které umožňují kombinovat více příkazů dohromady a přehledně strukturovat kód do bloků. (V blokovém programování máme „blok“ pro každý příkaz, v textových programovacích jazycích se pojem „blok“ používá pouze pro složené příkazy.)

Využití složených příkazů

Složené příkazy se používají hlavně k řízení průběhu výpočtu (např. opakování příkazů, podmíněné příkazy. Lze je také využít na nastavení dočasného kontextu (např. soubor pro zápis dat, barva písma).

Struktura bloků

Složené příkazy mají většinou hlavičku a tělo. Tělo je libovolná posloupnost příkazů (např. vypiš A). Hlavička pak specifikuje, jak se tyto příkazy budou vykonávat (např. opakuj 3×). Bloky lze do sebe vnořovat – uvnitř bloku (složeného příkazu) může být další blok (složený příkaz) . V následujícím programu nastavuje vnější blok tučné písmo, vnořený (vnitřní) blok nastavuje žluté písmo. Písmena B a C jsou žluté i tučné.

Vymezení bloků

Důležité je správné určení, které příkazy jsou součástí těla bloku a které jsou už mimo něj. Různé programovací jazyky využívají různé přístupy k vymezení začátku a konce těla bloku, dva nejčastější způsoby jsou odsazení pomocí mezer a složené závorky. V následujícím programu jsou výpis A a B součástí bloku s tučným písmem (jsou odsazené), výpis C už je mimo něj (není odsazený).

V pokročilé informatice se rozlišuje souběžnost a paralelismus, zde však do těchto detailů nebudeme zacházet. Tyto pojmy označují souběh více dějů současně. To je pochopitelně něco, co se ve světě kolem nás děje neustále. Pokud se však snažíme vymýšlet algoritmická řešení problémů, je souběžnost většinou oříšek. Není totiž vůbec jednoduché souběh více událostí správně naplánovat.

Pro trénink přemýšlení o souběžnosti využijeme především úlohy na čtverečkované mřížce, kde se současně pohybuje několik agentů.

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