- presný návod k zvládnutiu určitej činnosti.
- postupná transformácia vstupných údajov na výstupné a naopak.
Algoritmus je presná postupnosť krokov a inštrukcií, ktorá nás od vstupných údajov privedie v konečnom čase k výsledku.
Vlastnosti
Determinovanosť: jednoznačnosť, v každom okamihu musí vedieť, aký príkaz nasleduje. Činnosť algoritmu je natoľko presná a pritom všeobecne pochopiteľná, že nepripúšťa v žiadnom kroku procesu subjektívnu možnosť voľby ďalšieho pokračovania. Činnosť algoritmu nesmie závisieť od ľubovôle osoby, ani na vlastnostiach zariadenia, ktoré ho realizuje. Je to proces, ktorý môže byť kedykoľvek a kýmkoľvek opakovaný s rovnakým výsledkom. Postup je zostavený tak, že v každom momente jeho vykonávania je jednoznačne určené, aká činnosť má nasledovať, alebo či sa už postup skončil. Determinovanosť nám prikazuje vytvoriť postup tak, aby bolo v každom kroku jasné, kam sa má riešenie uberať, čím pokračovať.
Hromadnosť: znamená, že algoritmus neslúži na riešenie jednej konkrétnej úlohy, ale na riešenie celej triedy úloh toho istého typu. Vstupné údaje sa môžu v určitých medziach meniť. Tak napr. algoritmus na výpočet druhej odmocniny z daného čísla platí pre ľubovoľné konečné nezáporné reálne číslo a nie iba pre jednu konkrétnu hodnotu. Postup na riešenie jednej individuálnej úlohy sa nenazýva algoritmom. Ak nemáme algoritmus na riešenie všetkých úloh danej triedy, neznamená to, že jednotlivé úlohy danej triedy nemôžeme vedieť riešiť. Na vyriešenie jednotlivých prípadov však musíme vytvárať špeciálny postup, ktorý nemusí byť vhodný pre iný prípad.
Rezultatívnosť: vedie od zadaných vstupných údajov ku správnemu výsledku. Vyžaduje, aby sa postup, použitý na riešenie ľubovoľnej úlohy danej triedy, po konečnom počte krokov zastavil a aby po zastavení dával požadovaný výsledok. Z tejto vlastnosti automaticky vyplýva pojem oblasti použiteľnosti algoritmu. Je to taká najväčšia oblasť vstupných údajov, pre ktoré je algoritmus rezultatívny. To znamená, že ak za vstupné údaje zoberieme údaje z oblasti použiteľnosti, algoritmus sa zastaví po konečnom počte krokov s požadovaným riešením. Ak údaje nie sú z tejto oblasti, algoritmus sa alebo nezastaví, alebo sa zastaví, ale nedostaneme požadované výsledky.
Elementárnosť: jednoduchosť, skladá sa z konečného počtu jednoduchých krokov (príkazov). Viac jednoduchých krokov = jeden zložitý krok / počítač musí vykonávať tie jednoduchšie. Postup je zložený z jednoduchých krokov, ktoré sú pre vykonávateľa zrozumiteľné, postup dáva pre rovnaké vstupné údaje vždy rovnaké výsledky.
Konečnosť: každý krok sa vykoná len konečný počet krát, program po nejakom čase skončí
Efektívnosť: postup sa uskutočňuje v čo najkratšom čase a s využitím čo najmenšieho počtu prostriedkov.
Pre zobrazenie algoritmu používame rôzne metódy;
- formalizovaný popis priebehu pracovného postupu vo forme textu členeného na odstavce (logické štruktúry z funkčného hľadiska)
- dátovo orientované diagramy HIPO (z angl. Hierarchy plus Input- Process- Output, tzn. hierarchický diagram a diagram vstupu, spracovania, výstupu), spojujúce v grafickom vyjadrení funkčné členenie problému, štruktúry dát a pracovných postupov pri rôznom stupni podrobnosti
- štruktúrne diagramy zamerané predovšetkým na zobrazenie postupností operácií v úlohe, avšak s využitím štandartných algoritmických štruktúr
- štruktúrne diagramy vo forme stromového diagramu, v ktorom sa procesy postupne členia až na najnižšiu úroveň, tzn. k operáciám so súčasnou charakteristikou algoritmickej štruktúry (vetvenie, opakovanie a pod.)
- vývojové diagramy toku dát a vývojové diagramy programu zobrazujúce predovšetkým postupnosť operácií v systéme a v jednotlivých úlohách
- rozhodovacie tabuľky využívané zvlášť pri zložitých rozhodovacích procesoch v algoritmoch programu
- slovný zápis v bežnej reči
Aj keď štruktúry algoritmov môžu byť rozmanité, môžeme ich rozdeliť na tri základné:
lineárna jednoduchá štruktúra (sekvenčná):
- algoritmus prebieha lineárne bez opakovania a obsahuje v podstate vstupné, výpočtové a výstupné operácie. Sekvenciou rozumieme postupnosť príkazov (príkaz je povel, ktorý počítač alebo iné zariadenie pozná a dokáže vykonať), ktorá sa vykonáva v takom poradí, v akom sú jednotlivé časti zapísané.
lineárna rozvinutá štruktúra (rozhodovacia):
- algoritmus opäť prebieha lineárne bez opakovania, obsahuje však naviac operáciu výberu, keď určité operácie sa prevedú len za splnenia určitých podmienok. V opačnom prípade sa pokračuje ďalej vo výpočte alebo sa realizujú iné operácie. Dochádza teda k vetveniu v lineárnej sekvencii operácie programu. Vetvenie môže byť viacnásobné, závislé na hodnotách, ktoré obsahuje premenná nazývaná prepínač.
- podmienka alebo vetvenie predstavuje v algoritmizácii možnosť rozhodnúť sa podľa pravdivosti skúmaného znaku. Skladá sa z podmienky uvedenej za slovíčkom ak a z príkazov, ktoré sa vykonajú v prípade kladného (za kľúčovým slovom tak) a záporného (inak) výsledku. Týmto dvom častiam hovoríme vetvy.
cyklická štruktúra:
- algoritmus môže prebiehať dvojako. V prvom prípade prebieha cyklus tak dlho, pokiaľ podmienka má hodnotu ÁNO. V druhom prípade sa opakuje tak dlho, pokiaľ podmienka má hodnotu NIE; cyklus teda prebehne minimálne raz. Tieto druhy cyklov používame v tom prípade, keď môžeme predom stanoviť počet opakovaní cyklu.
- vedľa týchto dvoch typov štruktúr ešte uveďme štruktúru cyklu, keď počet priechodov cyklom predom poznáme. V algoritme je buď počet opakovaní uvedený ako konštanta, alebo sa pred zahájením cyklu príslušnej riadiacej premennej priradí určitá hodnota. Opakované prevádzanie operácií pri platnosti podmienky sa bežne používa pre ukončenie algoritmu pri tzv. dotaze alebo teste na koniec spracovania.
Cyklus so známym počtom opakovaní sa používa, keď vopred vieme, koľkokrát sa budú príkazy opakovať.
Cyklus s neznámym počtom opakovaní s podmienkou na začiatku je „opatrný“ cyklus, pretože najprv skontrolujeme, či je podmienka cyklu splnená a až potom vykonáme príkazy v tele.
Cyklus s neznámym počtom opakovaní s podmienkou na konci funguje opačne: najprv sa vykoná príkaz (príkazy) a až potom sa skontroluje platnosť podmienky. Tento postup sa postará o to, že príkazy v tele cyklu sa vykonajú minimálne raz.
Počet príkazov v tele cyklu alebo podmienky nie je obmedzený. Môže tam byť jeden, žiadny alebo ľubovoľný počet.
-premenná: je to objekt, kt. má urč, typ, má priradené meno a hodnotu, kt. môže v priebehu operácie zmeniť
ZÁPIS ALGORITMICKÝCH KONŠTRUKCIÍ:
Začiatok algoritmu. Na tomto mieste sa začína realizácia algoritmu. Z
Koniec algoritmu. Na tomto mieste sa končí realizácia algoritmu. K
Operačný blok - zapisujeme akcie, ktoré sa majú vykonať
Rozhodovací blok - zapisujeme podmienku.
OPERÁTORY: ÷, -, ×, /, div, mod.
RELAČNÉ OPERÁTORY: =,>,