Základy algoritmizace a programování. Manažerské informační systémy



Podobné dokumenty
Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

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

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

Základy algoritmizace

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

Algoritmizace prostorových úloh

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

Algoritmizace. 1. Úvod. Algoritmus

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

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

Program a životní cyklus programu

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

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

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

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

Algoritmizace prostorových úloh

Programovací jazyk Pascal

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Algoritmy a algoritmizace

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

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

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

VISUAL BASIC. Přehled témat

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Úvod. Programovací paradigmata

Úvod do programování

Operátory pro maticové operace (operace s celými maticemi) * násobení maticové Pro čísla platí: 2*2

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

Maturitní otázky z předmětu PROGRAMOVÁNÍ

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

Lekce 01 Úvod do algoritmizace

Sada 1 - Základy programování

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

2. lekce Algoritmus, cyklus Miroslav Jílek

Martin Hejtmánek hejtmmar

Vývojové diagramy 1/7

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

ANOTACE vytvořených/inovovaných materiálů

ALGORITMIZACE A PROGRAMOVÁNÍ

Základy algoritmizace

Algoritmizace prostorových úloh

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

NPRG030 Programování I, 2015/16 1 / :25:32

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

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

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

PODPROGRAMY PROCEDURY A FUNKCE

1 Strukturované programování

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

Identifikátor materiálu: ICT-4-01

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Název předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu:

DTP Základy programování Úvod do předmětu

Algoritmizace a programování

Překladač a jeho struktura

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

Základní pojmy algoritmizace a programování ALGORITMUS INSTRUKCE STROJOVÝ KÓD VYŠŠÍ PROGRAMOVACÍ JAZYK ZDROJOVÝ KÓD KOMPILACE

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

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

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

6 Příkazy řízení toku

dovolují dělení velkých úloh na menší = dekompozice

Algoritmizace a programování

Základy algoritmizace a programování

MPASM a IDE pro vývoj aplikací MCU (Microchip)

Závěrečná zkouška z informatiky 2011

IB111 Programování a algoritmizace. Programovací jazyky

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

TÉMATICKÝ OKRUH Softwarové inženýrství

1 Základních pojmy z oblasti programování, vyšší programovací jazyky, programovací paradigmata

Sada 1 - Základy programování

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Podmíněný příkaz

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01

Algoritmizace. Cíle předmětu

U Úvod do modelování a simulace systémů

10. Složitost a výkon

NPRG030 Programování I RNDr.Tomáš Holan, Ph.D. 4.patro, č

Programování 2 (NMIN102) Soubory. RNDr. Michal Žemlička, Ph.D.

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

Poslední nenulová číslice faktoriálu

Algoritmizace a programování

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

Sada 1 - Základy programování

Informační a komunikační technologie

Hodnoticí standard. Programátor (kód: M) Odborná způsobilost. Platnost standardu. Skupina oborů: Informatické obory (kód: 18)

Implementace LL(1) překladů

Úvod do programování - Java. Cvičení č.4

Profilová část maturitní zkoušky 2013/2014

Základy algoritmizace a programování

Lekce 04 Řídící struktury

Profilová část maturitní zkoušky 2017/2018

8 Třídy, objekty, metody, předávání argumentů metod

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

7. OBJEKTOVĚ ORIENTOVANÉ PROGRAMOVÁNÍ

Sada 1 - Základy programování

Úvod do programovacích jazyků (Java)

Složitost Filip Hlásek

Programovací jazyky Přehled a vývoj

Transkript:

Základy algoritmizace a programování Manažerské informační systémy

Algoritmus Popis pracovního postupu, kterým lze řešit určitou skupinu úloh Může být popsán mnoha různými způsoby např. slovním popisem, pomocí matematických vztahů

Proč se učíme algoritmizaci? Znalosti nepoužijeme přímo, ale Učíme se obecně řešit problémy Učíme se logicky myslet Učíme se chápat věci, na které nejsme zvyklí

Cíl cvičení Dovednost řešení problémů s využitím počítače se zaměřením na oblasti hromadného zpracování dat a ekonomických výpočtů

Algoritmus je přesný návod či postup, kterým lze vyřešit daný typ úlohy kuchyňský recept popis cesty vyřízení žádosti sčítání a násobení pod sebou řešení soustavy rovnic

