Pojem algoritmus a jeho základní vlastnosti



Podobné dokumenty
Identifikátor materiálu: ICT-4-01

Algoritmizace. 1. Úvod. Algoritmus

Algoritmizace- úvod. Ing. Tomáš Otáhal

Výukový materiál zpracován v rámci projektu EU peníze školám

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr

Algoritmy a algoritmizace

Algoritmus. Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu.

Základy algoritmizace

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

Pracovní listy - programování (algoritmy v jazyce Visual Basic) Algoritmus

Algoritmizace. Obrázek 1: Přeložení programu překladačem

Úvod do informatiky. Miroslav Kolařík

Lekce 01 Úvod do algoritmizace

Inovace výuky prostřednictvím šablon pro SŠ

Vývojové diagramy - zápis algoritmu

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Algoritmus (nebo dřívějším pravopisem algorithmus)

XD16HT1 Semestrální práce Algoritmy ČVUT FEL obor STM - Softwarové inženýrství, kombinované studium 4. semestr

3 Co je algoritmus? Trocha historie Definice algoritmu Vlastnosti algoritmu... 3

Kinematika pohyb rovnoměrný

ŢELVÍ GRAFIKA VE VISUAL BASIC

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Algoritmus. Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu.

Seminář z Informatiky a výpočetní techniky. Slovanské gymnázium Olomouc 4. září 2014 Tomáš Kühr

Kombinované úlohy - cvičení

Proudění ideální kapaliny

GENERÁTOR STŘÍDAVÉHO PROUDU, TROJFÁZOVÁ SOUSTAVA

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

Absolventská a bakalářská práce

HMOTNÝ BOD, POHYB, POLOHA, TRAJEKTORIE, DRÁHA, RYCHLOST

Výuka IVT na 1. stupni

Informatika Algoritmy

Digitální učební materiál

Pojem algoritmus. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava

2. lekce Algoritmus, cyklus Miroslav Jílek

SYSTÉM PRO AUTOMATICKÉ OVĚŘOVÁNÍ ZNALOSTÍ

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

ŠVP Gymnázium Ostrava-Zábřeh Úvod do programování

Vstup a úkoly pro 11. kapitolu IDENTIFIKACE A BALENÍ JAKO SUBSYSTÉM ŘETĚZCE.

1 Základy algoritmizace a programování. 1.1 Algoritmus Možnosti zápisu algoritmů. Základy algoritmizace a programování

Digitální učební materiál

Kombinované úlohy - cvičení

Lenka Zalabová. Ústav matematiky a biomatematiky, Přírodovědecká fakulta, Jihočeská univerzita. zima 2012

NÁZEV ROČNÍKOVÉ PRÁCE ročníková práce

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

PROFIL BUDOUCÍHO ABSOLVENTA OBORU INFORMATIKA

ZÁKLADY PROGRAMOVÁNÍ & ALGORITMIZACE VE VBA

Digitální učební materiál

3. Matice a determinanty

ALGORITMIZACE. Výukový materiál pro tercii osmiletého gymnázia

Navigace na webových stránkách

Digitální učební materiál

Jak funguje asymetrické šifrování?

MANUÁL K APLIKACI SOFTRADE. 1. Pohyb v aplikaci 2. Aukce obálkového výběru 3. Aukce otevřená v ceně

Digitální učební materiál

Číselné množiny Vypracovala: Mgr. Iva Hálková

Tento materiál byl vytvořen v rámci projektu Operačního programu Vzdělávání pro konkurenceschopnost.

GRAFY A GRAFOVÉ ALGORITMY

Digitální učební materiál

Základní škola a Mateřská škola Jaroslavice, okres Znojmo,

Zlatý řez nejen v matematice

IDEÁLNÍ KRYSTALOVÁ MŘÍŽKA

ŘEŠENÍ MULTIPLIKATIVNÍCH ROVNIC V KONEČNÉ ARITMETICKÉ STRUKTUŘE

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Kolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín

Reálná čísla a výrazy. Početní operace s reálnými čísly. Složitější úlohy se závorkami. Slovní úlohy. Číselné výrazy. Výrazy a mnohočleny

elektrický potenciál, permitivita prostředí, dielektrikum, elektrické napětí, paralelní a sériové zapojení Obrázek 1: Deskový kondenzátor

BAKALÁŘSKÁ PRÁCE. Numerické metody jednorozměrné minimalizace

Matematika kr sy. 5. kapitola. V hoda pr ce s grupami

Jarníkův algoritmus. Obsah. Popis

