Seminář – Základy programování Algoritmy - 1. část Seminář – Základy programování
Algoritmy uživatel musí při používání počítače vědět, jak skloubit dané instrukce pro jednotlivé operace tak, aby počítač dal požadovaný výsledek nejprve musíme vědět my - uživatelé, jak danou úlohu řešit, jak při výpočtu postupovat, neboli znát a l g o r i t m u s jejího řešení
Algoritmy A. A. Markov - "Algoritmus je přesný předpis definující výpočtový proces vedoucí od měnitelných výchozích údajů až k žádaným výsledkům“ takový předpis se skládá z jednotlivých výpočetních kroků, které jsou zapsány v určitém pořadí počet těchto kroků musí být konečný
Algoritmy každý algoritmus musí splňovat některé základní požadavky: a)determinovanost: algoritmus musí být přesný a srozumitelný b)masovost: algoritmus musí být popisem řešení nikoliv jediné úlohy, ale celé skupiny příbuzných úloh lišících se od sebe jen výchozími údaji c)resultativnost: musí vždy vést k jednoznačnému výsledku (a nemusí to být výsledek přijatelný, i výsledek špatný, ne chybný, je výsledkem) a ukončení řešení d) diskrétnost: A = posloupnost vzájemně oddělených, přesně definovaných kroků (operací)
Algoritmy Příklad: je třeba rozhodnout, zda daný obrazec zadaný stranami a, b, c, d a úhly , , , je čtverec víme, že pro kladnou odpověď musí platit, že všechny strany obrazce jsou stejně dlouhé, rovněž jako, že všechny úhly jsou stejně veliké a jsou rovny 90 stupňům obrazec bude čtverec i tehdy, budou-li si rovny tři libovolné strany a dva odpovídající úhly, které tyto strany svírají tento postup, vedoucí k rozhodnutí, zda obrazec je čtverec, lze zformulovat do několika na sebe navazujících etap:
Algoritmy začátek – zadání dat je-li a = c, pak přejdi na etapu 3, jinak přejdi na etapu 7 je-li a = b pak přejdi na etapu 4, jinak přejdi na etapu 7 je-li = 90, přejdi na etapu 5, jinak přejdi na etapu 7 5. je-li = , přejdi na etapu 6, jinak přejdi na etapu 7 obrazec je čtverec, přejdi na etapu 8 obrazec není čtverec, přejdi na etapu 8 8. konec
Algoritmy Při podrobnější analýze však zjistíme, že takto sestavený algoritmus není zcela vyčerpávající. Co když další parametry obrazce (strana d a úhly a ) nebudou splňovat podmínky čtverce?! Úkol: Uprav daný algoritmus tak, aby byly ošetřeny i tyto možnosti
Algoritmy Algoritmické jazyky = souhrn prostředků a pravidel způsobilých vyjadřovat výpočetní algoritmy, říkáme algoritmické jazyky Mezi tyto algoritmické jazyky zahrnujeme: a) vývojové diagramy b) strukturogramy c) rozhodovací tabulky d) programovací jazyky
Algoritmy a) vývojové diagramy představují normou (dnes již nadnárodní) definované symbolické značky a pravidla pro jejich používání, sloužící k jednoznačnému grafickému vyjadřování výpočetních operací a postupů vývojový diagram tak slouží jednak k popisu výpočetního algoritmu a zároveň jako podklad pro sestavení programu pro počítač
Algoritmy b)strukturogramy jsou obdobou vývojových diagramů, nejsou však normou definovány představovaly určitý pokus "zhutnit" grafickou interpretaci výpočetního postupu v praxi se však neujaly a dnes je jejich praktické používání bezvýznamné
Algoritmy c)rozhodovací tabulky byly definovány zejména pro algoritmizaci úloh se složitým rozhodováním v oblasti zpracování hromadných dat Rozhodovací tabulku definujeme tedy ve formě čtyř kvadrantů, jejichž náplň současně určuje obvyklý logický sled úkonů při sestavování tabulky Seznam podmínek Kombinace podmínek Seznam činností Kombinace činností