3 Co je algoritmus? 2 3.1 Trocha historie... 2 3.2 Definice algoritmu... 3 3.3 Vlastnosti algoritmu... 3

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

Základy algoritmizace

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

Lekce 01 Úvod do algoritmizace

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

Algoritmizace. Cíle předmětu

Algoritmizace prostorových úloh

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

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

2. lekce Algoritmus, cyklus Miroslav Jílek

Algoritmizace. 1. Úvod. Algoritmus

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

Programování a algoritmizace

Algoritmizace prostorových úloh

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

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

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

VISUAL BASIC. Přehled témat

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:

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

Programovací jazyk Pascal

Program a životní cyklus programu

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

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

ALGORITMIZACE A PROGRAMOVÁNÍ

Úvod do programování

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

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

Algoritmizace a programování

Algoritmizace a programování

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

Vývojové diagramy 1/7

Programování: základní konstrukce, příklady, aplikace. IB111 Programování a algoritmizace

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

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

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

Algoritmizace a programování

Poslední nenulová číslice faktoriálu

Rekurze. Pavel Töpfer, 2017 Programování 1-8 1

Michal Krátký. Úvod do programování. Cíl kurzu. Podmínky získání zápočtu III/III

Pojem algoritmus a jeho základní vlastnosti

Obecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012

Algoritmizace. Algoritmizace (Y36ALG), Šumperk - 1. přednáška 1

NMIN101 Programování 1 2/2 Z --- NMIN102 Programování /2 Z, Zk

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

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

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01

NMIN101 Programování 1 2/2 Z --- NMIN102 Programování /2 Z, Zk

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

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

IAJCE 07/08 Přednáška č. 1. naučit myslet transformace reálných problémů na funkční programy základy programování

Úvod do informatiky. Miroslav Kolařík

Překladač a jeho struktura

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

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

Maturitní témata. IKT, školní rok 2017/18. 1 Struktura osobního počítače. 2 Operační systém. 3 Uživatelský software.

Základy algoritmizace a programování

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

Řídicí struktury. alg3 1

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ , 5.1 a 5.2 8/14

Algoritmy a algoritmizace

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

Funkce pokročilé možnosti. Úvod do programování 2 Tomáš Kühr

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

PROGRAMOVÁNÍ V JAZYCE C V PŘÍKLADECH 11 Dynamické datové struktury 11.1 Spojové struktury Příklad PROG_

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

10 Algoritmizace Příklad 2 Word 2007/ VBA

Digitální učební materiál

Algoritmizace prostorových úloh

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

Informatika Algoritmy

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

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

Lekce 04 Řídící struktury

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I

Programování II. Modularita 2017/18

Anotace. Jednotky (tvorba a využití), struktury (typ record),

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

Programování v C++ 1, 1. cvičení

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

Projekt podpořený Operačním programem Přeshraniční spolupráce Slovenská republika Česká republika

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

Algoritmy. BI-PA1 Programování a Algoritmizace I. Ladislav Vagner

Programování I. Martin Pergel,

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

1 Strukturované programování

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

Funkce, intuitivní chápání složitosti

Binární soubory (datové, typované)

Implementace seznamů do prostředí DELPHI pomocí lineárního seznamu

Prohledávání do šířky = algoritmus vlny

6 Příkazy řízení toku

Booleovská algebra. Booleovské binární a unární funkce. Základní zákony.

Algoritmizace prostorových úloh

Matematika v programovacích

Struktura programu v době běhu

2 Strukturované datové typy Pole Záznam Množina... 4

MATURITNÍ TÉMATA Z MATEMATIKY

Úvod do teorie grafů

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

Transkript:

Obsah Obsah 1 Program přednášek 1 2 Podmínky zápočtu 2 3 Co je algoritmus? 2 3.1 Trocha historie............................ 2 3.2 Definice algoritmu.......................... 3 3.3 Vlastnosti algoritmu......................... 3 4 Zapisování algoritmů 4 4.1 Slovní popis.............................. 4 4.2 Vývojový diagram.......................... 4 4.3 Pseudojazyk.............................. 5 4.4 Programovací jazyk.......................... 5 5 Vývojové diagramy 6 6 Algoritmus, program, programovací jazyk 6 6.1 Příklady algoritmů.......................... 7 1 Program přednášek Program předmětu 1. Úvod, algoritmus, program, programovací jazyk. 2. Paměť počítače, jednoduché datové typy, interpretace čísel, struktura programu v jazyce Pascal. 3. Znakové a řetězcové typy, funkce pro práci s řetězci. 4. Řídící struktury podmínky, cykly. 5. Strukturované programování procedury, funkce. 6. Rozklad problému na podproblémy, rekurze. 7. Práce se soubory.

Program předmětu 8. Strukturované datové typy. 9. Správa datových struktur na heapu, ukazatele. 10. Modulární programování unity. 11. Složitější datové struktury fronta, zásobník,... 12. Funkce v externích jednotkách (CRT, DOS, GRAPH). 13. Rezerva 14. Rezerva, informace o zkoušce. 2 Podmínky zápočtu Podmínky zápočtu 1. Povinná docházka. Jsou povolené 3 neomluvené neúčasti. Jako omluvu účasti na cvičení je možné uznat pouze kontrolku od lékaře (ne pouhé potvrzení). Jako účast je považována aktivní účast při neaktivitě je cvičení neomluvené (a neomluvitelné). 2. Úspěšné absolvování 2 průběžných písemných prací. 3. Vypracování semestrální práce. 3 Co je algoritmus? 3.1 Trocha historie Trocha historie Abú Abd Alláh Muhammad Ibn Músá al-chórezmí Abú Dža far Významný perský matematik (cca. 780-840) Kitáb al-džám a wa-l-tafríq bil-hisáb al-hindi Z této knihy jsou arabské číslice a hlavně nula 2

