7. ročník › Informatika › Informatika

Algoritmy s rozhodovaním Nezačaté

0 Vstupný test1 Poučka 2 Vysvetlenie3 Príklady 4 Kvíz5 Test 6–8 Vyhodnotenie9 Výstupný test
Krok 0 — Vstupný test

Skús najprv, čo už vieš. Výsledok = tvoja vstupná úroveň (porovnáš ho s tým, čo budeš vedieť po naučení).

0. Kľúčové fakty

  1. Algoritmus — Algoritmus je presný, konečný postup krokov, ktorým vyriešime nejakú úlohu alebo problém. Každý algoritmus má jasný začiatok, určené poradie krokov a koniec, v ktorom dostaneme výsledok. Bez algoritmu by počítač nevedel, čo má robiť — práve algoritmus je „recept", podľa ktorého program pracuje.

  2. Rozhodovanie (vetvenie) — Vetvenie je časť algoritmu, kde sa postup rozdelí na viac možností podľa toho, či je splnená nejaká podmienka. Vďaka vetveniu sa program nesprával vždy rovnako, ale vie reagovať na rôzne situácie a vstupy. Je to jeden zo základných stavebných prvkov algoritmov popri postupnosti (sekvencii) a cykle (opakovaní).

  3. Príkaz ak – tak (if – then) — Konštrukcia „ak – tak" vykoná určitý krok len vtedy, keď je podmienka splnená (pravdivá). Ak podmienka splnená nie je, tento krok sa preskočí a pokračuje sa ďalej. Príklad: ak je číslo väčšie ako 100, tak vypíš „veľké číslo" — výpis sa stane iba pri číslach nad 100.

  4. Príkaz ak – tak – inak (if – then – else) — Rozšírené vetvenie má dve vetvy: jednu pre prípad, keď je podmienka pravdivá, a druhú (inak) pre prípad, keď je nepravdivá. Vždy sa vykoná práve jedna z dvoch vetiev, nikdy obe naraz. Príklad: ak je vek ≥ 18, tak vypíš „dospelý", inak vypíš „neplnoletý".

  5. Podmienka — Podmienka je tvrdenie, ktoré môže byť buď pravdivé, alebo nepravdivé, a podľa jeho výsledku sa algoritmus rozhodne, ktorou cestou pokračovať. Najčastejšie porovnáva hodnoty, napríklad „je vek väčší ako 12?". Správne sformulovaná podmienka je kľúčová — chybná podmienka vedie k nesprávnemu rozhodnutiu programu.

  6. Porovnávacie (relačné) operátory — Na zápis podmienok používame operátory porovnania: rovná sa (=), nerovná sa (≠), väčšie (>), menšie (<), väčšie alebo rovné (≥) a menšie alebo rovné (≤). Pomocou nich vieme porovnať dve čísla alebo hodnoty a získať výsledok pravda/nepravda. Napríklad podmienka „body ≥ 90" je pravdivá, keď žiak získal aspoň 90 bodov.

  7. Logické hodnoty pravda a nepravda — Každá podmienka má len dva možné výsledky: pravda (true) alebo nepravda (false). Tieto dve hodnoty rozhodujú o tom, ktorá vetva algoritmu sa vykoná. Práca s pravdou a nepravdou je základom všetkého rozhodovania v informatike a nazýva sa logika.

  8. Logické spojky (a, alebo, nie) — Niekedy potrebujeme spojiť viac podmienok naraz pomocou spojok „a" (oba musia platiť), „alebo" (stačí jedna) a „nie" (otočí pravdivosť). Napríklad ak je vek ≥ 13 a má súhlas rodiča, tak povoľ registráciu. Vďaka logickým spojkám vieme zapísať aj zložitejšie rozhodnutia.

  9. Vnorené vetvenie — Vnorené vetvenie znamená, že vo vnútri jednej vetvy je ďalšie rozhodovanie (ak vo vnútri ak). Takto vieme postupne rozdeliť situáciu na viac úrovní, napríklad pri prevode bodov na známky 1 až 5. Treba dávať pozor na poradie podmienok, aby sa každý prípad vyhodnotil správne.

  10. Vývojový diagram — Vývojový diagram je grafické znázornenie algoritmu pomocou symbolov: ovál pre začiatok a koniec, obdĺžnik pre príkaz a kosoštvorec (romb) pre rozhodovanie. Z kosoštvorca vychádzajú dve šípky označené „áno" a „nie", ktoré ukazujú, kadiaľ ísť podľa výsledku podmienky. Diagram pomáha pochopiť a naplánovať algoritmus skôr, než ho zapíšeme do programu.

  11. Testovanie a ladenie (debugovanie) — Testovanie znamená vyskúšať algoritmus na rôznych vstupoch a overiť, či dáva správne výsledky. Dôležité je vyskúšať aj hraničné a netypické prípady, napríklad presne hodnotu 18 pri podmienke veku. Ak nájdeme chybu, opravíme ju — tomuto hľadaniu a odstraňovaniu chýb sa hovorí ladenie alebo debugovanie.

  12. Hraničné hodnoty — Hraničné hodnoty sú čísla presne na okraji podmienky, napríklad pri „body ≥ 80" je hranicou číslo 80. Práve na hraniciach vznikajú najčastejšie chyby, lebo si pomýlime > a ≥ alebo < a ≤. Preto pri testovaní algoritmu vždy skúšame hodnoty tesne pod hranicou, na hranici a tesne nad ňou.

1. Poučka

Vetvenie (rozhodovanie) je časť algoritmu, v ktorej sa podľa splnenia podmienky rozhodne, ktoré kroky sa vykonajú. Zapisuje sa príkazom ak – tak (prípadne ak – tak – inak). Podmienka môže byť splnená (pravda), alebo nesplnená (nepravda). Po napísaní algoritmu treba otestovať jeho správnosť — vyskúšať ho na rôznych vstupoch vrátane krajných hodnôt.

2. Vysvetlenie

Algoritmus je presný postup, ako vyriešiť úlohu. Niekedy sa však postup musí rozhodnúť — podľa situácie urobiť jednu alebo druhú vec.

Postupuj takto: 1. Polož otázku (podmienku) — niečo, čo je buď pravda, alebo nepravda. Napr. „Je číslo väčšie ako 10?" 2. ak je podmienka pravda, tak sa vykonajú kroky v časti tak. 3. inak (ak je podmienka nepravda) sa vykonajú iné kroky — alebo sa nevykoná nič. 4. Po vetvení algoritmus pokračuje ďalej.

Nakoniec algoritmus otestuj: zadaj rôzne vstupy a over, či dáva správny výsledok. Skúšaj aj krajné (hraničné) hodnoty — napr. presne číslo 10, nulu, alebo prázdny vstup. Ak nájdeš chybu, oprav ju (to sa volá ladenie).

3. Príklady a prečo je to dôležité

  1. Známka z testu: ak je počet bodov ≥ 90, tak napíš „výborný", inak napíš „skús to nabudúce". (vetvenie ak – tak – inak)
  2. Vstup na atrakciu: ak je výška ≥ 120 cm, tak pustiť na horskú dráhu. (jednoduché ak – tak)
  3. Párne číslo: ak je zvyšok po delení 2 rovný 0, tak číslo je párne, inak je nepárne.
  4. Semafor robota: ak svieti zelená, tak choď; ak svieti červená, tak stoj. (viac podmienok)
  5. Dáždnik ráno: ak prší, tak vezmi dáždnik, inak ho nechaj doma. (rozhodnutie z bežného života)

Prečo je to dôležité: Bez vetvenia by program vždy robil to isté a nevedel by reagovať na situáciu. Vetvenie používa každá aplikácia, hra či robot — vďaka nemu sa počítač „rozhoduje". A testovanie je dôležité preto, aby sme odhalili chyby skôr, než program použijú ľudia (napr. aby hra nepustila na atrakciu niekoho príliš malého).

Krok 4 — Kvíz (over si pochopenie)
Krok 5 — Test (precvič sa)
  1. Napíš slovami algoritmus s vetvením: ak je vonku menej ako 10 °C, tak obleč si bundu, inak obleč si mikinu.
  2. Daný je algoritmus: ak je číslo deliteľné 2, tak napíš „párne", inak napíš „nepárne". Aký bude výstup pre vstupy 7, 8 a 0?
  3. Zostav podmienku, ktorá rozhodne, či žiak prešiel testom, keď na úspech treba aspoň 50 bodov.
  4. Nájdi chybu: ak vek < 18, tak „dospelý", inak „dieťa". Oprav vetvenie tak, aby dávalo správny výsledok.
  5. Otestuj algoritmus z úlohy 3 na vstupoch 49, 50 a 51 a zapíš, čo má vyjsť pri každom z nich.

Cvičné príklady. Reálne testové otázky doplníme po overení.

Krok 9 — Výstupný test (zvládol / nezvládol)

Záverečný hodnotený test témy. Výsledok uvidí aj rodič. Zvládnutie = aspoň 80 %.

← Späť na katalóg