Vývojový diagram

Skôr ako si porozprávame o vývojových diagramoch, musíme poznať význam slov algoritmus, algoritmické myslenie, program a  príkazy.

Algoritmus je konečná postupnosť definovaných inštrukcií (postupnosť krokov) na splnenie určitej úlohy. Algoritmy môžu byť zapísané vo forme počítačových programov. Logická chyba v algoritme môže viesť k zlyhaniu výsledného programu.

Pojem algoritmu sa často ilustruje na príklade receptu (napr. na upečenie torty), hoci algoritmy sú často oveľa zložitejšie. V algoritmoch sa často niekoľko krokov viacnásobne opakuje, alebo ďalší postup závisí od aktuálneho stavu (vetvenie). Na riešenie tej istej úlohy môže existovať niekoľko rôznych algoritmov s rôznymi postupnosťami inštrukcií. Rôzne algoritmy sa tiež môžu líšiť v množstve času a pamäte potrebných na splnenie úlohy. Každý krok algoritmu musí byť jednoznačne a presne definovaný, v každej situácii musí byť úplne zrejmé, čo a ako sa má vykonať, ako má vykonávanie algoritmu pokračovať. Pretože bežný jazyk zvyčajne neposkytuje úplnú presnosť a jednoznačnosť vyjadrovania, boli pre zápis algoritmov navrhnuté programovacie jazyky, v ktorých má každý príkaz jasne definovaný význam. Vyjadrenie algoritmu v programovacom jazyku sa nazýva program.

Každý program niekto napísal. Ak ho napísal dobre, všetko beží tak, ako má. Ak urobil chybu, na DVD prehrávač sa budeme pravdepodobne iba smutne pozerať, z upečenej torty nás bude bolieť brucho ešte týždeň a v škole bude poriadny chaos. Ten, kto program napísal, bude zadávateľ a ten, kto program vykonáva, bude vykonávateľ. Programy vytvárajú programátori. Oni sú zadávatelia. Vykonávateľom programu je samotný počítač. Tí, ktorí program netvoria, ale ho len využívajú pre svoju zábavu, sa nazývajú užívatelia. Každý užívateľ sa ale musí zmieriť s tým, že program nebude fungovať, ako chce on, ale tak, ako to chcel programátor.

Program má dve časti:

  • dáta (údaje) – to je to, čo program spracováva,
  • príkazy – to je spôsob, akým program dáta spracováva.

Napríklad v recepte na tortu sú dátami prísady, ktoré na jej upečenie potrebujeme a samotný recept je postupnosť príkazov, ktorá opisuje, čo máme s prísadami robiť, aby z nich vznikla torta.

Príkazy delíme:

  • vykonateľné
  • nevykonateľné

Vykonateľnosť resp. nevykonateľnosť príkazu závisí od jeho vykonávateľa. Napr. obyčajný človek sa prstami na nohách ťažko poškrabe na svojej lopatke, ale nejaká „hadia žena“ by to možno zvládla bez väčších problémov.

Príkazy môžeme podľa ich účinku deliť:

  • kladné (konštruktívne)
  • záporné (deštruktívne)
  • neutrálne (nič nerobiace)

Príkazy, ktoré zadávame v programovaní i v živote, by mali byť vykonateľné a kladné!

Algoritmické myslenie:

  • rozumieme schopnosť vytvárať správne algoritmy
  • predpokladať v mysli čo sa stane ak….
  • čo nastane po tom ktorom kroku (operácii)

Vývojový diagram je symbolický algoritmický jazyk, ktorý sa používa pre názorné zobrazenie algoritmu spracovanie informácií a prípadnú stručnú publikáciu programu. Tento jazyk je tvorený presne definovanými symbolmi s ich jednoznačným významom (sémantika slovníku) a pravidlami ako tieto značky vo vzájomnej súvislosti používať (syntax – gramatika). Jeho používanie je vhodné hlavne u začínajúcich programátorov, pretože dovoľuje názorným spôsobom formulovať postup riešenia danej úlohy s vyznačením všetkých jeho možných alternatív. Používa sa však i pri tímovom riešení problému, kedy slúži ako komunikačný prostriedok medzi analytikmi a programátormi. (Analytik na základe vykonávanej analýzy zostaví postup riešenia vo forme vývojového diagramu, programátor potom podľa tohoto diagramu napíše v zodpovedajúcom programovacom jazyku program).

Vývojové diagramy sú tiež vhodným prostriedkom pre publikáciu programov z niekoľkých dôvodov. Napr. je neefektívne publikovať program v niektorom z programovacích jazykov, každý program je dnes dielom, na ktorý sa vzťahuje autorský zákon a je týmto zákonom chránený.

Vývojový diagram predstavuje teda grafické znázornenie logickej štruktúry riešeného problému. Môže byť zostavený tak, že daný problém rieši v obecnej rovine bez zreteľa na špeciálne vlastnosti konkrétneho počítača a programovacieho jazyka. V praxi je však častejšie používaný druhý spôsob, ktorý má priamy vzťah k požívanému počítaču a hlavne možnostiam a vlastnostiam zvoleného programovacieho jazyka.

Niektoré symboly vývojového diagramu: