Algoritmy

  • vlastnosti algoritmu
    • skončí v konečném čase
    • obecnost
    • jednoznačnost - musí být jasné, co se má dělat
      • nemusí být ale deterministický
    • má nějaký výstup
    • zápis je konečný
  • algoritmy jsou všechny postupy včetně chybných
    • v praxi nás ale zajímají algoritmy nějak kvalitní (užitečné, elegantní, rychlé, ...)

Vývojový diagram

  • grafický zápis algoritmu
  • různé formality zápisu, záleží na dohodě
  • nejběžněji
    • kulaté konce a začátky a skoky na jiná místa (spojky)
    • hranaté akce
    • zkosené rovnoběžníky vstupy a výstupy
    • kosočtverec je podmínka
    • spojnice rovné pravoúhlé, musí být jasný směr
    • volání podprogramu/metody/funkce je v obdélníku s dvěma hranami
    • přídavné značky na cykly s pevným počtem opakování, nejsou stěžejní, dá se bez nich obejít

Programovací jazyky

  • definované způsoby, jak zapsat algoritmus
    • zdrojový kód / strojový kód
  • kompilované jazyky / interpretované jazyky
  • nižší jazyky → vyšší jazyky (ASM → C → C++ → Java → Python)
  • existuje jich mnoho druhů s několika různými filozofiemi
  • několik různých metod přístupu
    • procedurální / imperativní
      • strukturované (Basic, Bash, C, ...)
        • podmínky, cykly, sekvence, funkce
      • objektové (Python, Java, C++, ...)
        • obecně to nejpoužívanější
        • pouze nadstavba nad strukturovaným programováním
        • navíc třídy, dědičnost, objekty
    • neprocedurální / deklarativní
      • funkcionální (haskell, ...)
        • založené na lambda-kalkulu
        • chápe programování jako výpočet matematických funkcí
      • logické (prolog, ...)
        • definují se logické vztahy mezi prvky
        • řekne se tomu, co je cílem
        • nějak se to spočte
  • IDE (Integrated Development Environment)
    • textový editor na programování
    • statická analýza kódu, ulehčuje práci, upozorňuje na chyby, navrhuje příkazy

results matching ""

    No results matching ""