01. Algoritmy a algoritmizace
Přidal/a admin dne June 24 2010 11:02:00
Zde najdete prezentaci k tématu Algoritmy, prezentaci k datovým typům, odkaz na e-learningový kurz a stručný přehled základních pojmů


Prezentace - algoritmy







Základy algoritmizace a programování - e-learningový kurz


Postup vzniku počítačového programu
1.analýza zadání (co máme pomocí programu vyřešit, co má být výstupem)
2. návrh řešení (výběr prostředků pro dosažení cíle)
3. algoritmizace řešení (postup, posloupnost kroků programu)
4. zápis v konkrétním programovacím jazyce a ladění programu (chyby)
programu a jeho ladění, podpora a údržba programu),

Pojem algoritmus
Algoritmus je přesný návod či postup, kterým lze vyřešit daný typ úlohy. Pojem algoritmu se nejčastěji objevuje při programování, kdy se jím myslí teoretický princip řešení problému (oproti přesnému zápisu v konkrétním programovacím jazyce). Obecně se ale algoritmus může objevit v jakémkoli jiném vědeckém odvětví. Jako jistý druh algoritmu se může chápat i např. kuchyňský recept. V užším smyslu se slovem algoritmus rozumí pouze takové postupy, které splňují některé silnější požadavky:

- Obecnost (hromadnost, masovost, univerzálnost)
Algoritmus neřeší jeden konkrétní problém (např. „jak spočítat 3×7“), ale obecnou třídu obdobných problémů (např. „jak spočítat součin dvou celých čísel“), má širokou množinu možných vstupů.
- Determinovanost (podmíněnost)
Každý krok algoritmu musí být jednoznačně a přesně definován; v každé situaci musí být naprosto zřejmé, co a jak se má provést, jak má provádění algoritmu pokračovat, takže pro stejné vstupy dostaneme pokaždé stejné výsledky. Protože běžný jazyk obvykle neposkytuje naprostou přesnost a jednoznačnost vyjadřování, byly pro zápis algoritmů navrženy programovací jazyky, ve kterých má každý příkaz jasně definovaný význam. Vyjádření výpočetní metody v programovacím jazyce se nazývá program. Některé algoritmy ale determinované nejsou, pravděpodobnostní algoritmy v sobě mají zahrnutu náhodu.
- Opakovatelnost
- Konečnost (finitnost)
Každý algoritmus musí skončit v konečném počtu kroků. Tento počet kroků může být libovolně velký (podle rozsahu a hodnot vstupních údajů), ale pro každý jednotlivý vstup musí být konečný. Postupy, které tuto podmínku nesplňují, se mohou nazývat výpočetní metody. Speciálním příkladem nekonečné výpočetní metody je reaktivní proces, který průběžně reaguje s okolním prostředím. Někteří autoři však mezi algoritmy zahrnují i takovéto postupy.
-Výstup (resultativnost)
Algoritmus má alespoň jeden výstup, veličinu, která je v požadovaném vztahu k zadaným vstupům, a tím tvoří odpověď na problém, který algoritmus řeší (algoritmus vede od zpracování hodnot k výstupu)

Základní příkazy strukturovaného programování -(Strukturované programování nebo také strukturovaný programovací jazyk označuje programovací techniku, kdy se implementovaný algoritmus rozděluje na dílčí úlohy (to jest procedury či funkce), které se spojují v jeden celek.)


Strukturované programování definuje, že na nejnižší úrovni se program může skládat pouze z následujících tří struktur:
Příkaz (jednotlivý krok v programu), posloupnost příkazů [složený příkaz],
- Sekvence (provádí posloupnost příkazů jeden po druhém)
Podmíněný příkaz
- Výběr (jeden nebo více příkazů je vykonán v závislosti na stavu programu. Toto je obvykle vyjadřováno klíčovými slovy jako if..then..else..endif, switch nebo case )
Cyklus s podmínkou na začátku a na konci
- Opakování (příkazy jsou prováděny do té doby, dokud program nedosáhne nějakého stavu - toto je obvykle vyjadřováno klíčovými slovy jako while, repeat, for nebo do..until)
- Podmíněný cyklus, jeho běh závisí na splnění či nesplnění obecné podmínky. Existují dvě varianty cyklu Do...Loop. Buď cyklus pokračuje, je-li podmínka splněna (While) nebo cyklus pokračuje, není-li podmínka splněna (Until).
- Cyklus s předem daným počtem opakování (repeat)
- procedury - algoritmus zapisujeme jako proceduru - posloupnost příkazů
- funkce - na rozdíl od procedury vrací hodnotu. Parametry funkce jsou v podstatě lokální proměnné.

Další základní pojmy:
- proměnná - vyhrazené místo v paměti pro dočasné uložení dat v programu. Rozsah platnosti proměnné:
- lokální
-globální

Rozdíl mezi proměnnou a konstantou: konstanta za běhu programu nemění svou hodnotu.

U proměnných definujeme datový typ proměnné (implementován jako třída) - základní datové typy - text, číslo, datum....Je možná (nutná) konverze mezi datovými typy - implicitní, explicitní.
(příklady datových typů: znak, řetězec, celé číslo, reálné číslo, logická hodnota, - viz. prezentace)

- identifikátor - jméno proměnných

pojem syntaxe programovacího jazyka.

Obecně se syntaxe se zabývá upořádáním slov (lexikografických jednotek) jazyka ve větách. U programovacích jazyků se zabývá způsobem zápisu kličových slov (příkazů) programu, způsobem deklarace proměnných, zápisu procedur, funkcí aj.

Objektového programování ,vysvětlit princip vizuální tvorby programu (výběr připravených komponent a programování reakcí na události, které jsou s nimi spojené).

Makro

Vývojový diagram