Regulární matice. Věnujeme dále pozornost zejména čtvercovým maticím.

Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto:

Šetření akreditovaných a neakreditovaných vzdělávacích programů MŠMT za rok 2011

Gymnázium, Brno. Matice. Závěrečná maturitní práce. Jakub Juránek 4.A Školní rok 2010/11

NPRG030 Programování I 3/2 Z --- NPRG031 Programování II --- 2/2 Z, Zk

RETROSPEKTIVNÍ DOPLŇOVÁNÍ KNIHOVNÍCH FONDŮ V KRAJSKÝCH KNIHOVNÁCH

Seminární práce obecné a technické pokyny

Uživatelská příručka pro Příkazce / Správce zdrojů financování. Projekt DMS modul Faktury

Digitální učební materiál

Algoritmizace. Cíle předmětu

ELEKTRICKÝ PROUD V KAPALINÁCH, VYUŽITÍ ELEKTROLÝZY V PRAXI

Geometrie zakřiveného prostoru aplikace s fyzikální tématikou

KONFIGURACE SILNIČNÍCH KŘIŽOVATEK

Slovní úlohy v učivu matematiky 1. stupně základní školy

Manuál k databázi soupisů duší

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Základy algoritmizace

Jméno autora: Mgr. Zdeněk Chalupský Datum vytvoření: Číslo DUM: VY_32_INOVACE_18_ZT_TK_2

Závěrečná zpráva projektu specifického výzkumu. zakázka č. 2107

SIMPROKIM METODIKA PRO ŠKOLENÍ PRACOVNÍKŮ K IZOVÉHO MANAGEMENTU

IB111 Úvod do programování skrze Python Přednáška 13

Algoritmizace prostorových úloh

ALGORITMIZACE Příklady ze života, větvení, cykly

Predispozice pro výuku IKT (2015/2016)

TouchGuard Online pochůzkový systém

Programování a algoritmizace

Inovace výuky prostřednictvím šablon pro SŠ

EU PENÍZE ŠKOLÁM NÁZEV PROJEKTU : MÁME RÁDI TECHNIKU REGISTRAČNÍ ČÍSLO PROJEKTU :CZ.1.07/1.4.00/

Relační databáze a povaha dat

BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky

Transkript:

DUM Algoritmy DUM III/2-T1-1-1 PRG-01A-var1 Téma: Úvod do algoritmů - výklad Střední škola Rok: 2012 2013 Varianta: A Zpracoval: Mgr. Pavel Hrubý VÝKLAD Pojem algoritmus a jeho základní vlastnosti Obsah Algoritmus... 2 Vlastnosti algoritmu... 3 Konečnost (finitnost)... 3 Obecnost (hromadnost, masovost, univerzálnost)... 3 Determinovanost... 3 Výstup (resultativnost)... 3 Elementárnost... 3 Algoritmizace... 3 Analýza úlohy... 4 Vytvoření algoritmu úlohy... 4 Sestavení programu... 4 Odladění programu... 4 Příklady algoritmů... 4 Algoritmus zatloukání hřebíků... 4 Algoritmus přechodu křižovatky, řízené semaforem... 5 Zdroje a odkazy:... 5 DUM-III2-T1-1-01_vyklad_1-uvod_do_algoritmu.docx stránka 1

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ř. kuchařský recept. V užším smyslu se slovem algoritmus rozumí takové postupy, které splňují některé silnější požadavky: konečnost (finitnost) obecnost (hromadnost, masovost, univerzálnost) determinovanost výstup (resultativnost) elementárnost Algoritmy vznikaly už dávno před zkonstruováním prvních počítačů. Samotné slovo "algoritmus" vzniklo ze jména perského matematika, který žil v 9. století a jmenoval se Mohammed al-khowarizmí (v latinském přepise Algoritmus). Zabýval se především pravidly pro aritmetické operace s čísly. Například Eukleidův algoritmus pro výpočet největšího společného dělitele dvou přirozených čísel pochází už z 4. až 3. století před naším letopočtem. Algoritmy můžeme zapisovat buď v přirozeném jazyce nebo v některém z vyšších programovacích jazyků a nebo přímo ve strojovém kódu počítače či strojovém kódu hypotetického počítače, kterým je například Turingův stroj. Pokud chcete hlouběji pochopit, co to vlastně algoritmus je a udělat si pořádek v pojmech kolem algoritmů, je nutné se nejdříve věnovat trošce nezbytné teorie. DUM-III2-T1-1-01_vyklad_1-uvod_do_algoritmu.docx stránka 2

