ALGORITMIZACE Flashcards
1
Q
ALGORITMUS
A
- Algoritmus je přesný postup, který se využívá pro řešení nějaké úlohy.
- Algoritmus obecně splňuje různé požadavky:
- Konečnost - Každá algoritmus musí skončit v konečném počtu kroků (dle většiny autorů, můžou existovat I tzv. Reaktivní algoritmy). Tento počet může být libovolně vysoký (podle rozsahu a hodnot vstupních údajů), ale pro daný jednotlivý vstup musí být konečný.
- Obecnost - Algoritmus neřeší jeden konkrétní problém, ale obecnou třídu obdobných problémů
- Determinovanost - Každý krok algoritmu musí být jednoznačně a přesně definován. V každé situaci musí být naprosto jasné, co a jak se má provést, jak má po provedení algoritmus pokračovat atd. Stejný vstup by u algoritmu vždy měl vrátit stejný výsledek. Některé algoritmy determinované nejsou - např. pravděpodobnostní algoritmy mají ve svém výpočtu zahrnut náhodný faktor.
- Výstup - Algoritmus má alespoň jeden výstup, která je v požadovaném vztahu k zadaným vstupům. Vrácením tohoto výstupu je vytvořena odpoveď na problém, jež daný algoritmus řeší.
2
Q
VLASTNOSTI ALGORITMU
A
- Algoritmus obecně splňuje různé požadavky:
- Konečnost - Každá algoritmus musí skončit v konečném počtu kroků (dle většiny autorů, můžou existovat I tzv. Reaktivní algoritmy). Tento počet může být libovolně vysoký (podle rozsahu a hodnot vstupních údajů), ale pro daný jednotlivý vstup musí být konečný.
- Obecnost - Algoritmus neřeší jeden konkrétní problém, ale obecnou třídu obdobných problémů
- Determinovanost - Každý krok algoritmu musí být jednoznačně a přesně definován. V každé situaci musí být naprosto jasné, co a jak se má provést, jak má po provedení algoritmus pokračovat atd. Stejný vstup by u algoritmu vždy měl vrátit stejný výsledek. Některé algoritmy determinované nejsou - např. pravděpodobnostní algoritmy mají ve svém výpočtu zahrnut náhodný faktor.
- Výstup - Algoritmus má alespoň jeden výstup, která je v požadovaném vztahu k zadaným vstupům. Vrácením tohoto výstupu je vytvořena odpoveď na problém, jež daný algoritmus řeší.
- Dále se uvádí:
- Elementárnost
- Výstup - Algoritmus má alespoň jeden výstup, který tvoří odpověď na problém
- Srozumitelnost
- Kvalitativní vlastnosti
- Přehlednost
- Časová složitost
Prostorová složitost
3
Q
ZPŮSOBY VYJÁDŘENÍ ALGORITMU
A
- Základní způsoby vyjádření algoritmu jsou:
- Slovně - přirozeným jazykem (může vést k nejasnostem)
- Matematicky
- Graficky
- Pomocí vývojového diagramu
- Počítačově - např. programovacím jazykme- Vývojový diagram:
4
Q
ALGORITMIZACE ZÁKLADNÍCH TYPŮ ÚLOH
A
- Algoritmizace je postup tvorby algoritmu pro řešení nějakého problému.
- Algoritmizaci lze rozdělit do několika etap:
- Formulace problému — V této etapě je nutné přesně formulovat:
- Výchozí hodnoty
- Požadované výsledky, jejich formu a přesnost řešení
- Analýza úlohy
- Při analýze úlohy ověřujeme, zda je úloha vůbec řešitelná
- Dále je nutné určit, zda k řešení úlohy stačí dostupné výchozí hodnoty
- Identifikujeme možná řešení, a pokud jich má úloha více, vybereme to nejlepší
- Vytvoření algoritmu úlohy
- Sestavíme jednotlivé kroky, jež je nutné pro úspěšné vyřešení úlohy
- Sestavení programu
- Dle určených kroků, algoritmus sestavíme ve vybraném programovacím jazyku
- Kompilací vytvoříme spustitelný program
- Odladění programu
- Cílem odladění je odstranění chyb z programu
Syntaktické chyby jsou odhaleny překladačem, ty logické musíme odhalit testováním
- Cílem odladění je odstranění chyb z programu
- Formulace problému — V této etapě je nutné přesně formulovat:
5
Q
ZPRACOVÁNÍ ŘADY DAT
A
- Je nutné zvolit vhodný algoritmus
Složitost my měla být maximálně lineárně logaritmická
6
Q
ZPRACOVÁNÍ SOUBORU DAT
A
- Je nutné mít ukazatel na soubor
Je nutné soubor otevřít a zavřít
7
Q
ALGORITMIZACE ŘAZENÍ
A
- Kvadratické metody
- Přímý výběr - selection sort
- Bublinkové řazení - bubble sort
- Přímé vkládání - insertion sort- Lineárně logaritmické metody
- Řazení haldou - heapsort
- Quick sort
- Stromové řazení
- Řazení slučováním - merge sort
- Lineární metody
- Řazení množinou (multimnožinou)
Hašování
- Řazení množinou (multimnožinou)
- Lineárně logaritmické metody
8
Q
ALGORITMIZACE ROZVOJŮ NEKONEČNÝCH ŘAD
A
- Aproximací Tayolorovým polynomem
- Předpokladem je existence bodu, v němž známe jeho funkčí hodnota a hodnoty všech derivací
Funkcí aproximujeme konstantou, pak přímkou, následně parabolou atd. Dokud nedostaneme požadovanou přesnost
- Předpokladem je existence bodu, v němž známe jeho funkčí hodnota a hodnoty všech derivací