Ako pochopiť Základy Algoritmov
V každodennom živote často vykonávame rôzne činnosti, ktoré majú svoj pevne stanovený postup, či už chceme poskladať nábytok podľa priloženého návodu alebo pripravujeme jedlo. Tento pevne stanovený postup je algoritmus.
Prečo by sme sa mali naučiť algoritmy? Aby sme si vedeli uľahčiť život. Zároveň ak pochopíte algoritmy, ľahšie pochopíte rôzne časti z IT sféry. Veď počítačový program je iba súhrn príkazov, teda algoritmov, spúšťaných za sebou.
V tomto článku sa naučíme, čo sú algoritmy, na príjemnom príklade: Príprava praženice na večeru.
Obsah článku
- Základy algoritmov - úvod článku
- Príprava praženice
- Základné vlastnosti algoritmu ľudskou rečou
- Zápis algoritmov
- Vetvenie a cykly v algoritmoch
- Prečo sú algoritmy dôležité?
- Záver
Príprava praženice
Pri príprave tohto jednoduchého jedla musíme postupovať krok za krokom:
- Rozbiť vajíčka: Najprv musíme rozbiť vajíčka do misky alebo priamo na panvicu.
- Pridať soľ: Následne pridáme soľ a prípadne aj ďalšie korenie podľa chuti.
- Zahriať panvicu: Potom zahrejeme panvicu s trochou oleja alebo masla.
- Miešať: Vajíčka vylejeme na horúcu panvicu a miešame, kým praženica nie je hotová.
- Servírovať: Hotovú praženicu servírujeme na tanier.
Tento postup môžeme už smelo nazvať algoritmom – presne definovanou postupnosťou krokov, ktoré vedú k dosiahnutiu stanoveného cieľa.
V informatike je algoritmus základným stavebným prvkom programovania a tvorby softvéru.
Čo je to teda algoritmus?
Algoritmus je konečná a presne definovaná postupnosť krokov, ktoré riešia určitý problém. Ide teda o presný návod, ako krok za krokom tento problém vyriešiť a dosiahnuť želaný cieľ.
Základné vlastnosti algoritmu ľudskou rečou
Algoritmus:
- má všetky kroky jednoduché: Každý krok v algoritme musí byť jasný a zrozumiteľný, aby ho mohol ktokoľvek vykonať bez najmenších pochybností. Predstavte si, že dávate inštrukcie dieťaťu – až takto jednoduché musia byť jednotlivé kroky.
- skončí sa po konečnom počte krokov: Algoritmus nesmie bežať donekonečna. Musí mať jasne definovaný koniec, po ktorom sa zastaví a dá výsledok. Ako keď dovaríte jedlo podľa receptu. Výsledok varenia je hotové jedlo, na ktoré človek čaká a chce sa ho aj dočkať.
- je použiteľný aj pre rôzne vstupy: Algoritmus by mal fungovať aj pre rôzne vstupné dáta. Príklad: ako keď recept na koláč „funguje“ aj s rôznymi inými druhmi ovocia.
- má v každom kroku určené, čo bude nasledovať: V každom momente algoritmu musí byť jasné, čo sa má robiť ďalej. Nesmie nastať situácia, že vykonávateľ nevie, ktorý krok vykonať. Ako keď v recepte sú kroky jasne očíslované a nasledujú logicky za sebou.
- je opakovateľný: Ak algoritmus spustíme viackrát s rovnakými vstupnými údajmi, musí vždy dať rovnaký výsledok. Ako urobíte praženicu podľa toho istého receptu viackrát a vždy chutí rovnako.
Zápis algoritmov
V informatike sa algoritmy často zapisujú rôznymi spôsobmi – slovným opisom, štruktúrovaným textom, pseudokódom alebo graficky pomocou diagramov vývojových diagramov. Práve vývojový diagram je vhodný na vizualizáciu postupu, pretože umožňuje prehľadné znázornenie rôznych možností a vetvení v riešení problému.
V nasledujúcom kroku si ukážeme príklad vývojového diagramu na prípravu praženice. Pozrite si obrázok nižšie ešte skôr než dočítate celý článok. Sme si istí, že porozumiete jeho podstate aj bez predošlého komentára. Algoritmus, tak ako je zapísaný, začína vpravo hore na pozícii ŠTART a vždy pokračuje v smere šípok.

