Algoritmus

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání


Algoritmus

Algoritmus znamená proces alebo súbor pravidiel ktoré sa majú dodržiavať pri operáciach alebo riešení problémov. Algoritmus sa preto týka súboru pravidiel,pokynov ktoré postupne definujú, ako sa má práca vykonať, aby sa dosiahli očakávané výsledky.[1]

Práca počítača je presne determinovaná. Počítač je absolútne neiniciatívny a všetko, čo chceme, aby urobil mu musíme nariadiť. Prácu počítaču nariaďujeme programom. K tomu aby sme mohli program zostaviť potrebujeme vytvoriť postupnosť krokov, ktorá v každom okamihu určuje ako postupovať ďalej, tzv. algoritmus. Jedna z definícií algoritmu hovorí, že algoritmus je presný popis definujúci výpočtový proces, vedúci od meniteľných vstupných údajov až k žiadaným výsledkom. Táto definícia síce presne vystihuje podstatu a účel algoritmu, je však úzko špecializovaná Obmedzuje sa len na výpočtový proces. Algoritmy však nepoužívame len pri počítačoch pri príprave programov, ale ich použitie je všeobecné. Pomocou algoritmu totiž môžeme presne definovať akýkoľvek determinovaný proces.


Univerzalny algoritmus.png


Navrhnutý algoritmus je nezávislý od jazyka, tzn. že ide iba o jednoduché pokyny, ktoré je možné implementovať v akomkoľvek jazyku, a napriek tomu bude výstup rovnaký, ako sa očakávalo.

Vlasnosti algoritmu

Hlavné vlasnosti algoritmu

Jasný a jednoznačný
Každý krok algoritmu musí byť presne definovaný a nesmie dovoľovať viacej výkladov, teda nesmie pripúšťať pochybnosť o tom, ako postupovať ďalej - t. j. ako jednotlivé kroky nasledujú po sebe,
Všeobecnosť
Algoritmus musí vyhovovať riešeniu všeobecnej skupiny úloh. Algoritmus musí vychádzať s meniteľných vstupných údajov, t. j. musí to byť popis riešenia nie len jednej úlohy, ale celej skupiny príbuzných úloh líšiacich sa od seba len vstupnými údajmi, [2]. Ako príklad môžeme uviesť riešenie kvadratickej rovnice, kde menitenými vstupnými údajmi sú koeficienty a,b,c a skupina úloh toho istého typu je množina všetkých kvadratických rovníc, kde a,b,c patria do R.
Rezultatívnosť
Algoritmus musí vždy vyústiť do nejakého riešenia a to po konečnom počte krokov. Podotknime, že výsledok algoritmu môže byť aj "neviem" alebo "riešenie neexistuje", čo sa dá považovať správny výsledok.
Konečnosť
Počet opakovaní každého kroku je konečný
Elementárnosť
Algoritmus pozostáva z konečného počtu elementárnych krokov.


Doplnkové vlasnosti alogritmu

Zrozumiteľnosť
Použitie takých prostriedkov na zápis algoritmu, ktoré by mali byť zrozumiteľné rôznym pracovníkom, ktorí budú s algoritmom pracovať (analytik, programátor, používateľ, oponent...).
Správnosť
Algoritmus musí úplne a správne riešiť danú úlohu.
Efektívnosť
Algoritmus má byť čo najvýhodnejší (najefektívnejší). Zmyslom efektívnosti je minimalizovať nároky na spracovanie činnosti podľa algoritmu. Efektívnosť môžeme posudzovať z rôznych hľadísk (výpočtový čas a kapacita pamätí počítača, minimalizácia finančných nárokov, minimalizácia spotreby energie, minimalizácia nárokov na personálne alebo materiálne vybavenie, minimalizácia dopadov na životné prostredie a pod.), prípadne sa snažíme optimalizovať vzájomný vzťah viacerých hľadísk. Táto požiadavka je často v rozpore s požiadavkou na štruktúrovanosť (prehľadnosť, modulárnosť, usporiadanosť) algoritmu.
Modifikovateľnosť
Algoritmus by mal byť vytvorený tak, aby sa dal ľahko modifikovať pri potrebnej zmene vyvolanej zmenou podmienok riešenia (vonkajších a vnútorných).
Štruktúrovanosť
Požiadavka na vnútornú štruktúru algoritmu, ktorý by mal byť rozdelený na relatívne samostatné, ale logicky nadväzujúce celky, ktoré riešia vždy príslušnú časť algoritmu, požiadavka súvisí so zrozumiteľnosťou a modifikovateľnosťou, dobre štruktúrovaný algoritmus je zrozumiteľný a ľahko modifikovateľný (opraviteľný).

Riešenie problému pomocou algorimtu

1. Problém, ktorý má tento algoritmus vyriešiť.

2. Obmedzenia problému, ktoré je potrebné zohľadniť pri jeho riešení.

3. Vstup, ktorý sa má prijať na vyriešenie problému.

4. Výstup, ktorý možno očakávať, keď sa problém vyrieši.

5. Riešenie tohto problému v daných obmedzeniach.[3]

Značky vývojových diagramov

Začiatok.png

Značka sa využíva na začatie alebo ukončenie vývojového diagramu


Untitled Diagram.png

Výkonný blok na program


Vstuo.png

Služi na zápis vstup a výstupov vývojoveého diagramu


Untitled Diagram (3).png

Rozhodovací blok s jedným vstupom a viacerými výstupmi


Spojka.png

Spojka


Spojnica.png

Spojnica

Príklady

Príklady na tvorbu vývojových diagramov nájdete v sekcií: [Príklady algoritmus]

Referencie