1. Algoritmus

Algoritmus sú inštrukciie na splnenie úlohy. Program je algoritmus zapísaný do formy ktorú vie vykonávať počítač. Programovanie je činnosť vedúca k vytvoreniu programu.

Formy zápisu algoritmu:

  1. slovný postup
  2. vývojový diagram
  3. zdrojový program - je program v programovacom jazyku. Umožňuje vytvoriť, meniť a opravovať program, a prenášať ho na rôzne operačné systémy. Logická chyba v algoritme môže viesť k zlyhaniu výsledného programu, preto sa programy testujú. Odstraňovanie chýb sa nazýva ladenie programu.
  4. spustiteľný program - sú inštrukcie a dáta pre procesor a operačný systém v spustiteľnom programovom súbore a dátových súboroch. Spustiteľný program sa vytvorí kompiláciou zdrojového programu, čo vykonáva program zvaný kompilátor.

Požadované vlastnosti algoritmov sú obvykle:

  1. Konečnosť = musí dosiahnúť cieľ po určitom počte krokov.
  2. Jednoznačnosť = presne definovaný. Napríklad v každej situácii musí byť zrejmé, čo a ako sa má vykonať, a ako má algoritmus pokračovať, vstup a výstup má definované množiny hodnôt, ktoré môžu nadobúdať.
  3. Efektivita = s najmenší úsilím dosiahnúť najlepšie výsledky. Napríklad na riešenie rovnakej úlohy môže existovať viac algoritmov, ktoré sa líšia v množstve času a pamäte potrebných na splnenie úlohy.
  4. Všeobecnosť = rieši množinu problémov. Napríklad tabuľkovým kalkulátorom možno robiť akékoľvek výpočty v tabuľkách.

Etapy algoritmizácie úloh

  1. Formulácia úlohy - jednoznačná formulácia cieľa, definovať kroky vedúce k riešeniu, najlepšie matematicky.
  2. Analýza úlohy - zistí sa či je úloha riešiteľná, vybrať najefektívnejšie riešenie, zovšeobecniť úlohu.
  3. Zostavenie algoritmu- popíše sa postup riešenia pomocou príkazov.

Štruktúry v algoritmoch:

  1. Postupnosť príkazov - príkazy sa vykonávajú jeden za druhým.
  2. Podprogram - opakovane spustiteľný program volaním z rôznych miest programu. Môže mať formu funkcie (vypočíta hodnotu), procedúry (vykonáva príkazy), alebo iného programu. Podprogramy šetria množstvo kódu, ktoré by bolo treba opakovane písať.
  3. Skok - po príkaze skoku sa vykonáva program od inej časti.
  4. Vetvenie - po splnení alebo nesplnení podmienky sa vykonáva jedna z dvoch vetiev programu.
  5. Cyklus - príkazy sa opakovane vykonávajú, dokiaľ je splnená podmienka na opakovanie.
  6. Objekty - sú dátové štruktúry. Napríklad na ukladanie dát sú to premenná, záznam, pole, súbor. Na tvorbu vizuálnych častí programu sú to formuláre (plochy) a ovládacie prvky (text, obrázky, tlačítka, zoznamy..). Vizuálne objety sa obvykle riadia pomocou udalostí (kliknutie myšou, ukončenie tlače, prerušenie operačného systému...) a je im priradený podprogram ktorý sa vykoná po udalosti.

Zdrojový obrázok: AlgoritmyStruktury.odg

Úrovne programovania:

  1. Strojový kód - príkazy a dáta sa píšu v binárnom kóde (1 a 0). Príkladom je programovanie mikroprocesorov.
  2. Symbolické inštrukcie - slová nahrádzajúce príkazy v binárnom kóde. Napríklad program Assembler je prekladač symbolických inštrukcií do strojového kódu.
  3. Vyššie programovacie jazyky - (napríklad Pascal, Java) slúžia na opis riešenia problému, ktorý umožní jeho vykonanie pomocou programovateľného technického zariadenia. Sú to presne definované jazyky s vlastnou gramatikou a syntaxom.
  4. Vývojové nástroje - (napríklad Lazarus) uľahčujú programovanie, napríklad pracuje sa s nimi graficky, vytvárajú zdrojový kód a súbory.

Delenie vyšších programovacích jazykov:

  • Procedurálne - obsahujú presnú postupnosť príkazov, premenné menia svoj stav vzhľadom na vyhodnocovaní podmienok.
    • Štruktúrované (napr. BASIC, Cobol) o bsahuje jednoduché štruktúry, ako cyklus, vetvenie, premenné.
    • Objektovo orientované (napr. Visual Basic, Pascal, C, Java, PHP) - založené na používaní dátových štruktúr nazývaných objekty a ich interakcie na vývoj aplikácií.
  • Neprocedurálne - nie je podstatná postupnosť príkazov.
    • Funkcionálne (napr. Lisp, Logo, Mathematica) - zápis programu v tvare výrazu, najdôležitejšími výrazmi sú funkcie, výpočet spočíva v postupnom zjednodušovaní výrazov, základom jazykov je formálny systém a výpočtový model λ-kalkul.
    • Logické (napr. Prolog, Gödel) - programátor popisuje len cieľ výpočtu, pričom presný postup, akým sa k výsledku program dostane, je ponechaný na ľubovôli systému. Prolog je využívaný predovšetkým v odbore umelej inteligencie a v počítačovej lingvistike.

Otázky na opakovanie

  1. Definujte pojmy programov: zdrojový, spustiteľný, ladenie, kompilácia.
  2. Definujte vlastnosti algoritmov: konečnosť, jednoznačnosť, efektivita, všeobecnosť.
  3. Definujte kroky tvorby algoritmu: formulácia úlohy, analýza úlohy, zostavenie algoritmu
  4. Definujte štruktúry v programoch: postupnosť príkazov, podprogram, skok, vetvenie, cyklus, objekty.
  5. Definujte úrovne programovania - strojový kód, symbolické inštrukcie, vyššie programovacie jazyky, vývojové nástroje.
  6. Definujte typy vyšších programovacích jazykov: štruktúrované, objektovo orientované, funkcionálne, logické
PrílohaVeľkosť
AlgoritmyStruktury.svg55.46 KB
AlgoritmyStruktury.odg14.1 KB