Vývojové diagramy vo všeobecnosti využívajú štandardizované značky, ktoré reprezentujú jednotlivé kroky algoritmu:
- Elipsa (ovál) – označuje začiatok a koniec algoritmu. Každý algoritmus musí mať jasne definovaný začiatok a koniec.
- Obdĺžniky – predstavujú príkazy alebo zložitejšie procedúry ako napríklad „Priprav si suroviny“ alebo „choď do bufetu“.
- Kosoštvorec – označuje rozhodovací bod (podmienku), napríklad „Máš všetko?“. Ak je odpoveď áno, pokračuje sa jedným smerom, ak nie, pokračuje sa iným smerom. Oba smery musia byť vyriešené. Musí byť definované kadiaľ sa algoritmus má uberať ďalej, nech už pôjde jeho vykonávanie ktoroukoľvek cestou.
- Šípky – určujú smer vykonávania a ukazujú, ktorým krokom sa má algoritmus ďalej uberať.
- Kosodĺžniky (nie sú zobrazené v príklade, ale bežne sa používajú) – predstavujú miesta pre načítanie vstupov (napr. zoznam ingrediencií) a odoslanie výstupu (napr. hotové jedlo, či výsledok zobrazený na monitore počítača, odoslaný na tlačiareň a pod.)
Upozorňujeme, že vložený obrázok predstavuje autentické študentské dielo, ktoré, celkom prirodzene, obsahuje isté formálne chyby (značka pre koniec by mala byť po správnosti umiestnená úplne dole a nie vpravo hore; čiary šípok by mali byť pravouhlé a pod...).
Tieto chyby sme však neopravovali, keďže by sme pokazili autentickosť a zábavnosť diela.
Vetvenie a cykly v algoritmoch
Vetvenie je situácia, keď sa na základe nejakej podmienky rozhodujeme, ktorým smerom sa algoritmus vydá. Vetvenie je ako križovatka. Podmienka je ako dopravná značka, ktorá vám ukazuje, ktorou cestou sa máte vydať. Ak je podmienka (logický výraz) splnená, ide sa jedným smerom. Ak nie je splnená, ide sa druhým smerom. Preto sa takáto štruktúra často označuje ako podmienka (IF-THEN-ELSE). Napríklad: IF (poznáš recept?). Ak áno (THEN), priprav si suroviny. Ak nie (ELSE), zavolaj mame.
Cyklus v algoritme znamená opakovanie určitej časti kódu, kým nie je splnená konkrétna podmienka. V našom príklade cyklus predstavuje otázka „Je to riedke?“. Ak je odpoveď áno, tak treba stále miešať. Ak je odpoveď nie, tak sa z cyklu vyskočí a pokračuje sa ďalej na ďalší krok.
Prečo sú algoritmy dôležité?
Algoritmy sú základom fungovania počítačových programov. Každý softvér, webová stránka alebo mobilná aplikácia je založená na určitých algoritmoch. Dobre navrhnutý algoritmus umožňuje efektívne riešenie problémov s hospodárnym využitím dostupných prostriedkov.
Použitím vývojových diagramov môžeme lepšie pochopiť, ako program funguje, odhaliť možné chyby a zefektívniť jeho fungovanie. Aj keď v bežnom živote o algoritmoch priamo nerozmýšľame, stretávame sa s nimi neustále – od používania navigácie, cez skladanie nábytku až po vyhľadávanie informácií na internete.
Záver
Na vtipnom príklade prípravy praženice sme si ukázali, ako možno vizualizovať akýkoľvek postup pomocou vývojového diagramu. Pochopenie algoritmov nám umožňuje nielen efektívnejšie programovať, ale aj si lepšie organizovať každodenné činnosti. Bez ohľadu na to, či riešime jednoduchý problém, alebo programujeme zložitý systém, algoritmy sú základným kameňom „informatického myslenia“.
Autor: Matúš Formanek
Editácia: Tím BlueNumbers
Späť na hlavnú stránku BlueNumbers
