160 likes | 386 Views
Kód ITMS projektu: 26110130519 Gymnázium Pavla Jozefa Šafárika – moderná škola tretieho tisícročia. ALGORITMY. Obsah. Vlastnosti algoritmov Chyby algoritmov Zápis algoritmov Úlohy na riešenie Zdroje. Čo je to algoritmus?.
E N D
Kód ITMS projektu: 26110130519 Gymnázium Pavla Jozefa Šafárika – moderná škola tretieho tisícročia ALGORITMY
Obsah • Vlastnosti algoritmov • Chyby algoritmov • Zápis algoritmov • Úlohy na riešenie • Zdroje
Čo je to algoritmus? • Algoritmus je elementárnym pojmom informatiky – nie je ho možné popísať pomocou ešte elementárnejších pojmov – tak ako napr. pojmy bod a číslo v ma tematike. • Algoritmus preto definujeme iba popisne. napr. postup určený pre nemysliace zariadenie ( stroj, procesor ) nazývame algoritmus.
Čo je to algoritmus? • Al-Chvarízmí (okolo r. 800), arabský matematik napísal dielo Alghoritmi de numero Indorum o indickej pozičnej sústave počítania. Je to kniha o pravidlách, podľa ktorých možno v desiatkovej sústave základné počtové úkony. Podľa názvu latinského prekladu knihy vzniklo slovo algoritmus, čiže návod, postup, pravidlo.
Čo je to algoritmus? • Algoritmusje postup, ktorého realizáciou získame zo zadaných vstupných údajov po konečnom počte činností v konečnom čase správne výsledky.
Vlastnosti algoritmov Každý postup však nie je algoritmom. Aby sme postup mohli považovať za algoritmus, musí mať nasledujúce vlastnosti : • 1. elementárnosť • 2. determinovanosť • 3. rezultatívnosť • 4. konečnosť • 5. hromadnosť • 6. efektívnosť Tieto vlastnosti sú dôležité preto, aby postup mohlo realizovať nemysliace zariadenie, ktoré si nevie uvedomiť, že napr. činnosť vykonáva podozrivo dlho, ani sa nevie poučiť z chýb.
1. elementárnosť • 2. determinovanosť • 3. rezultatívnosť • 4. konečnosť • 5. hromadnosť • 6. efektívnosť • Tieto vlastnosti sú dôležité preto, aby postup mohlo realizovať nemysliace zariadenie, ktoré si nevie uvedomiť, že napr. činnosť vykonáva podozrivo dlho, ani sa nevie poučiť z chýb.
Elementárnosť • Algoritmus je zložený z jednoduchých krokov alebo činností – ktoré sú pre realizátora elementárne – základné, jednoduché, ľahko realizovateľné.
Determinovanosť Algoritmus musí byť zostavený tak, že po každom kroku je jasné, ktorá činnosť nasleduje, alebo či sa postup skončil. • Ľudia dokážu chápať postupy, v ktorých nie je zvýraznené poradie činností alebo presne určené ako dlho treba činnosť opakovať. Človek môže správne pochopiť postup, v ktorom je poradie krokov chybne zapísané alebo sú niektoré kroky vynechané. • Do postupu pre nemysliace zariadenie je nevyhnutné uviesť poradie činností ! Úloha : Povedzte postup, ako bezpečne prejsť cez ulicu.
Rezultatívnosť Algoritmus je postup, ktorý vedie od vstupných hodnôt k výsledkom. Dáva pre rovnaké vstupné údaje vždy rovnaké výsledky. Príklad : Na matematike sa všetci učíte tie isté algoritmy – postupy rôznych výpočtov. Napriek tomu nemajú v písomke všetci žiaci rovnaké výsledky. Prečo ? Chyba nie je v algoritmoch, ale v ľuďoch. Buď sa algoritmy nenaučili správne, alebo použili nesprávne algoritmy – určené na riešenie iného typu úloh.
Konečnosť Algoritmus skončí vždy po vykonaní konečného počtu krokov a v konečnom ( reálnom ) čase. Príklad : Počítajte podľa nasledovného postupu : • pomyslite si nejaké číslo • k tomu číslu opakovane pripočítajte jednotku ... • ... počítajte ... • ... až kým váš výsledok nebude rovný -10,3 • Žiaci, ktorí skončili, môžu odísť z učebne. • Skúsenosti nám umožňujú prerušiť činnosť, keď vidíme, že nevedie k požadovanému výsledku. Stroj v rovnakej situácii pracuje ďalej – pokiaľ má zdroj energie. • Ak potrebujeme výsledok v priebehu niekoľkých sekúnd, tak postup, pomocou ktorého sa dopracujeme k riešeniu za hodinu, nie je vhodným algoritmom.
Hromadnosť Algoritmus je určený na riešenie veľkého počtu úloh rovnakého ( podobného ) typu. • Dobrý algoritmus pripúšťa premenlivé vstupné údaje. • Táto vlastnosť je skôr užitočná ako nevyhnutná. • Existujú algoritmy na riešenie jedinej úlohy. Úloha : Napíšte algoritmus na riešenie rovnice a.x+b=0, kde x je neznáma a a,b sú ľubovoľné reálne čísla.
Efektívnosť • Táto vlastnosť sa často považuje za doplnkovú. • Algoritmus umožňuje získať výsledok v čo najkratšom čase a s využitím čo najmenšieho počtu prostriedkov – finančných, technických, ľudských. • Často sa najskôr vytvorí akýkoľvek funkčný algoritmus, ktorý sa v prípade potreby vylepšuje – ak máme na to dostatok prostriedkov. • Požiadavka získať výsledok čo najrýchlejšie je často v rozpore s požiadavkou minimalizovať použité prostriedky.. Príklad: Vypočítajte súčet čísel od 1 do 100. Neefektívnym algoritmom by bolo postupné sčítavanie 1+2+…+99+100. Omnoho efektívnejším spôsobom by bol výpočet (1+100)*50
História programovacích jazykov 1950 - Assembler (Nižší programovací jazyk) - symbolické pomenovanie strojových inštrukcií a adries1957 - Fortran (Formula Translation) - jazyk na technické výpočty1958 - Algol (Algorithmic language) - základ pre štruktúrované jazyky1958 - Lisp (List Processing) - jazyk pre vedcov pracujúcich v oblasti umelej inteligencie a symbolických výpočtov1964 - Basic (Beginers All Purpose Instruction Code) - úvodný jazyk inžinierov ako príprava na Fortran1967 - Logo (Jazyk pre deti) - korytnačia grafika, práca so zoznamami1970 - Pascal (pomenovaný na počesť B. Pascala) - určený ako úvodný jazyk na vyučovanie programovania1972 - C - Jazyksystémových programátorov1980 - Smalltalk 80 - Čisto objektovo orientovaný jazyk - idea okien, práca s myšou1983 - Pascal (Štandard jazyka Pascal) - neskôr sa rozšíril skoro na všetky univerzity sveta ako základný jazyk informatiky
Použité zdroje • Filo, P. a kol. : Projekty pre regionálny rozvoj, vydavateľstvo ERA OZ, Bratislava 2005, ISBN: 80–969367–0–0.