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.
Ne každý návod je algoritmus. „Uvař něco dobrého“ je přání, ne postup. Ve škole se učí tyto vlastnosti:
| Vlastnost | Co znamená | Čaj |
|---|---|---|
| konečnost | skončí po konečném počtu kroků | jednou čaj dovaříš |
| determinovanost (jednoznačnost) | v každém kroku je jasné, co udělat dál | ne „přidej trochu cukru“, ale „přidej 1 lžičku“ |
| hromadnost (obecnost) | funguje pro celou skupinu stejných úloh, ne pro jednu | postup platí pro každý sáčkový čaj |
| rezultativnost | vede k výsledku (výstupu) | na konci je hotový čaj |
| elementárnost | skládá se z jednoduchých kroků, kterým vykonavatel rozumí | „zapni konvici“ zvládne každý |
Každý algoritmus se dá poskládat jen ze tří základních konstrukcí. Říká se jim řídicí struktury.
Chybí konečnost. Každý cyklus potřebuje podmínku, která jednou přestane platit.
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.
| Značka | Tvar | K čemu je |
|---|---|---|
| mezní značka | ovál (zaoblený obdélník) | začátek a konec algoritmu |
| zpracování | obdélník | vý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čtverec | podmínka se dvěma výstupy: ano / ne |
| spojnice | čára se šipkou | pořadí kroků |
Otoč kartičky a zkus si nejdřív sám říct, k čemu značka slouží.
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.Obdélník je jen pro zpracování a má jeden výstup. Rozhodování má vždy dva.