Kapitola 9: Různé zápisy posloupnosti příkazů (algoritmu)
Čtyři způsoby zápisu algoritmu
1. Úvod: Mnoho cest vede k cíli
Představ si, že chceš kamarádovi popsat cestu k tobě domů. Můžeš mu to říct slovy ("Jdi rovně, pak u obchodu zahni doprava..."). Můžeš mu to nakreslit jako mapu. Nebo mu můžeš dát seznam přesných instrukcí. Všechny tyto způsoby popisují to samé – jak se dostat k cíli. V informatice se takovému postupu říká algoritmus a také ho můžeme zapsat různými způsoby.
2. Co je to algoritmus? (Opakování)
Algoritmus je přesný postup nebo návod, jak vyřešit nějaký problém. Je to jako recept na vaření – když dodržíš všechny kroky ve správném pořadí, dostaneš správný výsledek.
3. Různé způsoby zápisu algoritmu
Stejný postup můžeme popsat různými způsoby. Každý se hodí pro něco jiného.
3.1. Slovní popis (přirozený jazyk)
Je to nejjednodušší způsob, jak popsat postup. Používáme běžná slova a věty.
Příklad: Algoritmus pro uvaření čaje slovy
Napusť vodu do konvice.
Zapni konvici a počkej, až se voda uvaří.
Do hrnku vlož čajový sáček.
Zalij sáček horkou vodou.
Počkej 3 minuty.
Vyndej sáček a podle chuti oslaď.
3.2. Vývojový diagram
Je to grafický způsob zápisu. Používáme různé tvary (obdélníky, kosočtverce) spojené šipkami, které ukazují, jak postupovat. Je to přehledné a snadno se v tom orientuje.
Toto je způsob, jakým dáváme instrukce přímo počítači. Používáme k tomu speciální jazyky (např. Python, Java, C++), kterým počítač rozumí. Pro začátečníky existují i jednodušší, blokové programovací jazyky (např. Scratch), kde se příkazy skládají jako kostky lega.
Ukázka vývojového diagramu
3.4. Blokové programování ve Scratchi
Scratch je speciální programovací prostředí, kde se algoritmy zapisují pomocí barevných bloků, které se do sebe zapadají jako puzzle. Je to ideální způsob, jak začít s programováním!
Co je Scratch?
Scratch je vizuální programovací jazyk vytvořený na Massachusetts Institute of Technology (MIT). Místo psaní kódu přetahujete a spojujete barevné bloky, které představují jednotlivé příkazy.
Jak začít:
🌐 Otevři webový prohlížeč a jdi na scratch.mit.edu
📝 Můžeš používat Scratch přímo v prohlížeči (není potřeba nic instalovat!)
👤 Zaregistruj se zdarma, pokud chceš své projekty ukládat
Příklad: Algoritmus "Nakresli čtverec" ve Scratchi Slovní popis:
Opakuj 4x:
- Posuň se o 100 kroků vpřed
- Otoč se doprava o 90 stupňů
Ve Scratchi to vypadá jako barevné bloky:
🟡 Když se klikne na 🏴 (žlutý blok - události)
🟣 Opakuj 4x (fialový blok - cykly)
🔵 Posuň se o 100 kroků (modrý blok - pohyb)
🔵 Otoč se doprava o 90 stupňů (modrý blok - pohyb)
✅ Vidíš hned výsledek – tvá postava (sprite) se okamžitě pohybuje
✅ Bloky jsou barevně rozdělené – modrá = pohyb, fialová = cykly, zelená = vzhled atd.
✅ Učíš se logiku programování – pak je snadné přejít k textovým jazykům
Scratch - programování pomocí bloků
4. Dva různé algoritmy, jeden cíl
Důležité je pochopit, že ke stejnému výsledku se často můžeme dostat různými cestami. Jeden problém může mít více správných řešení (algoritmů).
Příklad: Jak se dostat do 5. patra? Algoritmus 1 (Výtah):
Vejdi do výtahu.
Zmáčkni tlačítko s číslem 5.
Počkej, až se dveře otevřou.
Vystup.
Algoritmus 2 (Schody):
Jdi ke schodům.
Vyjdi první patro.
Vyjdi druhé patro.
Vyjdi třetí patro.
Vyjdi čtvrté patro.
Vyjdi páté patro.
Oba algoritmy vedou ke stejnému cíli (dostat se do 5. patra), ale používají úplně jiný postup. Jeden je rychlejší, druhý je zase zdravější.
Úprava algoritmu pro podobný problém
Když už máme hotový algoritmus, často ho můžeme snadno upravit pro řešení podobného problému.
Příklad: Máme algoritmus pro uvaření černého čaje. Jak ho upravíme pro uvaření ovocného čaje? Většina kroků zůstane stejná, jen v kroku 3 použijeme sáček s ovocným čajem a v kroku 5 možná budeme čekat déle, třeba 5 minut.
Člověk a digitální svět
Schopnost číst a rozumět různým typům algoritmů je v digitálním světě klíčová. Ať už sledujete recept na vaření na YouTube, skládáte nábytek podle návodu, nebo se snažíte pochopit, jak funguje nějaká aplikace, vždy se setkáváte s algoritmy. Rozpoznání, že různé postupy mohou vést ke stejnému cíli, vám dává svobodu vybrat si ten nejlepší pro vás a přizpůsobit si ho podle svých potřeb.
Otázky k zamyšlení
Který způsob zápisu algoritmu ti přijde nejpřehlednější a proč?
Vymysli dva různé algoritmy, jak si uklidit pokoj.
Proč je důležité, aby byly kroky v algoritmu ve správném pořadí? Co by se stalo, kdybys v receptu na palačinky nejdříve rozbil vajíčko na rozpálenou pánev a až pak přidal mouku?
Úkoly pro praxi
Návod pro robota: Napiš slovní návod (algoritmus) pro robota, jak si namazat chleba s máslem. Musíš být velmi přesný! (Např. 1. Vezmi nůž do pravé ruky. 2. Otevři krabičku s máslem. 3. Naber nožem máslo...).
Cesta do jídelny: Nakresli dva různé modely (např. slovní popis a jednoduchou mapku), jak se dostat z vaší třídy do školní jídelny. Porovnej, který model je pro koho lepší.
Úprava receptu: Najdi jednoduchý recept (např. na kakao). Napiš ho jako seznam kroků. Poté ho zkus upravit tak, aby výsledkem bylo ledové kakao. Které kroky jsi musel změnit nebo přidat?
* Rozšíření pro pokročilé
Pseudokód
Pseudokód je způsob zápisu algoritmu, který kombinuje přirozený jazyk s programátorskou strukturou. Je čitelnější než kód, ale přesnější než slovní popis:
FUNKCE NajdiMaximum(a, b, c)
maximum = a
POKUD b > maximum TAK
maximum = b
KONEC POKUD
POKUD c > maximum TAK
maximum = c
KONEC POKUD
VRAŤ maximum
KONEC FUNKCE
Strukturované programování
Každý algoritmus lze zapsat pomocí tří základních struktur:
Sekvence: Příkazy se provádějí za sebou (krok 1, krok 2, krok 3...)
Větvení: Rozhodování na základě podmínky (IF-THEN-ELSE)
Rekurze je technika, kdy funkce volá sama sebe. Příklad: výpočet faktoriálu (5! = 5 × 4 × 3 × 2 × 1).
Git workflow - práce s verzemi
* Úkoly pro pokročilé
Word – Pseudokód: Napiš v dokumentu Word pseudokód pro algoritmus: "Najdi nejmenší číslo v seznamu čísel". Použij strukturu FUNKCE, POKUD, CYKLUS, VRAŤ.
Excel – Implementace algoritmu: Vytvoř v Excelu tabulku s 10 náhodnými čísly (použij =NÁHČÍSLO()). V další buňce použij funkci =MIN() pro nalezení minima. Pak zkus napsat vlastní vzorec, který porovnává čísla krok po kroku.
Scratch – Všechny tři struktury: Vytvoř ve Scratchi program, který demonstruje všechny tři struktury: sekvenci (nakresli 3 čáry), větvení (zeptej se "Ano/Ne" a reaguj), cyklus (opakuj 10×).
Scratch – Rekurze: Vytvoř ve Scratchi blok "Faktoriál", který vypočítá faktoriál čísla. Použij rekurzi (blok volá sám sebe s menším číslem).
** Rozšíření pro maturitní obory
Podrobně: Způsoby zápisu algoritmů
Každý způsob zápisu má své výhody:
Slovní popis: Pro komunikaci s neodborníky, méně přesný.
Pseudokód: Kompromis mezi čitelností a přesností.
Vývojový diagram: Vizuální, přehledný, dobrý pro složité větvení.
Programovací jazyk: Přesný, spustitelný, ale vyžaduje znalost syntaxe.
Standardy vývojových diagramů
Existují standardizované symboly (ISO 5807):
Ovál/Elipsa: Terminál (START, END)
Obdélník: Proces (akce, výpočet)
Kosočtverec: Rozhodnutí (podmínka)
Rovnoběžník: Vstup/výstup dat
Válec: Databáze
Obdélník s dvojitým okrajem: Podprogram
Úvod do Pythonu
Python je populární programovací jazyk, který je čitelný a vhodný pro začátečníky:
# Základní program v Pythonu
jmeno = input("Jak se jmenuješ? ")
print("Ahoj, " + jmeno + "!")
# Podmínka
vek = int(input("Kolik ti je let? "))
if vek >= 18:
print("Jsi plnoletý.")
else:
print("Ještě nejsi plnoletý.")
Flowgorithm - tvorba vývojových diagramů
** Úkoly pro maturitní obory
Flowgorithm – Převod na pseudokód: Vytvoř ve Flowgorithm algoritmus pro výpočet průměru 5 čísel. Pak ho přepiš do pseudokódu ve Wordu.
Flowgorithm – Lichost/sudost: Vytvoř algoritmus, který načte číslo a určí, zda je liché nebo sudé. Použij operátor modulo (zbytek po dělení).
Flowgorithm → Python: Vytvoř ve Flowgorithm jednoduchý algoritmus. Pak ho exportuj do Pythonu (Flowgorithm to umí). Zkopíruj a vysvětli vygenerovaný kód.
PowerPoint – Způsoby zápisu: Vytvoř prezentaci "4 způsoby zápisu algoritmu" (10-12 snímků). Pro každý uveď: popis, příklad, výhody, nevýhody, kdy použít.
Word – Dokumentace algoritmu: Vyber algoritmus (např. lineární vyhledávání). Zdokumentuj ho všemi 4 způsoby: slovní popis, pseudokód, vývojový diagram (nakresli), Python kód.
Canva – Tahák symbolů: Vytvoř v Canvě jednostránkový tahák symbolů vývojových diagramů (A4). Každý symbol s názvem a příkladem použití.
*** Rozšíření pro IT obory
Jako budoucí IT specialista musíš ovládat Git – systém pro správu verzí kódu. V této kapitole se naučíš základy Gitu a GitHubu.
Co je Git?
Git je distribuovaný systém pro správu verzí. Umožňuje:
Sledovat historii všech změn v kódu
Vrátit se k jakékoli předchozí verzi
Spolupracovat s dalšími vývojáři
Pracovat na více funkcích paralelně (větve)
Co je GitHub?
GitHub je online platforma pro hostování Git repozitářů. Nabízí:
# 1. Vytvoř složku projektu a přejdi do ní
mkdir muj-projekt
cd muj-projekt
# 2. Inicializuj Git
git init
# 3. Vytvoř soubor README.md
echo "# Můj první projekt" > README.md
# 4. Přidej soubor ke commitu
git add README.md
# 5. Vytvoř commit
git commit -m "Počáteční commit - přidán README"
# 6. Na GitHubu: Vytvoř nový repozitář (zelené tlačítko "New")
# - Nezaškrtávej "Add a README file"!
# 7. Propoj lokální repo s GitHubem
git remote add origin https://github.com/tvoje-jmeno/muj-projekt.git
# 8. Nahraj na GitHub
git branch -M main
git push -u origin main
Struktura repozitáře
Typický projekt obsahuje:
README.md – Popis projektu, instalace, použití
.gitignore – Soubory, které Git ignoruje
LICENSE – Licence projektu
src/ – Zdrojový kód
docs/ – Dokumentace
tests/ – Testy
Co je .gitignore?
Soubor .gitignore říká Gitu, které soubory má ignorovat:
# .gitignore pro Python projekt
# Virtuální prostředí
venv/
.env
# Cache Pythonu
__pycache__/
*.pyc
# IDE nastavení
.vscode/
.idea/
# Lokální konfigurace
config.local.py
secrets.py
*** Praktické úkoly pro IT obory
Instalace: Nainstaluj Git na svůj počítač. Nastav jméno a email. Ověř pomocí git config --list.
GitHub účet: Vytvoř si účet na GitHubu. Přidej profilovou fotku a bio.
První repozitář: Vytvoř repozitář "hello-world". Přidej README.md s popisem. Nahraj na GitHub.
Python projekt: Vytvoř repozitář pro TO-DO list z kapitoly 8. Přidej .gitignore pro Python. Nahraj na GitHub.
Historie: Udělej 3 commity (přidání funkce, oprava, dokumentace). Prohlédni si historii pomocí git log --oneline.