2. lekce Algoritmus, cyklus Miroslav Jílek

Podobné dokumenty
8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

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

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

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

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

Algoritmizace prostorových úloh

Řídicí struktury. alg3 1

VISUAL BASIC. Přehled témat

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

Příkaz while. while (podmínka) { příkaz; } Příklad: int i=0; while (i < 10) { System.out.println(i); i++; } // vypíše čísla od 0 do 9

Lekce 01 Úvod do algoritmizace

Algoritmizace. 1. Úvod. Algoritmus

Základy algoritmizace

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

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

Algoritmizace prostorových úloh

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

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

Algoritmizace a programování

Poslední nenulová číslice faktoriálu

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

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

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

Algoritmizace a programování

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

Algoritmy a datové struktury

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

Zadání: TÉMA: Zápis algoritmu, čtení textového souboru, porovnání řetězců.

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

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

3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti

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

Algoritmizace. Cíle předmětu

Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů

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

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

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

Algoritmy. BI-PA1 Programování a Algoritmizace 1. Miroslav Baĺık, Ladislav Vagner a Josef Vogel

Informatika Algoritmy

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

Operační systémy. Cvičení 4: Programování v C pod Unixem

Algoritmizace a programování

Úvod do programování

6 Příkazy řízení toku

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

Lekce 04 Řídící struktury

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

Funkce, podmíněný příkaz if-else, příkaz cyklu for

Programování a algoritmizace

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

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

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

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

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

10 Algoritmizace Příklad 2 Word 2007/ VBA

Tematická oblast: Programování 2 (VY_32_INOVACE_08_2_PR) Anotace: Využití ve výuce: Použité zdroje:

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

6. Příkazy a řídící struktury v Javě

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:

Vývojové diagramy - zápis algoritmu

Rozklad na prvočinitele. 3. prosince 2010

Martin Flusser. November 1, 2016

LED_007.c Strana: 1/5 C:\Michal\AVR\Výukové programy\archiv\ Poslední změna: :01:48

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

Činnost: 1) Vyhodnotí se výraz E. 2) Jeho hodnota se uloží do proměnné V.

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Programovací jazyk Pascal

Identifikátory označují objekty v programu používané (proměnné, typy, podprogramy).

Programovani v Maplu Procedura

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01

Strukturu lze funkci předat: (pole[i])+j. switch(výraz) velikost ukazatele

ZÁKLADY PROGRAMOVÁNÍ & ALGORITMIZACE VE VBA

Klíčové pojmy: Cyklus, řídící proměnná, inicializace, test podmínky, přerušení cyklu, vnořování cyklů.

Martin Hejtmánek hejtmmar

Basic256 - úvod do programování Příklady. ing. petr polách

Programování I. Martin Pergel,

Úvod do programování. Lekce 3

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

IB111 Programování a algoritmizace. Programovací jazyky

Počítačová simulace logistických procesů I. 11. přednáška Programování v SimTalk. ŠAVŠ, Fábry

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

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

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje

Algoritmy a algoritmizace

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

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

MQL4 COURSE. By Coders guru -5 Smyčky & Rozhodnutí Part 1

5. kapitola Spouštění aplikací Visual Basic.Net, spustitelné soubory

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

Řídící struktury, if, while, switch

Základy algoritmizace a programování

Oborové číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B

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

Algoritmy. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 15. dubna / 39

Program a životní cyklus programu

MQL4 COURSE. By Coders guru -5 Smyčky & Rozhodnutí Část 2

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

PODPROGRAMY PROCEDURY A FUNKCE

Základní stavební prvky algoritmu

Větvení a cykly. Úvod do programování 1 Tomáš Kühr

Transkript:

2. lekce Algoritmus, cyklus Miroslav Jílek 1/36

Algoritmus 2/36

Algoritmus je konečná posloupnost operací, která dává řešení skupiny problémů 3/36

Algoritmus je konečná posloupnost operací, která dává řešení skupiny problémů je tvořen seznamem (list) přesně definovaných příkazů 4/36

Algoritmus je konečná posloupnost operací, která dává řešení skupiny problémů je tvořen seznamem (list) přesně definovaných příkazů vrací očekávané výsledky pro jakákoli vstupní data 5/36