Hisáb al-džabr wa-l-muqábala Původ slova algebra Jméno polatinštěno na Al-Gorizmí, později Algoritmí. Odtud odvozeno slovo algorismus (provádění aritmetiky pomocí arabských číslic), které se zkomolilo na algorithmus a nakonec algoritmus. 3.2 Definice algoritmu Algoritmus Algoritmus je postup řešení určité třídy úloh tvořený seznamem jednoznačných příkazů, který pro každou přípustnou kombinaci vstupních dat zaručuje požadovaný výsledek po provedení konečného počtu kroků. 3.3 Vlastnosti algoritmu Vlastnosti algoritmu Konečnost důležité Každý algoritmus musí skončit v konečném počtu kroků. Postupy, které tuto podmínku nesplňují, se mohou nazývat výpočetní metody. Determinismus důležité 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. Obecnost méně důležité 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 ). Vstup Algoritmus obvykle pracuje s nějakými vstupy, veličinami, které jsou mu předány před započetím jeho provádění, nebo v průběhu jeho činnosti. Vstupy mají definované množiny hodnot, jichž mohou nabývat. Výstup 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ší. Efektivita Obecně požadujeme, aby algoritmus byl efektivní. Požadujeme, aby každá operace požadovaná algoritmem, byla dostatečně jednoduchá na to, aby mohla být alespoň v principu provedena v konečném čase pouze s použitím tužky a papíru. 3

4 Zapisování algoritmů Zapisování algoritmů Jak se dá zapsat algoritmus? Slovní popis Vývojový diagram Program v pseudojazyku Program v programovacím jazyku 4.1 Slovní popis Algoritmus pomocí slovního popisu 1. Dej vodu do konvice 2. Zapni konvici 3. Čekej 1 minutu 4. Pokud je konvice zapnutá, pokračuj bodem 3 5. Nalej vodu z konvice do hrnku 6. Dej čaj do hrnku 7. Čekej 3 minuty 8. Vyndej čaj z hrnku 9. KONEC 4.2 Vývojový diagram Algoritmus pomocí vývojového diagramu 4

4.3 Pseudojazyk Algoritmus v pseudojazyku FUNKCE uvar_caj: dej_vodu_do_konvice; zapni_konvici; DOKUD je_konvice_zapnuta DELEJ cekej(1); KONEC_DOKUD nalej_vodu_do_hrnku; dej_caj_do_hrnku; cekej(3); vyndej_caj_z_hrnku; KONEC_FUNKCE 4.4 Programovací jazyk Algoritmus v programovacím jazyku FUNCTION uvar_caj; BEGIN dej_vodu_do_konvice; zapni_konvici; WHILE je_konvice_zapnuta DO 5

BEGIN cekej(1); END; nalej_vodu_do_hrnku; dej_caj_do_hrnku; cekej(3); vyndej_caj_z_hrnku; END; 5 Vývojové diagramy Trochu více o vývojových diagramech Vývojové diagramy jsou standardizovaný prostředek pro zápis algoritmů (ČSN 36 9030). Používají několik symbolů v kombinaci se slovním popisem. Některé používané symboly: Spojka, mezní značka, spojnice Zpracování Rozhodování Příprava/modifikace Vstup/výstup dat Ruční vstup, interní paměť, paměť s přímým přístupem (disk,... ) Zobrazení 6 Algoritmus, program, programovací jazyk Program algoritmus Algoritmus = postup práce Program = posloupnost příkazů Program realizuje (implementuje) algoritmus, algoritmus je jeho neoddělitelnou součástí. Programy a programovací jazyky Program je předpis pro provedení určitých akcí (algoritmu) zapsaný v programovacím jazyku. Jazyky se dají rozdělit na: 6

strojově orientované (strojový jazyk, assembler) vyšší jazyky (imperativní, neimperativní) Imperativní jazyky (C, Pascal, Java, Basic) Údaje mají formu datových objektů - proměnné, konstanty Program obsahuje deklarace, příkazy, komentáře,... Syntaxe sémantika Syntaxe = skladba souhrn pravidel udávajících přípustné tvary dílčích konstrukcí a celého programu Sémantika význam jednotlivých konstrukcí, které jsou zapsané podle pravidel udaných syntaxí Syntaktická pravidla jsou formou programu a dají se jednoznačně zapsat. Sémantika je obsah programu. 6.1 Příklady algoritmů Příklady algoritmů Kuchařský recept (není regulérní algoritmus) Přecházení přechodu Výpočet zeměpisné polohy Výpočet faktoriálu Hledání nejmenšího společného dělitele Zjištění integrálu funkce není algoritmus Zjištění derivace funkce Třídění čísel Výpočet přesné hodnoty odmocniny není algoritmus 7