Pojem algoritmu

Algoritmus je postup řešení dané úlohy. Je to jednoznačně stanovená posloupnost operací, které řeší daný problém.

Specifikace algoritmické úlohy

Vstupní údaje - informace, ze kterých při řešení úlohy vycházíme, musí splňovat vstupní podmínku
Výstupní údaje - nově získané informace, které jsou výsledkem realizace algoritmu, musí splňovat výstupní podmínku

Vlastnosti algoritmu

  • Determinovanost (určenost) znamená, že v každém kroku musí být jednoznačně určena činnost, která se právě provádí i činnost, která má následovat. Přitom realizace algoritmu nesmí být podmíněna žádnými dalšími podmínkami, než těmi, které jsou v něm uvedeny.
  • Hromadnost znamená, že algoritmus řeší skupinu úloh pro různé vstupní údaje Množina přípustných ůdajů tvoří definiční obor algoritmu,
  • Rezultativnost znamená, že pro vstupní údaje, které vyhovují vstupním podmínkám, musí dát algoritmus správný výsledek po konečném počtu kroků.

Algoritmus má začátek a konec, je věcně správný, jednoznačný (tj. v každém kroku je jasné, co má následovat), obecný, opakovatelný, srozumitelný.

Ověření správnosti

  • důkazové metody
  • testování - testovací tabulky - ručně, trasování na počítači
  • praxe u komerčních programů - souběžný ruční a strojový provoz po určitou dobu, beta verze programů
TESTOVACÍ (TRASOVACÍ, SLEDOVACÍ, SIMULAČNÍ) TABULKY zachycují transformaci hodnot proměnných v průběhu realizace algoritmu, nejedná se o důkaz algoritmu
Ekvivalentní algoritmy řeší tutéž úlohu, vybíráme efektivnější, nelze stanovit jednoznačně jeden nejlepší

Efektivita

  • časová - spotřeba času, důležitější
  • paměťová - spotřeba paměti
  • přehlednost a srozumitelnost

Etapy řešení algoritmické úlohy

odlišnost pro malé a velké programy, začátečníky a profesionály
  1. Zadání
  2. Rozbor, analýza
    specifikace
    vstupy - identifikátor, popis, typ proměnné, vstupní podmínky
    výstupy - identifikátor, popis, typ proměnné
    (další proměnné)
  3. Algoritmus
    výv. diagram
  4. Testování
  5. Přepis do progr. jazyka (kódování)
  6. Ladění
    chyby syntaktické a logické
  7. Optimalizace
    efektivita - paměťová a časová, přehlednost
    uživatelská úprava - testování vstupů, vzhled programu
  8. Dokumentace
    programátorská a uživatelská (manuály, ref. příručky, učebnice - tištěné a elektronické, helpy, ...)

Způsoby zápisu algoritmu

  • slovní
  • grafický (VD, struktogram, kopenogram, ...)
  • program - algoritmus, který je vyjádřen programovacím jazykem pomocí přesně definovaných výrazových prostředků

Přehled základních značek

Vývojové diagramy základních příkazů

větvení



cyklus for

cykly while a repeat

Proměnná

je místo v paměti počítače uchovávající hodnotu, která se v čase může měnit.
Deklarace proměnné – určení jeho datového typu (celé, číslo, reálné číslo, znak, text,…)