Řízek Naklepej a osol plátek masa Jsi-li vegetarián, použij místo masa zeleninu Obal jej v mouce Vykoupej jej ve vajíčku Obal jej ve strouhance Rozpal olej a vlož do něj obalené maso Smaž dokud není dozlatova usmažený

Vlastnosti algoritmu Obecný (hromadný, univerzální) Konečný Deterministický Opakovatelný Srozumitelný

Algoritmus postup řešení úlohy Popisuje, jak transformovat vstupní údaje na výstupní za přesně stanovených podmínek Příklady vstupem je maso, sůl, mouka, vejce, strouhanka, olej, výstupem je smažený řízek vstupem jsou dvě čísla, výstupem jejich součet vstupem je skupina lidí, výstupem je řada stejných lidí seřazených podle výšky / platu / délky vlasů / vstupem je soustava rovnic, výstupem je řešení

Základní struktury Sekvence (posloupnost) Větvení Cyklus (opakování)

Způsoby zápisu algoritmu Přirozeným jazykem Strukturovaným jazykem Graficky vývojovým diagramem Programovacím jazykem

Příklad algoritmu řidiče Prasklá pneumatika 1. Zastavit 2. Vystoupit 3. Vyměnit kolo 4. Nastoupit 5. Rozjet se

Prasklá pneumatika, pokr. Podrobnější 1. Zastavit 2. Vystoupit a. Otevřít dveře b. Vylézt c. Zavřít dveře 3. Vyměnit kolo a. Vyndat rezervu b. Vyndat hever c. Zvednout auto na hever d. Odšroubovat kolo e. Sundat kolo f. Přišroubovat rezervu g. Spustit auto z heveru h. Uklidit hever i. Uklidit kolo 4. Nastoupit 5. Rozjet se

Prasklá pneumatika, pokr. Ještě podrobnější 1. Zastavit 2. Vystoupit a. Otevřít dveře i. Chytit páčku dveří ii. Zatáhnout za páčku iii. Zatlačit iv. Pustit páčku dveří b. Vylézt c. Zavřít dveře 3. Vyměnit kolo a. Vyndat rezervu b. Vyndat hever c. Zvednout auto na hever d. Odšroubovat kolo e. Sundat kolo f. Přišroubovat rezervu g. Spustit auto z heveru h. Uklidit hever i. Uklidit kolo 4. Nastoupit 5. Rozjet se

Prasklá pneumatika, pokr. Ještě, ještě podrobnější 1. Zastavit 2. Vystoupit a. Otevřít dveře i. Chytit páčku dveří α. Najít páčku dveří β. Roztáhnout prsty levé ruky χ. Změnit polohu levé ruky, aby se dotýkala páčky δ. Sevřít prsty levé ruky ii. Zatáhnout za páčku iii. Zatlačit iv. Pustit páčku dveří b. Vylézt c. Zavřít dveře 3. Vyměnit kolo a. Vyndat rezervu b. Vyndat hever c. Zvednout auto na hever d. Odšroubovat kolo e. Sundat kolo f. Přišroubovat rezervu g. Spustit auto z heveru h. Uklidit hever i. Uklidit kolo 4. Nastoupit 5. Rozjet se

Program Pokud chceme, aby algoritmus vykonával nějaký konkrétní stroj, musíme ho přetvořit v program Program je složen pouze z příkazů, kterým daný stroj rozumí Seznam příkazů, kterým rozumí nějaký stroj a pravidla pro jejich používání jsou programovací jazyk Na chytrosti stroje závisí míra abstrakce programovacího jazyka, jehož příkazy je stroj schopen vykonávat Implementovat složitý programovací jazyk v hardwaru je složité hardware rozumí spíše jednoduchým jazykům = strojovému kódu Psát program ve strojovém kódu je těžké pro člověka programuje se ve vyšším jazyce (Visual Basic), který se pak překládá (transformuje, rozepisuje) do strojového kódu Algoritmus/program by měl být: Správný reagovat správně na všechny možné vstupní stavy dané úlohy Efektivní dosáhnout správného výsledku v rozumném čase

