← Zpět na obsah

Kapitola 9: Různé zápisy posloupnosti příkazů (algoritmu)

Čtyři způsoby zápisu 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
  1. Napusť vodu do konvice.
  2. Zapni konvici a počkej, až se voda uvaří.
  3. Do hrnku vlož čajový sáček.
  4. Zalij sáček horkou vodou.
  5. Počkej 3 minuty.
  6. 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.

Příklad: Zjednodušený vývojový diagram pro uvaření čaje
(Začátek) -> [Napustit vodu] -> [Uvařit vodu] -> [Vložit sáček] -> [Zalít vodou] -> [Počkat 3 minuty] -> [Vyndat sáček] -> (Konec)

3.3. Programovací jazyk

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
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:

Příklad: Algoritmus "Nakresli čtverec" ve Scratchi
Slovní popis:
  1. Opakuj 4x:
  2. - Posuň se o 100 kroků vpřed
  3. - 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)

Výhody blokového programování

Scratch - programování pomocí bloků
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):
  1. Vejdi do výtahu.
  2. Zmáčkni tlačítko s číslem 5.
  3. Počkej, až se dveře otevřou.
  4. Vystup.
Algoritmus 2 (Schody):
  1. Jdi ke schodům.
  2. Vyjdi první patro.
  3. Vyjdi druhé patro.
  4. Vyjdi třetí patro.
  5. Vyjdi čtvrté patro.
  6. 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í

Úkoly pro praxi

  1. 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...).
  2. 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ší.
  3. Ú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:

Rekurze

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
Git workflow - práce s verzemi

* Úkoly pro pokročilé

  1. Word – Pseudokód: Napiš v dokumentu Word pseudokód pro algoritmus: "Najdi nejmenší číslo v seznamu čísel". Použij strukturu FUNKCE, POKUD, CYKLUS, VRAŤ.
  2. 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.
  3. 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×).
  4. 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:

Standardy vývojových diagramů

Existují standardizované symboly (ISO 5807):

Ú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ů
Flowgorithm - tvorba vývojových diagramů

** Úkoly pro maturitní obory

  1. 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.
  2. 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í).
  3. Flowgorithm → Python: Vytvoř ve Flowgorithm jednoduchý algoritmus. Pak ho exportuj do Pythonu (Flowgorithm to umí). Zkopíruj a vysvětli vygenerovaný kód.
  4. 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.
  5. 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.
  6. 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:

Co je GitHub?

GitHub je online platforma pro hostování Git repozitářů. Nabízí:

Instalace Gitu

Windows

  1. Stáhni z git-scm.com
  2. Spusť instalátor, nech výchozí nastavení
  3. Ověř v terminálu: git --version

macOS

brew install git
        

Linux

sudo apt install git
        

Nastavení Gitu

Po instalaci nastav své jméno a email (zobrazí se u commitů):

git config --global user.name "Tvoje Jméno"
git config --global user.email "tvuj@email.cz"
        

Vytvoření účtu na GitHubu

  1. Jdi na github.com
  2. Klikni "Sign up"
  3. Zadej email, heslo, uživatelské jméno
  4. Ověř email
  5. Vyber si bezplatný plán (Free)

Základní příkazy Gitu

Příkaz Popis
git init Vytvoří nový Git repozitář v aktuální složce
git status Zobrazí stav repozitáře (změněné soubory)
git add soubor.py Přidá soubor ke commitu
git add . Přidá všechny změněné soubory
git commit -m "Popis" Uloží změny s popisem
git log Zobrazí historii commitů
git push Nahraje commity na GitHub
git pull Stáhne změny z GitHubu
git clone URL Stáhne existující repozitář

Tvůj první repozitář – krok za krokem

# 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:

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

  1. Instalace: Nainstaluj Git na svůj počítač. Nastav jméno a email. Ověř pomocí git config --list.
  2. GitHub účet: Vytvoř si účet na GitHubu. Přidej profilovou fotku a bio.
  3. První repozitář: Vytvoř repozitář "hello-world". Přidej README.md s popisem. Nahraj na GitHub.
  4. Python projekt: Vytvoř repozitář pro TO-DO list z kapitoly 8. Přidej .gitignore pro Python. Nahraj na GitHub.
  5. Historie: Udělej 3 commity (přidání funkce, oprava, dokumentace). Prohlédni si historii pomocí git log --oneline.
← Zpět na obsah