Algoritmus je konečná posloupnost operací, která dává řešení skupiny problémů je tvořen seznamem (list) přesně definovaných příkazů vrací očekávané výsledky pro jakákoli vstupní data výsledky musí být nalezeny po konečném počtu operací (kroků) 6/36

Algoritmus je konečná posloupnost operací, která dává řešení skupiny problémů je tvořen seznamem (list) přesně definovaných příkazů vrací očekávané výsledky pro jakákoli vstupní data výsledky musí být nalezeny po konečném počtu operací (kroků) Vlastnosti algoritmu 7/36

Algoritmus je konečná posloupnost operací, která dává řešení skupiny problémů je tvořen seznamem (list) přesně definovaných příkazů vrací očekávané výsledky pro jakákoli vstupní data výsledky musí být nalezeny po konečném počtu operací (kroků) Vlastnosti algoritmu univerzálnost řeší skupinu podobných problémů, konkrétní problém je zadán pomocí vstupních dat 8/36

Algoritmus je konečná posloupnost operací, která dává řešení skupiny problémů je tvořen seznamem (list) přesně definovaných příkazů vrací očekávané výsledky pro jakákoli vstupní data výsledky musí být nalezeny po konečném počtu operací (kroků) Vlastnosti algoritmu univerzálnost řeší skupinu podobných problémů, konkrétní problém je zadán pomocí vstupních dat determinovanost každý krok algoritmu je jednoznačně (clear) definován, výsledek zpracování stejných dat musí dát stejný výsledek 9/36

Algoritmus je konečná posloupnost operací, která dává řešení skupiny problémů je tvořen seznamem (list) přesně definovaných příkazů vrací očekávané výsledky pro jakákoli vstupní data výsledky musí být nalezeny po konečném počtu operací (kroků) Vlastnosti algoritmu univerzálnost řeší skupinu podobných problémů, konkrétní problém je zadán pomocí vstupních dat determinovanost každý krok algoritmu je jednoznačně (clear) definován, výsledek zpracování stejných dat musí dát stejný výsledek resultativnost pro každá přípustná vstupní data musí být výsledek 10/36

Algoritmus je konečná posloupnost operací, která dává řešení skupiny problémů je tvořen seznamem (list) přesně definovaných příkazů vrací očekávané výsledky pro jakákoli vstupní data výsledky musí být nalezeny po konečném počtu operací (kroků) Vlastnosti algoritmu univerzálnost řeší skupinu podobných problémů, konkrétní problém je zadán pomocí vstupních dat determinovanost každý krok algoritmu je jednoznačně (clear) definován, výsledek zpracování stejných dat musí dát stejný výsledek resultativnost pro každá přípustná vstupní data musí být výsledek konečnost pro každá přípustná vstupní data bude po konečném počtu kroků výsledek 11/36

Vstup algoritmu Data (informace), která popisují problém, který máme vyřešit. 12/36

Vstup algoritmu Data (informace), která popisují problém, který máme vyřešit. Výstup algoritmu Požadovaný (očekávaný) výsledek. 13/36

Vstup algoritmu Data (informace), která popisují problém, který máme vyřešit. Výstup algoritmu Požadovaný (očekávaný) výsledek. Efektivita algoritmu a) z hlediska rychlosti zpracování 14/36

Vstup algoritmu Data (informace), která popisují problém, který máme vyřešit. Výstup algoritmu Požadovaný (očekávaný) výsledek. Efektivita algoritmu a) z hlediska rychlosti zpracování b) z hlediska paměti počítače 15/36

Vstup algoritmu Data (informace), která popisují problém, který máme vyřešit. Výstup algoritmu Požadovaný (očekávaný) výsledek. Efektivita algoritmu a) z hlediska rychlosti zpracování b) z hlediska paměti počítače Popis algoritmu 16/36

Vstup algoritmu Data (informace), která popisují problém, který máme vyřešit. Výstup algoritmu Požadovaný (očekávaný) výsledek. Efektivita algoritmu a) z hlediska rychlosti zpracování b) z hlediska paměti počítače Popis algoritmu a) přirozeným jazykem (čeština, angličtina, ruština, ) 17/36

Vstup algoritmu Data (informace), která popisují problém, který máme vyřešit. Výstup algoritmu Požadovaný (očekávaný) výsledek. Efektivita algoritmu a) z hlediska rychlosti zpracování b) z hlediska paměti počítače Popis algoritmu a) přirozeným jazykem (čeština, angličtina, ruština, ) b) vývojový diagram (flowchart) 18/36