Prasklá pneumatika, pokr. Funguje algoritmus vždy? 1. Zastavit 2. Vystoupit a. Otevřít dveře b. Vylézt c. Zavřít dveře 3. Vyměnit kolo 4. Nastoupit 5. Rozjet se a. Vyndat rezervu b. Vyndat hever c. Zvednout auto na hever d. Odšroubovat kolo e. Sundat kolo f. Přišroubovat rezervu g. Spustit auto z heveru h. Uklidit hever i. Uklidit kolo

Prasklá pneumatika, pokr. Co bezpečnostní pásy? 1. Zastavit 2. Vystoupit a. Otevřít dveře b. Rozepnout bezpečnostní pás c. Vylézt d. Zavřít dveře 3. Vyměnit kolo a. Vyndat rezervu b. Vyndat hever c. Zvednout auto na hever d. Odšroubovat kolo e. Sundat kolo f. Přišroubovat rezervu g. Spustit auto z heveru h. Uklidit hever i. Uklidit kolo 4. Nastoupit 5. Rozjet se

Prasklá pneumatika, pokr. Co když jsme na kopci? 1. Zastavit 2. Zatáhnout ruční brzdu 3. Vystoupit a. Otevřít dveře b. Rozepnout bezpečnostní pás c. Vylézt d. Zavřít dveře 4. Vyměnit kolo a. Vyndat rezervu b. Vyndat hever c. Zvednout auto na hever d. Odšroubovat kolo e. Sundat kolo f. Přišroubovat rezervu g. Spustit auto z heveru h. Uklidit hever i. Uklidit kolo 5. Nastoupit 6. Rozjet se

Prasklá pneumatika, pokr. Objekty Bude algoritmus fungovat v případě, když zastavíme před domem, který má otevřené vstupní dveře? 3. Vystoupit a. Otevřít dveře b. Rozepnout bezpečnostní pás c. Vylézt d. Zavřít dveře V daném kontextu není jasný vlastník objektu, musíme specifikovat komu dveře patří : 3. Vystoupit a. Otevřít dveře auta b. Rozepnout bezpečnostní pás c. Vylézt d. Zavřít dveře auta

Prasklá pneumatika, pokr. Objekty Co když zastavím vedle cizího auta s otevřenými dveřmi? 3. Vystoupit a. Otevřít dveře mého auta b. Rozepnout bezpečnostní pás c. Vylézt d. Zavřít dveře mého auta auto je typ, resp. třída objektu mé auto, stejně jako Petrovo auto jsou konkrétní instance, resp. objekty typu, resp. třídy auto

Objektové programování Např. objekt typu dům Objekt může obsahovat další objekty: Např. objekt dveře a objekty okno Objekt má vlastnosti Např. barva fasády, výška Vlastnosti objektu nemusí být viditelné Např. rok postavení, jméno ulice kde stojí Vlastnost objektu může nabývat pouze některých hodnot určeno typem vlastnosti barva fasády: OK zelená, CHYBA 3,14 výška domu: OK 20 metrů, CHYBA žlutá Čili: barva fasády je typu barva, výška domu je typu číslo v metrech Na objektu může jít provádět operace : Např. přemalovat změna vlastnosti barva fasády Např. přistavět patro změna vlastnosti výška domu, ale také změna vnitřní strukturu objektu Např. zbourat Objekt může reagovat na události

Algoritmus spolujezdce dívej se z okna podívej se, jestli nepraskla pneumatika; pokud ano, upozorni řidiče a po zastavení vyměň kolo kousej si nehty na rukou podívej se zda nezlobí děti; pokud ano, tak je zpacifikuj pokud je uvnitř auta teplo, otevři okénko; až začne být v autě zima, zavři okénko dívej se z okna podívej se, jestli nepraskla pneumatika; pokud ano, upozorni řidiče a po zastavení vyměň kolo

Algoritmus spolujezdce Reakce na události Události: praskla pneumatika upozorni řidiče a po zastavení vyměň kolo děti zlobí uklidni je v autě je teplo otevři okénko v autě je zima zavři okénko Událostmi řízené programování Zjednodušuje psaní programů s objekty

