180 likes | 348 Views
ALGORITMIZACE. ALGORITMUS. ALGORITMUS JE POSTUP PRO ŘEŠENÍ URČITÉ ÚLOHY, KTERÝ V KAŽDÉM KROKU ŘÍKÁ, JAK DÁLE POSTUPOVAT. 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. A.A.MARKOV.
E N D
ALGORITMUS ALGORITMUS JE POSTUP PRO ŘEŠENÍ URČITÉ ÚLOHY, KTERÝ V KAŽDÉM KROKU ŘÍKÁ, JAK DÁLE POSTUPOVAT. 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. A.A.MARKOV
ZÁKLADNÍ POŽADAVKY PRO ALGORITMUS A) DETERMINOVANOST – ALGORITMUS MUSÍ BÝT PŘESNÝ A SROZUMITELNÝ. V ŽÁDNÉ ETAPĚ ŘEŠENÍ NESMÍ PŘIPOUŠTĚT POCHYBY O TOM, CO JE TŘEBA V DANÉ ETAPĚ UDĚLAT A JAKÁ BUDE JEDNOZNAČNĚ NAVAZUJÍCÍ ETAPA, TJ. JAK POSTUPOVAT DÁLE. 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.
ALGORITMICKÉ JAZYKY JAZYKŮM, KTERÉ PŘEDSTAVUJÍ SOUHRN PROSTŘEDKŮ A PRAVIDEL ZPŮSOBILÝCH VYJADŘOVAT VÝPOČETNÍ ALGORITMY, ŘÍKÁME ALGORITMICKÉ JAZYKY. MEZI ALGORITMICKÉ JAZYKY ZAHRNUJEME : a) VÝVOJOVÉ DIAGRAMY; b) STRUKTUROGRAMY; c) ROZHODOVACÍ TABULKY; d) PROGRAMOVACÍ JAZYKY.
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Č.
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É.
ROZHODOVACÍ TABULKY ROZHODOVACÍ TABULKY BYLY DEFINOVÁNY ZEJMÉNA PRO ALGORITMIZACI ÚLOH SE SLOŽITÝM ROZHODOVÁNÍM V OBLASTI ZPRACOVÁNÍ HROMADNÝCH DAT. JSOU NÁSTROJEM K VYJÁDŘENÍ KOMPLEXNÍ LOGIKY ROZHODOVÁNÍ RELATIVNĚ JEDNODUCHÝM ZPŮSOBEM. V ROZHODOVACÍCH TABULKÁCH SE POSTUPNĚ ZNÁZORŇUJÍ VARIANTNÍ SÉRIE ČINNOSTÍ, KTERÉ SE MAJÍ PROVÉST PŘI RŮZNÝCH KOMBINACÍCH VÝCHOZÍCH PODMÍNEK.
PŘÍKLAD Do banky přijde klient, který žádá o půjčku. Bankovní úředník se musí rozhodnout za jakých podmínek žadateli půjčku poskytne, nebo zda mu jí vůbec poskytne. Rozhodovat by se měl podle toho, zda se jedná o nového klienta, nebo klienta, který již nějakou dobu s bankou spolupracuje, nebo o klienta s dlouhodobou spolupráci. Při tom bude hrát roli také výše požadované částky i chování klienta během předcházející spolupráce. Banka může při tom peníze zapůjčit bez jakýchkoliv doplňujících podmínek, nebo požadovat ručitele, či půjčku vůbec neposkytnout.
PROGRAMOVACÍ JAZYKY PROGRAMOVACÍ JAZYKY JSOU DŮSLEDNĚ FORMALIZOVANÉ ALGORITMICKÉ JAZYKY, URČENÉ PRO ZÁPIS ALGORITMU PRO POČÍTAČ. ZÁPIS ALGORITMU V PROGRAMOVACÍM JAZYKU NAZÝVÁME PROGRAM. PROGRAMOVACÍ JAZYKY MŮŽEME ROZDĚLIT NA DVA ZÁKLADNÍ TYPY : POČÍTAČOVĚ ORIENTOVANÉ A MAKROPROGRAMOVACÍ. PRVNÍ SE PAK NÁSLEDNĚ DĚLÍ NA STROJOVÝ KÓD A ASSEMBLERY, DRUHÉ PAK NA AUTOKÓDY A VYŠŠÍ PROGRAMOVACÍ JAZYKY.
STROJOVÝ KÓD Strojový kód je nejnižším programovacím jazykem, jehož syntaxe a sémantika je přímo přizpůsobena danému typu počítače. Program napsaný v tomto jazyce je pak možné použít jenom pro tento typ a je nepřenositelný na jiné typy počítačů. Jednotlivé instrukce strojového kódu jsou vyjádřeny číselně a s přímými odkazy na příslušné adresy v paměti počítače. Při tom je třeba vzít v úvahu i způsob adresování v paměti počítače. Každá instrukce pak obsahuje o p e r a č n í z n a k , udávající počítači jakou činnost má vykonat a informace o o p e randech se kterými tato činnost bude vykonána.
PŘÍKLAD Takže pro vytvoření součtu (čemuž odpovídá operační znak 18) dvou hodnot uložených na adresách značených pořadovými čísly 0117 a 0128 a uložení výsledku do buňky s adresou 0252 může být zápis této instrukce např. následující: 18 0252 0117 0128 Toto číslo se pak uloží v paměti počítače ve dvojkové soustavě ve tvaru: 10 010 000 011 111 100 000 001 110 101 000 010 000 000
ASSEMBLER Jinak také nazývaný jazykem symbolických adres. Tento jazyk odstraňuje podstatný nedostatek strojového kódu, když číselné instrukce a přímé odkazy na adresy nahrazuje definovanými symboly a symbolickými adresami ve formě písmenných zkratek. PŘÍKLAD: NAM VYPOCET jméno programu LDA X uložení obsahu buňky X do registru A LSA POM přesun obsahu registru A do buňky POM RMP POM vynásobení obsahu registru A s obsahem buňky POM (x2) a uložení výsledku zpět do registru A RMP POM vynásobení obsahu registru A s obsahem buňky POM (x3)
AUTOKÓDY Jsou programovací jazyky jejichž syntaxe a sémantika je již přizpůsobena běžnému zápisu matematických operací. Příkaz v nich nahrazuje obvykle 3 až 4 instrukce strojového kódu. Typickými představiteli těchto autokódů u nás byly autokódy MOST 1 a FP 13 pro počítače polské výroby řady ODRA a autokódy MAT (modifIkace 1 až 4) pro počítače sovětské výroby řady MINSK, které byly v tehdejší době u nás nejrozšířenější. Část programu pro výše uvedený příklad bude v autokódu MAT4 [5, 8, 9,] zapsán následujícím způsobem: M = z+0.5 součet hodnoty proměnné z a konstanty 0,5 a uložení výsledku do pomocné buňky MN = x*x umocnění hodnoty proměnné x a uložení výsledku do pomocné proměnné N N = N*N umocnění hodnoty proměnné N a zpětné uložení výsledku (x4) do téže proměnné N
VYŠŠÍ PROGRAMOVACÍ JAZYKY Jsou jazyky s výrazně propracovanou syntaxí, sémantikou a pragmatikou6. Zahrnují v sobě kromě toho i složité programové konstrukce - struktury a objekty. Vzhledem k obecnosti nejsou tyto jazyky vázané na žádný konkrétní typ počítače. Jeden příkaz tohoto jazyka odpovídá 4 až 10 a někdy i více strojovým instrukcím. Podobně jako u assemblerů a autokódů se transformace programu, napsaném v některém z těchto jazyků, provádí speciálním programem, nazývaným p ř ek la da č nebo k omp i l á t o r . V současné době se používají dva programovací jazyky vyššího typu. Jazyk PASCAL, který je užíván zejména ve školství jako jazyk vhodný pro výuku programování (umožňující tzv. strukturované programování) a jeho nadstavba DELPHI a programovací jazyk C, resp. C++ , který nachází své uplatnění v komerční oblasti při vytváření systémového a aplikačního software (DELPHI a C++ pak zajišťující možnost tzv. objektově orientovaného programování).
STRUKTUROVANÉ PROGRAMOVÁNÍ Při strukturovaném programování se využívají tři základní typy jazykových konstrukcí: sekvence, podmínky a cykly. Každá taková struktura má v zásadě jenom jeden vstup a jeden výstup. Tímto se při programování vyhýbáme nesledovatelným vazbám v programu, které u klasických programovacích jazyků vyplývají z používání příkazu nepodmíněného skoku (GOTO). OBJEKTOVĚ ORIENTOVANÉ PROGRAMOVÁNÍ Objekty, nebo také komponenty, jsou předem vytvořené a plně funkční konstrukce (softwarové stavební díly) daného programovacího jazyka, které řeší některý dílčí problém nebo úkol. Úkolem uživatele je pak místo podrobného psaní programu, jenom vybrat vhodné objekty (často jenom pomocí myší) a tyto příslušným způsobem seřadit (uložit do formuláře). Při tom uživatel ani nepotřebuje znát vlastní algoritmus řešení, který byl v tomto objektu použit. Pro něj jsou podstatné jenom jeho vlastnosti a způsob jeho použití. Navíc uživatel má možnost měnit některé vlastnosti těchto objektů, případně si některé objekty definovat a zkonstruovat sám.
End of Lecture Good Night.