2. lekce - cuni.cz
TRANSCRIPT
![Page 1: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/1.jpg)
2. lekce
Algoritmus, cyklus
Miroslav Jílek
1/36
![Page 2: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/2.jpg)
Algoritmus
2/36
![Page 3: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/3.jpg)
Algoritmus• je konečná posloupnost operací, která dává řešení skupiny problémů
3/36
![Page 4: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/4.jpg)
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
![Page 5: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/5.jpg)
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
![Page 6: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/6.jpg)
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
![Page 7: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/7.jpg)
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
![Page 8: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/8.jpg)
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
![Page 9: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/9.jpg)
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ýsledekzpracování stejných dat musí dát stejný výsledek
9/36
![Page 10: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/10.jpg)
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ýsledekzpracová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
![Page 11: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/11.jpg)
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ýsledekzpracová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
![Page 12: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/12.jpg)
Vstup algoritmu
Data (informace), která popisují problém, který máme vyřešit.
12/36
![Page 13: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/13.jpg)
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
![Page 14: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/14.jpg)
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
![Page 15: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/15.jpg)
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
![Page 16: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/16.jpg)
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
![Page 17: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/17.jpg)
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 algoritmua) přirozeným jazykem (čeština, angličtina, ruština, …)
17/36
![Page 18: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/18.jpg)
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 algoritmua) přirozeným jazykem (čeština, angličtina, ruština, …)
b) vývojový diagram (flowchart)
18/36
![Page 19: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/19.jpg)
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 algoritmua) přirozeným jazykem (čeština, angličtina, ruština, …)
b) vývojový diagram (flowchart)
c) stuktogram (např.: Nassi-Shneidermann diagram)
19/36
![Page 20: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/20.jpg)
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 algoritmua) 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
![Page 21: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/21.jpg)
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 algoritmua) 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
![Page 22: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/22.jpg)
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
![Page 23: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/23.jpg)
b) vývojový diagram
Symboly použité ve vývojovém diagramu:
23/36
![Page 24: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/24.jpg)
c) struktogram (Nassi-Shneidermann diagram)
24/36
![Page 25: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/25.jpg)
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
![Page 26: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/26.jpg)
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
![Page 27: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/27.jpg)
Cykly a podmínkyCyklus 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í hodnotaPodmínka - podmínka, která definuje konec
cykluStep - velikost přírůstku hodnoty
řídící proměnné cyklu
27/36
![Page 28: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/28.jpg)
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
![Page 29: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/29.jpg)
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
![Page 30: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/30.jpg)
Varianta cyklu For se dvěma oddělenými těly cyklu:
30/36
![Page 31: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/31.jpg)
Cyklus While
Podmínka, která rozhodne, jestli bude provedena (další) smyčka (loop), je na začátku cyklu.
31/36
![Page 32: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/32.jpg)
Cyklus Repeat
Podmínka, která rozhodne, jestli bude provedena další smyčka (loop), je na začátku cyklu.
32/36
![Page 33: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/33.jpg)
Úkol: Vytvořte vývojový diagram pro nalezení největšího sudého čísla
33/36
![Page 34: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/34.jpg)
Úkol: Vytvořte vývojový diagram pro nalezení největšího sudého čísla
34/36
![Page 35: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/35.jpg)
Domácí úkol:
Vytvořte vývojový diagram algoritmu pro výpočet průměrného čísla z pole čísel.
35/36
![Page 36: 2. lekce - cuni.cz](https://reader033.vdocuments.pub/reader033/viewer/2022041413/6251e22eda5016517c780773/html5/thumbnails/36.jpg)
Konec...
Vaše dotazy? ….
36/36