🧭 Algoritmus a vývojový diagram

Recept na čaj

O čem to je

Ráno si děláš čaj. Napustíš vodu, zapneš konvici, počkáš, až se voda uvaří, a zaliješ sáček. Kroky jdou v pevném pořadí a na konci máš čaj. Přesně takhle vypadá algoritmus.

Počítač nic nedomyslí. Udělá jen to, co mu přesně a krok za krokem popíšeš. Než začneš psát program, musíš si umět rozmyslet algoritmus. Programovací jazyk je pak jen způsob, jak ho zapsat.

Nové pojmy

AlgoritmusPřesný návod, jak v konečném počtu kroků vyřešit úlohu. Každý krok je jasný a vykonavatel (člověk nebo počítač) ví, co má udělat.Postup, jak zjistit větší ze dvou čísel: porovnej je a vypiš to, které je větší.
Vstup a výstup algoritmuVstup jsou data, která algoritmus dostane na začátku. Výstup je výsledek, který vydá na konci.Algoritmus pro obsah obdélníku: vstup = délky stran a, b; výstup = obsah a · b.
ProgramAlgoritmus zapsaný v programovacím jazyce, kterému rozumí počítač (například Python).Recept v kuchařce je algoritmus. Kdyby byl napsaný pro kuchyňského robota, byl by to program.

Co musí správný algoritmus splňovat

Ne každý návod je algoritmus. „Uvař něco dobrého“ je přání, ne postup. Ve škole se učí tyto vlastnosti:

VlastnostCo znamenáČaj
konečnostskončí po konečném počtu krokůjednou čaj dovaříš
determinovanost (jednoznačnost)v každém kroku je jasné, co udělat dálne „přidej trochu cukru“, ale „přidej 1 lžičku“
hromadnost (obecnost)funguje pro celou skupinu stejných úloh, ne pro jednupostup platí pro každý sáčkový čaj
rezultativnostvede k výsledku (výstupu)na konci je hotový čaj
elementárnostskládá se z jednoduchých kroků, kterým vykonavatel rozumí„zapni konvici“ zvládne každý

Tři stavební kameny

Každý algoritmus se dá poskládat jen ze tří základních konstrukcí. Říká se jim řídicí struktury.

Posloupnost (sekvence)Kroky jdou jeden za druhým v daném pořadí.Napusť vodu → zapni konvici → zalij sáček.
Větvení (podmínka)Algoritmus se rozhodne podle podmínky, kterou cestou půjde dál.Pokud chceš sladký čaj, přidej cukr, jinak nic.
Cyklus (opakování)Některé kroky se opakují, dokud platí podmínka, nebo daný počet krát.Dokud se voda nevaří, čekej.
Napiš algoritmus, který zjistí, jestli je číslo sudé.
Vstup: celé číslo n. 1) Vyděl n dvěma a zjisti zbytek. 2) Pokud je zbytek 0, vypiš „sudé“. 3) Jinak vypiš „liché“. Výstup: slovo sudé/liché. Je to posloupnost s jedním větvením.
Je postup „Míchej polévku, dokud nebude dobrá“ algoritmus?
Není. Chybí determinovanost: „dobrá“ není jednoznačná podmínka. Navíc nemusí platit konečnost: kdyby polévka nikdy „dobrá“ nebyla, míchal bys donekonečna. Správně: „Míchej 5 minut“ nebo „Míchej, dokud teplota nedosáhne 90 °C“.
✗Postup „Opakuj: přičti 1 k číslu x“ je algoritmus.
✓Bez podmínky ukončení to není algoritmus, protože nikdy neskončí.

Chybí konečnost. Každý cyklus potřebuje podmínku, která jednou přestane platit.

Algoritmus je přesný, konečný a obecný postup řešení úlohy. Skládá se z posloupnosti, větvení a cyklů. Program je algoritmus zapsaný v programovacím jazyce.

Vývojový diagram

O čem to je

Návod k sestavení skříně z obchodu je skoro celý z obrázků. Obrázek pochopíš rychleji než dlouhý text. Algoritmy se také kreslí. Nejznámější kresba je vývojový diagram.

Diagram se kreslí, než začneš programovat. Na papíře snadno uvidíš chybu v rozhodování nebo cyklus, který nikdy neskončí. Programátoři i učitelé ho používají, protože mu rozumí lidé bez ohledu na programovací jazyk.

Nové pojmy

AlgoritmusPřesný postup řešení úlohy v konečném počtu jednoznačných kroků.Postup výpočtu průměru tří známek.
Vývojový diagramGrafický zápis algoritmu. Kroky jsou značky (obdélník, kosočtverec…) a pořadí určují šipky. Značky popisuje norma ČSN ISO 5807.Diagram, který načte věk a rozhodne, jestli je člověk plnoletý.
SpojniceČára se šipkou mezi značkami. Ukazuje, kterým krokem se pokračuje.Šipka z „Načti a“ vede do „Načti b“.

Značky

ZnačkaTvarK čemu je
mezní značkaovál (zaoblený obdélník)začátek a konec algoritmu
zpracováníobdélníkvýpočet nebo přiřazení, např. s = a + b
vstup/výstup (data)rovnoběžník (kosodélník)načtení nebo vypsání dat
rozhodováníkosočtverecpodmínka se dvěma výstupy: ano / ne
spojnicečára se šipkoupořadí kroků
  • Ovál – začátek / konec
  • Obdélník – zpracování (výpočet)
  • Rovnoběžník – vstup / výstup dat
  • Kosočtverec – rozhodování (podmínka)
  • Šipka – pořadí kroků

Otoč kartičky a zkus si nejdřív sám říct, k čemu značka slouží.

Jak nakreslit diagram

Nakresli ovál „Začátek“.
Rovnoběžníkem načti vstupy (např. „Načti věk“).
Obdélníky zapiš výpočty v pořadí, jak jdou po sobě.
Kde se rozhoduješ, nakresli kosočtverec s podmínkou a dvěma šipkami „ano“ a „ne“.
Cyklus nakresli jako šipku, která se vrací zpět nad podmínku.
Rovnoběžníkem vypiš výsledek a skonči oválem „Konec“.
Popiš diagram, který načte věk a vypíše „plnoletý“, nebo „neplnoletý“.
Ovál „Začátek“ → rovnoběžník „Načti věk“ → kosočtverec „věk ≥ 18?“. Větev ano → rovnoběžník „Vypiš plnoletý“. Větev ne → rovnoběžník „Vypiš neplnoletý“. Obě větve se spojí → ovál „Konec“.
Popiš diagram, který sečte čísla 1 až 10.
Začátek → obdélník s = 0, i = 1 → kosočtverec „i ≤ 10?“. Ano → obdélník s = s + i → obdélník i = i + 1 → šipka zpět ke kosočtverci. Ne → rovnoběžník „Vypiš s“ → Konec. Vypíše 55. Šipka zpět nad podmínku je cyklus.
✗Podmínku „je x > 0?“ nakreslím do obdélníku.
✓Podmínka patří do kosočtverce, ze kterého vedou dvě šipky (ano/ne).

Obdélník je jen pro zpracování a má jeden výstup. Rozhodování má vždy dva.

Vývojový diagram kreslí algoritmus značkami: ovál začátek/konec, obdélník zpracování, rovnoběžník vstup/výstup, kosočtverec rozhodování. Šipka zpět nad podmínku tvoří cyklus.