Základy algoritmizace a programování Algoritmus je posloupnost operací, která řeší daný úkol v konečném počtu kroků. je to přesný postup, který je potřeba k vykonání určité činnosti 3

Způsoby zápisu algoritmu Přirozeným jazykem Strukturovaným jazykem Graficky vývojovým diagramem Programovacím jazykem

Programovací jazyky první generace strojový kód druhá generace jazyk symbolických adres třetí generace jazyky vyšší úrovně čtvrtá generace podobné přirozené řeči

Strojový kód 11110010 01110011 1101 001000010000 11110010 01110011 1101 001000011000 11111100 01010010 1101 001000010010 11110000 01000101 1101 001000010011 11110011 01000011 0111 000010010000

Jazyk symbolických adres TestProc proc mov ecx, 10 xor eax, eax ; LoopStart: inc eax dec ecx jnz LoopStart ; eax now equals 10 ret TestProc endp

Jazyk vyšší úrovně program ObvodKruznice; const PI = 3.1415926; var r, o : real; begin write( Zadej polomer kruznice: '); readln(r); if r <= 0 then writeln( CHYBA!!! ) else begin o := 2 * PI * r; writeln( Obvod kruznice o polomeru, r:2:2, je, o:2:2,. ); end; readln; end.

Podobné přirozené řeči VYBER jmeno, prijmeni, telefon ZE zakaznici KDE vek > 30 A mesto = Brno A prijem MEZI 10000 A 20000

Program Program je zápis algoritmu pomocí příkazů programovacího jazyka

Chyby v programech Syntaktické - špatně zapsaný nějaký příkaz. Překlad programu se zastaví a zobrazí hlášení o chybě Logické - program je funkční, ale nedělá co Logické - program je funkční, ale nedělá co má. Může skončit v nekonečném cyklu. Pro ladění se vždy používá několik kontrolních příkladů.

Rozdělení programovacích jazyků Obecné - (C, C++, C#, Objekt Pascal, Visual Basic,.NET Framework, Java) Databázové (MS Fox Pro, Oracle) Pro webové klienty (Java, JavaScript, ActiveX) Specializované (makrojazyky, simulační jazyky)

Překladač a interpret Překladač neboli kompilátor je program, který ze zdrojového kódu vytvoří spustitelný soubor. Vytvoří instrukce pro procesor. Iterpret načítá program v textovém zápisu a okamžitě Iterpret načítá program v textovém zápisu a okamžitě jednotlivé příkazy vykonává. Program tedy není předem přeložený. Používá se například u skriptů ve webových stránkách

Vývojové prostředí Je to komplexní nástroj na tvorbu programů. Obsahuje: překladač pro určený programovací jazyk nástroje na vizuální tvorbu programu hotové komponenty programů nástroje pro ladění a odstraňování chyb

Důležité pojmy Proměnná - je to místo v paměti počítače, ve kterém se nachází určitá hodnota Identifikátor - je název proměnné Datový typ - je to určitý typ proměnné Datový typ - je to určitý typ proměnné char - znak integer - celé číslo real - reálné číslo boolean - logická proměnná

Důležité pojmy Deklarace stanovení proměnných jakého jsou typu. Provádí se vždy na začátku programu. Operátory a standardní funkce Matematické Logické Syntaxe přesné určení, jak se mají jednotlivé příkazy a části programu zapisovat

Strukturované programování Je to soubor doporučení, jak by měl dobře napsaný program vypadat. Tato doporučení vytvářejí jakési mantinely pro programátory. Strukturované programování používá: Proměnné Procedury Funkce

Objektové programování Je to soubor doporučení, jak by měl dobře napsaný program vypadat. Objektové programování používá: Proměnné Procedury Funkce Objekty Objekt obsahuje vlastní data a nástroje (metody). Objekty mezi sebou komunikují tím, že si zasílají zprávy. Při objektovém přístupu k tvorbě programu nezkoumáme způsob funkce programu, ale způsob změn dat. Objektový program je řízem tokem událostí.

Vizuální programování Vizuální programování je dnes většinou objektové a současně strukturované. Spočívá v tom, že velké množství standardně používaných objektů (tlačítka, políčka, práci se soubory) je již připraveno a jen je myší přetahujeme do vytvářeného programu.

Makra Makro je posloupnost příkazů, které potřebujeme při úpravě dokumentu postupně vykonat. Makra zaznamenáváme tzv. makrokamerou, Makra zaznamenáváme tzv. makrokamerou, která je součástí většiny programů.

Algoritmus je posloupnost operací, která řeší daný úkol v konečném počtu kroků. je to přesný postup, který je potřeba k vykonání určité činnosti

Algoritmus po krocích rozepsaný návod k nějaké činnosti 800-825 arabský matematik Muhamad ibn Musá al Chwárizmí, lat. překlad jeho knihy o početních postupech Agoritmi dicit Tak praví Al Chwárizmí. 30. léta 20. století znovuzavedl Alan Turing + navrhnul formální popis algoritmu (tkzv. Turingův stroj) algoritmus = matematický pojem, definice pouze opisem (podobně jako bod, množina)

Algoritmus ALGORITMUS MNOŽINA VSTUPNÍCH DAT transformace množiny vstupních dat na množinu výstupních dat MNOŽINA VÝSTUPNÍCH DAT

Algoritmus dávkové X dialogové zpracování X událostmi řízené zpracování (stav. automat) počáteční údaje (čas 0) ALGORITMUS dílčí výstupy Průběžné vtupní údaje (čas ti>0) transformace množiny vstupních dat na množinu výstupních dat dílčí výstupy

Algoritmus Vlastnosti algoritmu: musí mít začátek a konec (Rezultativnost - konečnost) - algoritmus musí proběhnout v konečném počtu kroků musí být věcně správný musí být jednoznačný (determinovanost - podmíněnost) - všechny operace i jejich návaznosti musí být jednoznačně určeny (definovány) a nic nesmí být náhodné musí být obecný (hromadnost) - algoritmus musí řešit úlohu pro různé vstupní hodnoty musí být opakovatelný (opakovatelnost) - při stejných vstupních hodnotách musíme dostat vždy stejný výsledek musí být srozumitelný

Možnosti zápisu algoritmů Slovní vyjádření Matematické vyjádření Vývojové diagramy Rozhodovací tabulky Počítačové programy Objektová analýza

Slovní vyjádření Používá se pro skupinu lidí, která nemá programátorské vzdělání návody k obsluze, recepty, postup práce Výhody: lze se domluvit i s laikem Nevýhody: málo přehledné nemá nástroje k dodržení vlastností algoritmu

Matematický zápis Používá se tam, kde je možné daný problém popsat matematickým vyjádřením Výhody: je jednoznačný Nevýhody: může být málo podrobný Při neošetření vstupních podmínek nemusí být věcně správný

Vývojové diagramy Je to symbolický, algoritmický jazyk, který se používá pro názorné zobrazení algoritmu. Výhody: jednoznačný komunikační prostředek při týmové práci přehledný má nástroje k dodržení vlastností algoritmu k dokumentačním účelům je přehlednější než výpis programu Nevýhody: laik mu nemusí rozumět

Rozhodovací tabulky Používá se v případě, kdy se v dané úloze vyskytuje několik možností a vlastní řešení je pro každou možnost jednoznačně popsatelné (rozvrh, tabulka logického součinu..) Výhody: jednoznačný a přehledný zápis je vhodný při vštším počtu možností řešení většina uživatelů tabulkám rozumí Nevýhody: nehodí se pro každý typ úloh tabulka může ztratit přehlednost

Počítačový program Používá se pro zápis instrukcí z vytvořeného algoritmu, kterému počítač rozumí a umí z něho vytvořit strojový kód Výhody: forma zápisu, které rozumí člověk i počítač (pokud je vybaven příslušným překladačem) nedá se ničím nahradit ani obejít Nevýhody: zápisu rozumí pouze programátor, který umí daný programovací jazyk výpis může být málo názorný a nepřehledný

Objektová analýza Tato metoda se používá v objektově orientovaném programování Výhody: forma zápisu, které rozumí člověk i počítač (pokud je vybaven příslušným překladačem) nedá se ničím nahradit ani obejít Nevýhody: zápisu rozumí pouze programátor, který umí daný programovací jazyk výpis může být málo názorný a nepřehledný

Skoro algoritmus - příklad Úloha: Sestavit návod na čištění zubů ve formě algoritmu Cíl: Vyčištění zubů daného člověka Prostředky: zdravá osoba (ústa, zuby, pohyblivá ruka, ) zubní kartáček, zubní pasta, sklenička na vodu, umyvadlo

Člověk s nevyčištěnými zuby Algoritmus - příklad Příprava kelímku a čisticího kartáčku ALGORITMUS ČIŠTĚNÍ ZUBŮ Vlastní čištění zubů Uklizení kelímku a kartáčku Člověk s vyčištěnými zuby

Člověk s nevyčištěnými zuby Algoritmus - příklad ALGORITMUS ČIŠTĚNÍ ZUBŮ Příprava kelímku a čisticího kartáčku Vytáhni kartáček a kelímek ze skříňky. Do kelímku nalej pitnou vodu. Na kartáček nanes pastu. Vlastní čištění zubů Uklizení kelímku a kartáčku Krouži kartáčkem postupně po všech zubech, asi 2 minuty. Vypláchni si ústa. Smyj zbytky pasty z kartáčku. Opět krouži 2 min. čistým kartáčkem po zubech. Vypláchni si ústa. Umyj kartáček proudem vody. Vylij vodu z kelímku a vypláchni ho čistou vodou. Ukliď kelímek i kartáček do skříňky. Člověk s vyčištěnými zuby

Člověk s nevyčištěnými zuby Algoritmus - příklad Příprava kelímku a čisticího kartáčku Vlastní čištění zubů Uklizení kelímku a kartáčku ALGORITMUS ČIŠTĚNÍ ZUBŮ Vytáhni kartáček a kelímek ze skříňky. Do kelímku nalej pitnou vodu. Na kartáček nanes pastu. Otevři skříňku. Je tam kelímek? Ne konec Ano pokračuj Pusť kohoutkem vodu. Krouži kartáčkem postupně po všech zubech, asi 2 minuty. Teče? Vypláchni si ústa. Smyj zbytky pasty z kartáčku. Ne konec Opět krouži 2 min. čistým kartáčkem po zubech. Ano pokračuj Vypláchni si ústa. Natoč do ¾ kelímku vodu. Zavři kohoutkem vodu. Umyj kartáček proudem vody. Vylij vodu z kelímku a vypláchni ho čistou vodou. Zavři skříňku. Ukliď kelímek i kartáček do skříňky. Člověk s vyčištěnými zuby

Vlastnosti algoritmu Elementárnost. Skládá se z konečného počtu jednoduchých (elementárních) činností (kroků). Determinovanost. V každém kroku lze rozhodnout, jak se má pokračovat (a jestli nenastal konec). Konečnost. Algoritmus vždy skončí po konečném počtu kroků. Rezultativnost. Vede ke správnému výsledku (k nějakému ). Hromadnost. Použitelný pro celou třídu podobných problémů. Opakovatelnost. Pro stejné vstupy vždy stejný výstup. Souvisí s determinovaností a rezultativností.

Algoritmizace úlohy Způsoby zápisu algoritmů Slovní popis (přirozeným jazykem). Grafické znázornění (např. vývojový diagram). Programovací jazyk (např. C). Obsahuje klíčová slova, operátory, speciální znaky a identifikátory.

Algoritmizace úlohy Procesor: objekt (člověk či stroj), který vykonává algoritmem popisovanou činnost. Druh procesoru různé formulace kroků algoritmu Program: algoritmus zapsaný v nějakém programovacím jazyce.

Algoritmizace úlohy Etapy řešení problému 1. Specifikace (vymezení) problému 2. Analýza problému 3. Sestavení algoritmu 4. Kódování (zápis) algoritmu 5. Testování algoritmu (u programů ladění)

Vývojové diagramy Postup Běžný příkaz Rozhodování Podmíněný příkaz Čtení údajů - Zobrazení výstupu Tisk sestavy - Zpracování souboru

Konec a začátek algoritmu Podprogram Cyklus s určeným počtem opakování Uložení dat do souboru

Vývojové diagramy

Vývojové diagramy - Příklady

SEKVENCE

Větvení

Cyklus