Vývojový diagram
Jedným z možných zápisov algoritmu je vývojový diagram. Algoritmus znázorňuje graficky pomocou špeciálnych značiek pospájaných šípkami. Zápis je tak často prehľadnejší a jednoznačnejší ako pri čisto slovnej verzii popisu.
Značky /bloky/ vývojových diagramov
Postupne si predstavíme základné značky (bloky) používané v diagramoch...
Začiatok a koniec
- majú tvar oválu
- začiatok je len jeden, obsahuje slovo "začiatok" alebo iné jednoznačné označenie, napríklad "start", vykonávanie algoritmu začína v tomto bloku
- koniec (end) tiež zvyčajne stačí jeden, pri prechádzaní diagramu sa musí dať vždy do tohoto bloku dostať, inak algoritmus nie je konečný
- zo značky pre začiatok vychádza práve jedna šípka, nevchádzajú žiadne
- do značky pre koniec môže vchádzať niekoľko šipiek, nevychádza ani jedna
Načítanie a výpis
- majú tvar kosodĺžnika
- načítanie: ak má algoritmus pracovať s hodnotou (číslom, napríklad dĺžkou strany geometrického útvaru, vekom používateľa, číslom strany v knihe...) treba ju načítať a určiť jej pomenovanie, aby sme s ňou mohli ďalej pracovať
- Ak je napríklad cieľom algoritmu výpočet obvodu štvorca, môžeme si načítať dĺžku jednej strany a označiť si ju písmenom "x" (premennou), ktoré môžeme neskôr používať v rozhodovacích značkách alebo výpisoch. Pri vykonávaní algoritmu sa potom všetky výskyty "x" nahradia konkrétnou načítanou hodnotou. (pozri obrázok). Takto zabezpečíme všeobecnosť algoritmu - možno ho použiť na výpočet obvodu ľubovoľného štvorca.
- vykonanie načítania si predstavte tak, že ak by napríklad algoritmus vykonával počítač, zobrazilo by sa dialógové okno, do ktorého by sme danú hodnotu napísali, teda napríklad by sa zobrazil text "Prosím, zadajte dĺžku strany štvorca." a k nemu by bolo zobrazené okienko, kam možno hodnotu napísať.
- iná predstava vstupu: ak by algoritmus vykonával robot, mohol by sa nás opýtať danú otázku priamo a s našou odpoveďou ďalej pracovať
- výpis: výpisom nám program môže niečo oznámiť, napríklad nás informovať o výsledkoch výpočtov, alebo by nám mohol náš robot niečo povedať
načítanie do premennej x
Príkaz
- má tvar obdĺžnika
- príkaz musí byť pre vykonávateľa algoritmu elementárny, pre človeka by to mohla byť jednoduchá činnosť, pre robota pohyb motora o konkrétny uhol, prípadne posun o nejakú vzdialenosť
- programovacie jazyky sú tvorené obmedzeným počtom príkazov (ale je ich veeeeľa 😛)
Rozhodovanie (vetvenie)
- má tvar kosoštvorca
- pomocou tejto značky možno v algoritme reagovať na výsledok výpočtu (napríklad: algoritmus pokračuje inak, ak je načítané číslo menšie ako 0) alebo vonkajší "vnem" (algoritmus pokračuje podľa toho, či na semafore svieti zelená alebo červená, iný príklad: algoritmus pokračuje podľa toho, či už vrie voda)
- POZOR! musí byť jasné kam bude algoritmus pokračovať, otázku v rozhodovacej značke zvyčajne formulujeme tak, aby bolo odpoveďou áno/nie resp. pravda/nepravda nesmie sa stať, že na otázku položenú v bloku neexistuje šípka, ktorou by sa pokračovalo po zodpovedaní otázky - je to v rozpore s požiadavkou, aby bol algoritmus konečný
- nad šípky vychádzajúce z rozhodovacieho bloku značíme odpoveď na položenú otázku (ten, kto bude algoritmus vykonávať potom už len zodpovie otázku a podľa naznačených odpovedí vie, kam má v algoritme pokračovať)
- z rozhodovacej značky musia vychádzať aspoň dve šípky - ak nevychádzajú, nie je to rozhodovanie 🤓
jednoduché vetvenie
šípok môže vychádzať viac
príklad diagramu
Algoritmus overuje, či sa dá zostrojiť trojuholník s načítanými dĺžkami strán a b c. Špeciálny vzťah, ktorý musí platiť o stranách trojuholníka poznáme ako "trojuholníková nerovnosť" (ak nepoznáš, vygoogli 😛).
príklad vývojového diagramu
Práca na hodine