Vlastnosti algoritmu 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. 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 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. 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) Elementárnost Algoritmus se skládá z konečného počtu jednoduchých (elementárních) kroků. Algoritmizace Algoritmizace je postup při tvorbě programu pro počítač, kterým lze prostřednictvím algoritmu řešit nějaký problém. Algoritmizaci lze rozdělit do několika etap: 1. Formulace problému 2. Analýza úlohy 3. Vytvoření algoritmu 4. Sestavení programu 5. Odladění programu 6. Formulace problému V této etapě je třeba přesně formulovat požadavky, určit výchozí hodnoty, požadované výsledky, jejich formu a přesnost řešení. DUM-III2-T1-1-01_vyklad_1-uvod_do_algoritmu.docx stránka 3

Analýza úlohy Při analýze úlohy si ověříme, zda je úloha řešitelná a uděláme si první představu o jejím řešení. Dále zjistíme, zda výchozí hodnoty jsou k řešení postačující a zda má úloha více řešení. Podle charakteru úlohy vybereme nejvhodnější řešení. Vytvoření algoritmu úlohy Sestavíme jednoznačný sled jednotlivých operací, které je třeba provést, aby byla úloha správně vyřešena. Algoritmus přesně popisuje postup zpracování daného úkolu, nedává však odpověď na daný problém, ale pouze postup, jak ji získat. Sestavení programu Na základě algoritmu řešené úlohy sestavíme program (zdrojový text) v konkrétním programovacím jazyce. Ze zdrojového textu se pomocí překladače do strojového kódu vytvoří spustitelný program. Dá se tedy říci, že dobře provedená analýza úlohy a algoritmizace daného problému je základním předpokladem sestavení programu pro počítač. Odladění programu Cílem odladění je odstranění chyb z programu. Nejčastější chyby jsou chyby v zápise, tzv. syntaktické - ty odhalí překladač. Závažnější jsou logické chyby, vyplývající z nesprávně navrženého algoritmu, nebo chyby, vzniklé špatným předpokladem v etapě formulace nebo analýzy úlohy - ty se projeví nesprávnou činností programu nebo špatnými výsledky - při odstraňování těchto chyb může pomoci ladící program (debugger) umožňující sledování aktuálního stavu proměnných a krokování. Teprve po odstranění všech druhů chyb můžeme program použít k praktickému řešení úloh. Příklady algoritmů Algoritmus zatloukání hřebíků Formulace problému: Zatluč hřebík do desky. Analýza úlohy: Vstupní údaje: kladivo, hřebík, deska Výstupní údaje: hřebík zatlučen do desky Analýza: tlouct tak dlouho, dokud není hřebík zatlučen až po hlavičku Sestavení algoritmu Slovní popis: 1. Vezmi kladivo a hřebík 2. Přilož hřebík k desce 3. Uhoď kladivem na hlavičku 4. Je hřebík zatlučen? 5. ANO - pokračuj bodem 5 6. NE - vrať se na bod 3 7. Ukonči činnost a odlož kladivo DUM-III2-T1-1-01_vyklad_1-uvod_do_algoritmu.docx stránka 4

Algoritmus přechodu křižovatky, řízené semaforem Formulace problému: Přejdi na druhou stranu ulice. Analýza úlohy: Vstupní údaje: přechod, semafor Výstupní údaje: pozice na druhé straně ulice Analýza: přes přechod se nechodí na červenou Sestavení algoritmu Slovní popis: 1. Dojdi až k semaforu 2. Svítí na semaforu červená? 3. ANO - čekej, vrať se na bod 2 4. NE - pokračuj bodem 3 5. Přejdi přes přechod Zdroje a odkazy: Wikipedie: Otevřená encyklopedie: Algoritmus [online]. c2012 [citováno 7. 8. 2012]. Dostupný z WWW: <http://cs.wikipedia.org/w/index.php?title=algoritmus&oldid=9117438> DIVIŠ, Josef. Algoritmus. SPŠE Mohelnice; [online]. c2012 [citováno 7. 8. 2012]. Dostupný z WWW: < http://www.spsemoh.cz/vyuka/algor/> MIČKA, Pavel.. Algoritmy.net. [online]. c2012 [citováno 7. 8. 2012]. Dostupný z WWW: http://www.algoritmy.net/ WRÓBLEWSKI, Piotr. Algoritmy : Datové struktury a programovací techniky. Brno : Computer press, 2004. 351 s. ISBN 80-251-0343-9. DUM-III2-T1-1-01_vyklad_1-uvod_do_algoritmu.docx stránka 5