Vstup algoritmu Data (informace), která popisují problém, který máme vyřešit. Výstup algoritmu Požadovaný (očekávaný) výsledek. Efektivita algoritmu a) z hlediska rychlosti zpracování b) z hlediska paměti počítače Popis algoritmu a) přirozeným jazykem (čeština, angličtina, ruština, ) b) vývojový diagram (flowchart) c) stuktogram (např.: Nassi-Shneidermann diagram) 19/36

Vstup algoritmu Data (informace), která popisují problém, který máme vyřešit. Výstup algoritmu Požadovaný (očekávaný) výsledek. Efektivita algoritmu a) z hlediska rychlosti zpracování b) z hlediska paměti počítače Popis algoritmu a) přirozeným jazykem (čeština, angličtina, ruština, ) b) vývojový diagram (flowchart) c) stuktogram (např.: Nassi-Shneidermann diagram) d) pseudokód 20/36

Vstup algoritmu Data (informace), která popisují problém, který máme vyřešit. Výstup algoritmu Požadovaný (očekávaný) výsledek. Efektivita algoritmu a) z hlediska rychlosti zpracování b) z hlediska paměti počítače Popis algoritmu a) přirozeným jazykem (čeština, angličtina, ruština, ) b) vývojový diagram (flowchart) c) stuktogram (např.: Nassi-Shneidermann diagram) d) pseudokód e) programovacím jazykem (C, C++, C#, java, javascript, pascal, python, visual basic,.) 21/36

Příklady popisu algoritmu: Úkol: z množiny čísel nalezněte největší číslo (maximum) a) přirozený jazyk Maximum je první číslo. Postupně, pro všechna další čísla z množiny čísel, budeme zjišťovat, jestli dané číslo je větší než aktuální maximum. Pokud ano, pak nové maximum bude toto číslo. Výsledkem bude maximum po testování posledního čísla množiny. 22/36

b) vývojový diagram Symboly použité ve vývojovém diagramu: 23/36

c) struktogram (Nassi-Shneidermann diagram) 24/36

d) pseudokód Nacti pole N čísel Max = první číslo v poli Pro čísla od druhého do N-tého proveď: Jestli Číslo > Max, potom Max = Číslo Zobraz maximum Používají se příkazy v pořadí, v jakém budou v algoritmu provedeny! 25/36

e) programovací jazyk (příklad pro C) int x, max, pole[]={5, 6, 17, 0, 6, -4}; max = pole[0]; for (x=1; x<=5; x++) { if (max < pole[x]) max = pole[x]; } printf ( Max = %d\n,max); 26/36

Cykly a podmínky Cyklus je část algoritmu, ve které se opakuje definovaná činnost příkazy. Cyklus For Řídící proměnná, ( její hodnota za cyklem!) Sestupný, vzestupný Definovaný počet cyklů, smyčka (loop) cyklu Základní varianta cyklu For: Parametry cyklu For: Proměnná - řídící proměnná cyklu a její počáteční hodnota Podmínka - podmínka, která definuje konec cyklu Step - velikost přírůstku hodnoty řídící proměnné cyklu 27/36

Varianta cyklu For s předčasným ukončením cyklu (break): Break předčasně ukončuje cyklus For dříve, než je ukončen vyhodnocení podmínky! 28/36

Varianta cyklu For s ukončením smyčky cyklu (continue): Continue ignoruje všechny následující příkazy v aktuální smyčce cyklu a pokračuje další smyčkou! 29/36

Varianta cyklu For se dvěma oddělenými těly cyklu: 30/36

Cyklus While Podmínka, která rozhodne, jestli bude provedena (další) smyčka (loop), je na začátku cyklu. 31/36

Cyklus Repeat Podmínka, která rozhodne, jestli bude provedena další smyčka (loop), je na začátku cyklu. 32/36

Úkol: Vytvořte vývojový diagram pro nalezení největšího sudého čísla 33/36

Úkol: Vytvořte vývojový diagram pro nalezení největšího sudého čísla 34/36

Domácí úkol: Vytvořte vývojový diagram algoritmu pro výpočet průměrného čísla z pole čísel. 35/36

Konec... Vaše dotazy?. 36/36