Přednáška 3. Rekurze 1
|
|
- Miluše Králová
- před 5 lety
- Počet zobrazení:
Transkript
1 Paradigmata programování 1 Přednáška 3. Rekurze 1 Michal Krupka KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI
2 Obsah 1 Příklady 2 Rekurzivní procedury a rekurzivní výpočetní proces 3 Další příklady M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
3 Příklad: procentuální podíl M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
4 Příklad: procentuální podíl (define (percentage-1 part whole) (* (/ part whole) 100)) M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
5 Příklad: procentuální podíl (define (percentage-1 part whole) (* (/ part whole) 100)) (define the-whole ) M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
6 Příklad: procentuální podíl (define (percentage-1 part whole) (* (/ part whole) 100)) (define the-whole ) (define (percentage-2 part whole) (let ((whole (if (eq? whole #true) the-whole whole))) (* (/ part whole) 100))) M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
7 Příklad: procentuální podíl (define (percentage-1 part whole) (* (/ part whole) 100)) (define the-whole ) (define (percentage-2 part whole) (let ((whole (if (eq? whole #true) the-whole whole))) (* (/ part whole) 100))) (define (percentage-3 part whole) (percentage-1 part (if (eq? whole #true) the-whole whole))) M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
8 Příklad: procentuální podíl (define (percentage-4 part whole) M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
9 Příklad: procentuální podíl (define (percentage-4 part whole) (if (eq? whole #true) ;je-li whole rovno #true M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
10 Příklad: procentuální podíl (define (percentage-4 part whole) (if (eq? whole #true) (percentage-4 part the-whole) ;je-li whole rovno #true ;aplikujeme znovu percentage-4 M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
11 Příklad: procentuální podíl (define (percentage-4 part whole) (if (eq? whole #true) ;je-li whole rovno #true (percentage-4 part the-whole) ;aplikujeme znovu percentage-4 (* (/ part whole) 100))) ;jinak výpočet M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
12 Příklad: procentuální podíl (define (percentage-4 part whole) (if (eq? whole #true) (percentage-4 part the-whole) (* (/ part whole) 100))) rekurzivní aplikace M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
13 Bude to fungovat? M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
14 Bude to fungovat? Prostředí během aplikace (percentage #true): M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
15 Bude to fungovat? Prostředí během aplikace (percentage #true): Počáteční (globální) prostředí M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
16 Bude to fungovat? Prostředí během aplikace (percentage #true): Počáteční (globální) prostředí Prostředí procedury percentage-4 (první aplikace) symbol hodnota part whole #true M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
17 Bude to fungovat? Prostředí během aplikace (percentage #true): Počáteční (globální) prostředí Prostředí procedury percentage-4 (první aplikace) symbol hodnota part whole #true Prostředí procedury percentage-4 (druhá aplikace) symbol hodnota part whole M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
18 Příklad: prohledávání intervalu M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
19 Příklad: prohledávání intervalu (define (square-1? n) (if (integer? (sqrt n)) #true #false)) M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
20 Příklad: prohledávání intervalu (define (square-1? n) (if (integer? (sqrt n)) #true #false)) (define (square-2? n) (integer? (sqrt n))) M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
21 Příklad: prohledávání intervalu (define (square-1? n) (if (integer? (sqrt n)) #true #false)) (define (square-2? n) (integer? (sqrt n))) Přesnost? M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
22 Příklad: prohledávání intervalu (define (square-1? n) (if (integer? (sqrt n)) #true #false)) (define (square-2? n) (integer? (sqrt n))) Přesnost? (define (square-3? n) (= (sqr (round (sqrt n))) n)) M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
23 Příklad: prohledávání intervalu M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
24 Příklad: prohledávání intervalu (define (contains-square-1? a b) M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
25 Příklad: prohledávání intervalu (define (contains-square-1? a b) (if (> a b) ;když je interval prázdný M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
26 Příklad: prohledávání intervalu (define (contains-square-1? a b) (if (> a b) #false ;když je interval prázdný ;čtverec neobsahuje M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
27 Příklad: prohledávání intervalu (define (contains-square-1? a b) (if (> a b) #false (if (square-2? a) ;když je interval prázdný ;čtverec neobsahuje ;je-li dolní konec čtverec M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
28 Příklad: prohledávání intervalu (define (contains-square-1? a b) (if (> a b) #false (if (square-2? a) #true ;když je interval prázdný ;čtverec neobsahuje ;je-li dolní konec čtverec ;interval čtverec obsahuje M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
29 Příklad: prohledávání intervalu (define (contains-square-1? a b) (if (> a b) #false (if (square-2? a) #true (contains-square-1? (+ a 1) b)))) ;když je interval prázdný ;čtverec neobsahuje ;je-li dolní konec čtverec ;interval čtverec obsahuje ;jinak zkoumáme ;interval [a + 1, b] M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
30 Příklad: prohledávání intervalu (define (contains-square-1? a b) (if (> a b) #false (if (square-2? a) #true (contains-square-1? (+ a 1) b)))) ;když je interval prázdný ;čtverec neobsahuje ;je-li dolní konec čtverec ;interval čtverec obsahuje ;jinak zkoumáme ;interval [a + 1, b] rekurzivní aplikace M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
31 Příklad: prohledávání intervalu M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
32 Příklad: prohledávání intervalu (define (contains-square-2? a b) (cond ((> a b) #false) ((square? a) #true) (#true (contains-square-2? (+ a 1) b)))) M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
33 Odbočka: speciální operátor cond větev (cond { ( (> a b) }}{}{{} #false }{{} ) podmínka větve tělo větve ((square? a) #true) (#true (contains-square-2? (+ a 1) b))) } další větve M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
34 Odbočka: speciální operátor cond větev (cond { ( (> a b) }}{}{{} #false }{{} ) podmínka větve tělo větve ((square? a) #true) (#true (contains-square-2? (+ a 1) b))) } další větve 1 Postupně se vyhodnocují podmínky větví. 2 Jakmile je nějaká splněna, vyhodnotí se tělo příslušné větve. 3 Další podmínky se nevyhodnocují. 4 Vrátí se výsledek vyhodnoceného těla, pokud žádná podmínka nebyla splněna, dojde k chybě. M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
35 Prohledávání intervalu (define (contains-square-3? a b) (and (<= a b) (or (square? a) (contains-square-3? (+ a 1) b)))) M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
36 Odbočka: speciální operátory and a or, procedura not Operátor and (and e1 e2... en) Vrací #true, pokud se všechny ei vyhodnotí na #true, jinak vrací #false. Používá zkrácené vyhodnocování. Operátor or (or e1 e2... en) Vrací #true, pokud se některé ei vyhodnotí na #true, jinak #false. Používá zkrácené vyhodnocování. Procedura not Procedura not počítá logickou negaci. M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
37 Pevný bod funkce cos M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
38 Pevný bod funkce cos Hledáme přibližnou hodnotu čísla x takového, že cos x = x. M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
39 Pevný bod funkce cos Hledáme přibližnou hodnotu čísla x takového, že cos x = x. (define (approx-= a b prec) (<= (abs (- a b)) prec)) M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
40 Pevný bod funkce cos Hledáme přibližnou hodnotu čísla x takového, že cos x = x. (define (approx-= a b prec) (<= (abs (- a b)) prec)) (define (cos-fixpoint-iter x prec) (let ((y (cos x))) (if (approx-= x y prec) y (cos-fixpoint-iter y prec)))) M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
41 Pevný bod funkce cos Hledáme přibližnou hodnotu čísla x takového, že cos x = x. (define (approx-= a b prec) (<= (abs (- a b)) prec)) (define (cos-fixpoint-iter x prec) (let ((y (cos x))) (if (approx-= x y prec) y (cos-fixpoint-iter y prec)))) (define (cos-fixpoint prec) (cos-fixpoint-iter 0 prec)) M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
42 Obsah 1 Příklady 2 Rekurzivní procedury a rekurzivní výpočetní proces 3 Další příklady M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
43 Rekurzivní procedury Definition (rekurzivní procedura) Procedura je rekurzivní, když ve svém těle obsahuje aplikaci sebe sama. je poznat ze zdrojového kódu procedury procedury percentage-4, contains-square-1?, contains-square-2?, contains-square-3?, cos-fixpoint-iter jsou rekurzivní M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
44 Rekurzivní výpočetní proces Definition (rekurzivní výpočetní proces) Výpočetní proces je rekurzivní, když během aplikace procedury dojde znovu k aplikaci téže procedury. M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
45 Rekurzivní výpočetní proces Definition (rekurzivní výpočetní proces) Výpočetní proces je rekurzivní, když během aplikace procedury dojde znovu k aplikaci téže procedury. je poznat, když program běží M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
46 Rekurzivní výpočetní proces Definition (rekurzivní výpočetní proces) Výpočetní proces je rekurzivní, když během aplikace procedury dojde znovu k aplikaci téže procedury. je poznat, když program běží některá aplikace procedury by k aplikaci téže procedury vést neměla (ukončovací podmínka) M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
47 Rekurzivní výpočetní proces Definition (rekurzivní výpočetní proces) Výpočetní proces je rekurzivní, když během aplikace procedury dojde znovu k aplikaci téže procedury. je poznat, když program běží některá aplikace procedury by k aplikaci téže procedury vést neměla (ukončovací podmínka) Speciální případ: Definition (iterativní výpočetní proces) Výpočetní proces je iterativní, když na konci aplikace procedury dojde opět k aplikaci téže procedury. M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
48 Rekurzivní výpočetní proces Definition (rekurzivní výpočetní proces) Výpočetní proces je rekurzivní, když během aplikace procedury dojde znovu k aplikaci téže procedury. je poznat, když program běží některá aplikace procedury by k aplikaci téže procedury vést neměla (ukončovací podmínka) Speciální případ: Definition (iterativní výpočetní proces) Výpočetní proces je iterativní, když na konci aplikace procedury dojde opět k aplikaci téže procedury. uvedené procedury generují iterativní výpočetní proces M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
49 Obsah 1 Příklady 2 Rekurzivní procedury a rekurzivní výpočetní proces 3 Další příklady M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
50 Obecná mocnina M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
51 Obecná mocnina (define (power2 a) (* a a)) M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
52 Obecná mocnina (define (power2 a) (* a a)) (define (power3 a) (* a (power2 a))) M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
53 Obecná mocnina (define (power2 a) (* a a)) (define (power3 a) (* a (power2 a))) (define (power4 a) (* a (power3 a))) M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
54 Obecná mocnina (define (power2 a) (* a a)) (define (power3 a) (* a (power2 a))) (define (power4 a) (* a (power3 a))) (define (power5 a) (* a (power4 a))) M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
55 Obecná mocnina (define (power2 a) (* a a)) (define (power3 a) (* a (power2 a))) (define (power4 a) (* a (power3 a))) (define (power5 a) (* a (power4 a))) (define (power a n) (if (= n 0) 1 (* a (power a (- n 1))))) M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
56 Faktoriál n! = { 1 když n = 0 n (n 1)! když n > 0 M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
57 Faktoriál n! = { 1 když n = 0 n (n 1)! když n > 0 Napsáno do procedury: (define (fact-1 n) (if (= n 0) 1 (* n (fact-1 (- n 1))))) M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
58 Faktoriál iterativní verze M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
59 Faktoriál iterativní verze (define (fact-2-iter n ir) (if (= n 0) ir (fact-2-iter (- n 1) (* ir n)))) M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
60 Faktoriál iterativní verze (define (fact-2-iter n ir) (if (= n 0) ir (fact-2-iter (- n 1) (* ir n)))) (define (fact-2 n) (fact-2-iter n 1)) M. Krupka (Univerzita Palackého v Olomouci) PAPR1: 3. Rekurze 1 Olomouc, 2. října / 18
Paradigmata programování 1 poznámky k přednášce. 3. Rekurze 1
KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI www.inf.upol.cz Michal Krupka krupka.inf.upol.cz michal.krupka@upol.cz 17. listopadu 12, 771 46 Olomouc Paradigmata programování 1 poznámky k přednášce
VíceParadigmata programování 1
Paradigmata programování 1 Vytváření abstrakcí pomocí procedur Vilém Vychodil Katedra informatiky, PřF, UP Olomouc Přednáška 2 V. Vychodil (KI, UP Olomouc) Vytváření abstrakcí pomocí procedur Přednáška
VíceVyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky
VíceParadigmata programování 1
Paradigmata programování 1 Explicitní aplikace a vyhodnocování Vilém Vychodil Katedra informatiky, PřF, UP Olomouc Přednáška 6 V. Vychodil (KI, UP Olomouc) Explicitní aplikace a vyhodnocování Přednáška
VíceNPRG030 Programování I, 2016/17 1 / :58:13
NPRG030 Programování I, 2016/17 1 / 31 10. 10. 2016 10:58:13 Podmínka = něco, co JE, nebo NENÍ splněno typ Boolean hodnoty: TRUE pravda FALSE lež domluva (optimistická): FALSE < TRUE NPRG030 Programování
VícePARADIGMATA PROGRAMOVÁNÍ 2 PŘÍSLIBY A LÍNÉ VYHODNOCOVÁNÍ
KATEDRA INFORMATIKY, PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITA PALACKÉHO, OLOMOUC PARADIGMATA PROGRAMOVÁNÍ 2 PŘÍSLIBY A LÍNÉ VYHODNOCOVÁNÍ Slajdy vytvořili Vilém Vychodil a Jan Konečný (KI, UP Olomouc) PP 2, Lekce
Více1. Od Scheme k Lispu
KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI www.inf.upol.cz Michal Krupka krupka.inf.upol.cz michal.krupka@upol.cz 7. listopadu, 77 46 Olomouc Paradigmata programování poznámky k přednášce. Od
VíceVyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 12. září 2016 Jiří Dvorský (VŠB TUO) Vyhledávání 201 / 344 Osnova přednášky
VíceNPRG030 Programování I, 2010/11
Podmínka = něco, co JE, nebo NENÍ splněno typ Boolean hodnoty: TRUE pravda FALSE lež domluva (optimistická): FALSE < TRUE když X, Y jsou (číselné) výrazy, potom X = Y X Y X < Y X > Y X = Y jsou
Více2 Strukturované datové typy 2 2.1 Pole... 2 2.2 Záznam... 3 2.3 Množina... 4
Obsah Obsah 1 Jednoduché datové typy 1 2 Strukturované datové typy 2 2.1 Pole.................................. 2 2.2 Záznam................................ 3 2.3 Množina................................
VíceCZ.1.07/1.5.00/
Celá čísla Celočíselný typ má označení INTEGER. Kromě tohoto základního jsou k dispozici ještě další celočíselné typy, které uvádí následující tabulka. Každý typ umožňuje definovat určitý rozsah celých
Více2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5
Obsah Obsah 1 Řídicí struktury 1 2 Podmínka 1 2.1 Podmínka typu case......................... 2 3 Příkaz skoku 3 4 Cykly 4 4.1 Cyklus s podmínkou na začátku................... 4 4.2 Cyklus s podmínkou
VíceAlgoritmizace a programování
Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu
VíceAlgoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44
Algoritmizace a programování Ak. rok 2012/2013 vbp 1. ze 44 Vladimír Beneš Petrovický K101 katedra matematiky, statistiky a informačních technologií vedoucí katedry E-mail: vbenes@bivs.cz Telefon: 251
VíceParadigmata programování II Korutiny a nedeterminismus
Paradigmata programování II Korutiny a nedeterminismus Vilém Vychodil Katedra informatiky, Univerzita Palackého v Olomouci 27. dubna 2006 Vilém Vychodil (UP Olomouc) PP II, Př. 9: Korutiny, nedeterminismus
VíceSada 1 - Základy programování
S třední škola stavební Jihlava Sada 1 - Základy programování 04. Datové typy, operace, logické operátory Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284
VíceVýrazy a operátory. Operátory Unární - unární a unární + Např.: a +b
Výrazy a operátory i = 2 i = 2; to je výraz to je příkaz 4. Operátory Unární - unární a unární + Např.: +5-5 -8.345 -a +b - unární ++ - inkrement - zvýší hodnotu proměnné o 1 - unární -- - dekrement -
VíceParadigmata programování 2
Paradigmata programování 2 6. cvičení Radek Janoštík Univerzita Palackého v Olomouci 18.3.2019 Radek Janoštík (Univerzita Palackého v Olomouci) Paradigmata programování 2 18.3.2019 1 / 11 Vedlejší efekt
VíceParadigmata programování 1
Paradigmata programování 1 Kvazikvotování a manipulace se symbolickými výrazy Vilém Vychodil Katedra informatiky, PřF, UP Olomouc Přednáška 11 V. Vychodil (KI, UP Olomouc) Kvazikvotování, manipulace se
VíceX36UNX 16. Numerické výpočty v sh příkazy expr, bc, dc. Zdeněk Sojka
X36UNX 16 Numerické výpočty v sh příkazy expr, bc, dc Zdeněk Sojka sojkaz1@fel.cvut.cz dc desk calculator - zadávání příkazů postfixově - data se ukládají do stacku - příkazy obyčejně pracují s jedním
VíceImplementace LL(1) překladů
Překladače, přednáška č. 6 Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 30. října 2007 Postup Programujeme syntaktickou analýzu: 1 Navrhneme vhodnou LL(1) gramatiku
VíceRekurze. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.
Rekurze doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 12. září 2016 Jiří Dvorský (VŠB TUO) Rekurze 161 / 344 Osnova přednášky
VíceProgramování v jazyce JavaScript
Programování v jazyce JavaScript Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Operátory a příkazy BI-JSC Evropský sociální fond
VíceObject Pascal je přísně typový procedurální jazyk, který umožňuje jak strukturované, tak objektově orientované programování.
Delphi lekce 6 Minimum z Object Pascalu Vrátíme se ještě k základům Object Pascalu. Struktura programu Object Pascal je přísně typový procedurální jazyk, který umožňuje jak strukturované, tak objektově
Více5 Přehled operátorů, příkazy, přetypování
5 Přehled operátorů, příkazy, přetypování Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně budou uvedeny detaily týkající se operátorů. Doba nutná k nastudování
VíceLogické programování I
Logické programování I PROLOG Program popisuje "svět" Prologu = databáze faktů a pravidel (tzv. klauzulí). fakta: predikát(arg1, arg2,...argn). cíle:?- predikát(arg1, arg2,...argn). pravidla: hlava :-
VíceEVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI
EVROPSKÝ SOCIÁLNÍ FOND Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Úvod do PHP PHP Personal Home Page Hypertext Preprocessor jazyk na tvorbu dokumentů přípona: *.php skript je součást HTML stránky!
VíceParadigmata programování 1
Paradigmata programování 1 Tečkové páry, symbolická data a kvotování Vilém Vychodil Katedra informatiky, PřF, UP Olomouc Přednáška 4 V. Vychodil (KI, UP Olomouc) Tečkové páry, symbolická data a kvotování
VíceÚvod do databázových systémů
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky Database Research Group Úvod do databázových systémů Cvičení 3 Ing. Petr Lukáš petr.lukas@vsb.cz
Více- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.
Základní symboly - písmena A B C Y Z a b c y z - číslice 0 1 2 9 - speciální symboly + - * / =., < > = a další - klíčová slova and array begin case const a další Klíčová slova jsou chráněnými útvary,
VíceTest prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem
Test prvočíselnosti Úkol: otestovat dané číslo N, zda je prvočíslem 1. zkusit všechny dělitele od 2 do N-1 časová složitost O(N) cca N testů 2. stačí zkoušet všechny dělitele od 2 do N/2 (větší dělitel
VícePaměť počítače. alg2 1
Paměť počítače Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Data jsou v paměti reprezentována posloupnostmi bitů (bit = 0 nebo 1) Připomeňme: paměť je tvořena řadou 8-mi bitových
VíceVÝRAZY výrazy = operandy prokládané operátory, vyhodnocované podle priority operátorů
VÝRAZY výrazy = operandy prokládané operátory, vyhodnocované podle priority operátorů Výrazy podle priority operátorů (od nejnižší priority) OPERANDY OPERÁTORY výraz = jednoduché výrazy a relační operátory
VíceLEKCE 6. Operátory. V této lekci najdete:
LEKCE 6 Operátory V této lekci najdete: Aritmetické operátory...94 Porovnávací operátory...96 Operátor řetězení...97 Bitové logické operátory...97 Další operátory...101 92 ČÁST I: Programování v jazyce
Více7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd
7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd Algoritmizace (Y36ALG), Šumperk - 7. přednáška 1 Třída jako zdroj funkcionality Třída v jazyku Java je programová jednotka tvořená
VíceBasic256 - úvod do programování Příklady. ing. petr polách
Basic256 - úvod do programování Příklady ing. petr polách 1 Basic 256 input, print Př.: Vytvořte program pro součet dvou čísel: input "Zadej a: ", a input "Zadej b: ", b print a+b input "Zadej a: ", a
VíceHanojská věž. T2: prohledávání stavového prostoru. zadání [1 1 1] řešení [3 3 3] dva možné první tahy: [1 1 2] [1 1 3]
Hanojská věž zadání [1 1 1] řešení [3 3 3] dva možné první tahy: [1 1 2] [1 1 3] který tah je lepší? (co je lepší tah?) P. Berka, 2012 1/21 Stavový prostor 1. množina stavů S = {s} 2. množina přechodů
VíceSlepé prohledávání do šířky Algoritmus prohledávání do šířky Při tomto způsobu prohledávání máme jistotu, že vždy nalezneme koncový stav, musíme ale p
Hanojská věž Stavový prostor 1. množina stavů S = {s} 2. množina přechodů mezi stavy (operátorů) Φ = {φ} s k = φ ki (s i ) zadání [1 1 1] řešení [3 3 3] dva možné první tahy: [1 1 2] [1 1 3] který tah
VíceProgramovací jazyk Pascal
Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce
Více1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5
Obsah Obsah 1 Programovací jazyk Pascal 1 1.1 Struktura programu v Pascalu.................... 1 2 Proměnné 2 2.1 Vstup a výstup............................ 3 3 Operátory a některé matematické funkce 5
VíceMS EXCEL_vybrané matematické funkce
MS EXCEL_vybrané matematické funkce Vybrané základní matematické funkce ABS absolutní hodnota čísla CELÁ.ČÁST - zaokrouhlení čísla na nejbližší menší celé číslo EXP - vrátí e umocněné na hodnotu argumentu
VíceNPRG030 Programování I, 2018/19 1 / :25:37
NPRG030 Programování I, 2018/19 1 / 26 24. 9. 2018 10:25:37 Čísla v algoritmech a programech 10 26 Poloměr vesmíru 2651 studujících studentů MFF UK 3.142857... Ludolfovo číslo 10 16 stáří vesmíru v sekundách!!!
VícePřednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.
Přednáška 7 Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu. 1 Příkaz expr výraz Celočíselná aritmetika I Zašle na standardní výstup vyhodnocení výrazu
VíceRekurzivní algoritmy
Rekurzivní algoritmy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA) ZS
VíceLogické 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
Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární
Více4. Rekurze. BI-EP1 Efektivní programování Martin Kačer
4. Rekurze BI-EP1 Efektivní programování 1 ZS 2011/2012 Ing. Martin Kačer, Ph.D. 2010-11 Martin Kačer Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze
VícePARADIGMATA PROGRAMOVÁNÍ 2A INTERPRET S VEDLEJŠÍMI EFEKTY A MAKRY
KATEDRA INFORMATIKY, PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITA PALACKÉHO, OLOMOUC PARADIGMATA PROGRAMOVÁNÍ 2A INTERPRET S VEDLEJŠÍMI EFEKTY A MAKRY VÝVOJ TOHOTO UČEBNÍHO MATERIÁLU JE SPOLUFINANCOVÁN EVROPSKÝM
VíceAnalýza toku dat. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 15. listopad, 2012
Překladače 2 Analýza toku dat Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci 15. listopad, 2012 Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, 2012 1 / 33 Lokální analýza: živost
VícePascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7
Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí
VíceMartin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 23, 2016
ZPRO cvičení 3 Martin Flusser Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague October 23, 2016 Outline I 1 Outline 2 Relační a logické operátory 3 Relační a logické
VíceNPRG030 Programování I, 2017/18 1 / :22:16
NPRG030 Programování I, 2017/18 1 / 26 20. 10. 2017 11:22:16 Ordinální typy standardní: integer, char, boolean Vlastnosti ordinálních typů: 1. hodnot je konečný počet a hodnoty jsou uspořádány 2. ke každé
Více1. Implementace funkce počet vrcholů. Předmět: Algoritmizace praktické aplikace (3ALGA)
Předmět: Algoritmizace praktické aplikace (3ALGA) Vytvořil: Jan Brzeska Zadání: Vytvoření funkcí na stromech (reprezentace stromu směrníky). Zadané funkce: 1. Počet vrcholů 2. Počet listů 3. Součet 4.
VíceAlgoritmizace a programování
Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech
VíceIB015 Neimperativní programování. Organizace a motivace kurzu, programovací jazyk Haskell. Jiří Barnat
IB015 Neimperativní programování Organizace a motivace kurzu, programovací jazyk Haskell Jiří Barnat Sekce IB015 Neimperativní programování 01 str. 2/36 Organizace kurzu Cíle kurzu IB015 Neimperativní
Více1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1
1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1 1. Prvocisla: Kratky ukazkovy priklad na demonstraci baliku WEB. Nasledujici program slouzi pouze jako ukazka nekterych moznosti a sluzeb,
VíceInovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09
Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Operátory Autor:
VíceLogo2 operace, rekurze, větvení výpočtu
Operace Logo2 operace, rekurze, větvení výpočtu Je naše vlastní operace, jejím výsledkem je nějaká hodnota. Na určení tohoto výsledku musíme použít základní příkaz jazyka Imagine logo. A tím je výsledek.
VíceAlgoritmizace a programování
Algoritmizace a programování Řídicí struktury, standardní metody Problematika načítání pomocí Scanner Některé poznámky k příkazům Psaní kódu programu Metody třídy Math Obalové třídy primitivních datových
VíceVětvení programů příkaz IF
Výpočetní technika programování Větvení programů příkaz IF Tento materiál vznikl v rámci projektu CZ.1.07/1.2.15/01.0022 Záchytná síť široké spektrum podpůrných aktivit. Střední škola spojů a informatiky,
VíceV této aplikaci si ukážeme jakým způsobem zobrazovat čas a datum. Pro ovládání zobrazení času a datumu se naučíme využívat nabídku.
HODINY V této aplikaci si ukážeme jakým způsobem zobrazovat čas a datum. Pro ovládání zobrazení času a datumu se naučíme využívat nabídku. Prvky na formuláři Na formuláři potřebuji jen dva prvky typu Label
VíceProgramovani v Maplu Procedura
Programovani v Maplu Procedura Priklad: procedura, ktera scita 2 cisla: a + 2*b soucet := proc (a, b) local c; # lokalni promenna - existuje a meni se jenom uvnitr procedury c:=a+b; # globalni promenna
VíceReprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz
Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz (2 + 5) * (13-4) * + - 2 5 13 4 - listy stromu obsahují operandy (čísla) - vnitřní uzly obsahují operátory (znaménka)
VícePARADIGMATA PROGRAMOVÁNÍ 2 KORUTINY, NEDETERMINISMUS
KATEDRA INFORMATIKY, P ÍRODOV DECKÁ FAKULTA UNIVERZITA PALACKÉHO, OLOMOUC PARADIGMATA PROGRAMOVÁNÍ 2 KORUTINY, NEDETERMINISMUS Slajdy vytvo ili Vilém Vychodil a Jan Kone ný (KI, UP Olomouc) PP 2, Lekce
VíceOperátory, výrazy. Tomáš Pitner, upravil Marek Šabo
Operátory, výrazy Tomáš Pitner, upravil Marek Šabo Operátor "Znaménko operace", pokyn pro vykonání operace při vyhodnocení výrazu. V Javě mají operátory napevno daný význam, nelze je přetěžovat jako v
VíceMichal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
VíceAbstraktní datové typy FRONTA
Abstraktní datové typy FRONTA Fronta je lineární datová struktura tzn., že ke každému prvku s výjimkou posledního náleží jeden následník a ke každému prvku s výjimkou prvního náleží jeden předchůdce. Do
VíceOperátory. Základy programování 1 Martin Kauer (Tomáš Kühr)
Operátory Základy programování 1 Martin Kauer (Tomáš Kühr) Organizační poznámky Formátujte kód přehledně! Pomůžete sobě i mně. Spusťte si vaše programy a zkuste různé vstupy! Pokud program nedává správné
VíceTematický celek 03 - Cvičné příklady
Tematický celek 03 - Cvičné příklady Cvičný 1 Dim a As Object Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'Proceruda tlačítka "Vlož obsah
VíceProgramovací jazyk Haskell
Programovací jazyk Haskell Ing. Lumír Návrat katedra informatiky, D 403 59 732 3252 Historie září 1991 Gofer experimentální jazyk Mark P. Jones únor 1995 Hugs Hugs98 téměř úplná implementace jazyka Haskell
Více9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek
9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek 1/24 Editační prostření Kód programu lze editovat v jakémkoli textovém editoru. 2/24 Editační prostření Kód
VíceEvoluční algoritmy. Podmínka zastavení počet iterací kvalita nejlepšího jedince v populaci změna kvality nejlepšího jedince mezi iteracemi
Evoluční algoritmy Použítí evoluční principů, založených na metodách optimalizace funkcí a umělé inteligenci, pro hledání řešení nějaké úlohy. Populace množina jedinců, potenciálních řešení Fitness function
VíceROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML HTTP://KTIML.MFF.CUNI.CZ/~SURYNEK/NAIL094
10 ROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML HTTP://KTIML.MFF.CUNI.CZ/~SURYNEK/NAIL094 Matematicko-fyzikální fakulta Univerzita Karlova v Praze 1 ROZHODOVÁNÍ TEORIÍ POMOCÍ SAT ŘEŠIČE (SMT)
VíceRekurze. IB111 Úvod do programování skrze Python
Rekurze IB111 Úvod do programování skrze Python 2015 1 / 64 XKCD: Tabletop Roleplaying https://xkcd.com/244/ 2 / 64 To iterate is human, to recurse divine. (L. Peter Deutsch) 3 / 64 Rekurze použití funkce
VíceInformatika 8. třída/6
Rekurze Jedním z důležitých principů pro návrh procedur je tzv. rekurze. Nejlépe uvidíme tento princip na příkladech dvou velmi jednoduchých procedur (hvězdička označuje násobení). Rekurze vlastně označuje
VíceProgramovací í jazyk Haskell
Historie Programovací í jazyk Haskell doc. Dr. Ing. Miroslav Beneš katedra informatiky, A-1007 59 732 4213 září 1991 Gofer experimentální jazyk Mark P. Jones únor 1995 Hugs Hugs98 téměř úplná implementace
VíceZáklady algoritmizace a programování
Základy algoritmizace a programování Příklady v MATLABu Přednáška 10 30. listopadu 2009 Řídící instrukce if else C Matlab if ( podmínka ) { } else { } Podmíněný příkaz if podmínka elseif podmínka2... else
VíceProgramy a algoritmy pracující s čísly. IB111 Úvod do programování skrze Python
Programy a algoritmy pracující s čísly IB111 Úvod do programování skrze Python 2013 1 / 60 Připomenutí z minule proměnné, výrazy, operace řízení výpočtu: if, for, while funkce příklady: faktoriál, binární
VíceParalelní programování
Paralelní programování přednáška 5 Michal Krupka 15. března 2011 Michal Krupka (KI UP) Paralelní programování 15. března 2011 1 / 13 Ještě ke kritickým sekcím Použití v praxi obvykle pomocí zámků (locks)
VíceBI-EP1 Efektivní programování 1
BI-EP1 Efektivní programování 1 ZS 2011/2012 Ing. Martin Kačer, Ph.D. 2010-11 Martin Kačer Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze Evropský
VíceÚvod do databázových systémů
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 4 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování Klauzule příkazu
VíceProgramovací jazyk Prolog
Programovací jazyk Prolog Logické programování Šárka Vavrečková Ústav informatiky, Filozoficko-přírodovědecká fakulta Slezské univerzity v Opavě sarka.vavreckova@fpf.slu.cz 1. prosince 2008 Prolog Co je
VíceOperátory pro maticové operace (operace s celými maticemi) * násobení maticové Pro čísla platí: 2*2
* násobení maticové Pro čísla platí: Pro matice - násobení inverzní maticí inv inverzní matice A -1 k dané matici A je taková matice, která po vynásobení s původní maticí dá jednotkovou matici. Inverzní
VíceWSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007
WSH Windows Script Hosting OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007 Co je skript? Skriptování nástroj pro správu systému a automatizaci úloh Umožňuje psát skripty jednoduché interpretované programové
VíceAlgoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
Dynamické programování Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Rozděl a panuj (divide-and-conquer) Rozděl (Divide): Rozděl problém na několik podproblémů tak, aby tyto podproblémy odpovídaly původnímu
VíceProgramování v jazyce JavaScript
Programování v jazyce JavaScript Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Syntaxe 1. část BI-JSC Evropský sociální fond
VíceÚvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
VícePříklady: (y + (sin(2*x) + 1)*2)/ /2 * 5 = 8.5 (1+3)/2 * 5 = /(2 * 5) = 1.3. Pavel Töpfer, 2017 Programování 1-3 1
Výraz - syntaxe i sémantika podobné jako v matematice - obsahuje proměnné, konstanty, operátory, závorky, volání funkcí - všechny operátory nutno zapisovat (nelze např. vynechat znak násobení) - argumenty
Více5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina
5a. Makra Visual Basic pro Microsoft Escel Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina Cyklické odkazy a iterativní výpočty Zde bude stránka o cyklických odkazech a iteracích.
VíceStromy. Příklady. Rekurzivní datové struktury. Základní pojmy
Základní pojmy Stromy doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Graf uzly hrany orientované / neorientované Souvislý
VíceRekurze. Pavel Töpfer, 2017 Programování 1-8 1
Rekurze V programování ve dvou hladinách: - rekurzivní algoritmus (řešení úlohy je definováno pomocí řešení podúloh stejného charakteru) - rekurzivní volání procedury nebo funkce (volá sama sebe přímo
VíceŠablonové metaprogramování v C++ Miroslav Virius KSI FJFI ČVUT
Šablonové metaprogramování v C++ Miroslav Virius KSI FJFI ČVUT Šablonové (generické) metaprogramování Šablona v C++, genericita v jiných jazycích Výpočetní úplnost Problémy Příklad Porovnání s klasickým
VíceObsah 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
Denotační sémantika programovacího jazyka doc. Dr. Ing. Miroslav Beneš katedra informatiky, A-1007 59 732 4213 Obsah přednášky Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup
VíceC++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++
C++ Akademie SH 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory Za áte níci C++ 20. b ezna 2011 Obsah 1 Prom nné - primitivní typy Celá ísla ƒísla s pohyblivou desetinnou árkou, typ bool 2 Podmínka
Více1. Téma 03 - Rozhodování
1. Téma 03 - Rozhodování Cíl látky Seznámit se a prakticky si vyzkoušet zápis rozhodování v jazyce Java 1.1. Úvod Jednou z nejčastěji používanou konstrukcí při programování je rozhodování. Právě této problematice
VíceProgramy a algoritmy pracující s čísly. IB111 Úvod do programování skrze Python
Programy a algoritmy pracující s čísly IB111 Úvod do programování skrze Python 2015 1 / 66 Rozcvička 1 2 + 2 2 + 3 2 + + 99 2 + 100 2 2 / 66 Připomenutí z minule proměnné, výrazy, operace řízení výpočtu:
VíceZáklady programování Proměnné Procedury, funkce, události Operátory a podmínková logika Objekt Range a Cells, odkazy Vlastnosti, metody a události
Petr Blaha Základy programování Proměnné Procedury, funkce, události Operátory a podmínková logika Objekt Range a Cells, odkazy Vlastnosti, metody a události Cykly Základní funkce (matematické, textové,
VíceŘešení: PŘENESVĚŽ (N, A, B, C) = přenes N disků z A na B pomocí C
Hanojské věže - 3 kolíky A, B, C - na A je N disků různé velikosti, seřazené od největšího (dole) k nejmenšímu (nahoře) - kolíky B a C jsou prázdné - úkol: přenést všechny disky z A na B, mohou se odkládat
VíceČVUT FEL X36PAA - Problémy a algoritmy. 5. úloha - Seznámení se se zvolenou pokročilou iterativní metodou na problému batohu
ČVUT FEL X36PAA - Problémy a algoritmy 5. úloha - Seznámení se se zvolenou pokročilou iterativní metodou na problému batohu Jméno: Marek Handl Datum: 4. 2. 2009 Cvičení: Pondělí 9:00 Zadání Zvolte si heuristiku,
Více4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody
4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina Cyklické odkazy a iterativní výpočty
VíceBinární vyhledávací strom pomocí směrníků Miroslav Hostaša L06620
Binární vyhledávací strom pomocí směrníků Miroslav Hostaša L06620 1. Vymezení pojmů Strom: Strom je takové uspořádání prvků - vrcholů, ve kterém lze rozeznat předchůdce - rodiče a následovníky - syny.
Více