Martin Flusser. November 1, 2016

Podobné dokumenty
Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 23, 2016

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. November 16, 2017

Martin Flusser. December 15, 2016

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. December 7, 2016

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

6 Příkazy řízení toku

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

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

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

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

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

Řídicí struktury. alg3 1

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

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

2. lekce Algoritmus, cyklus Miroslav Jílek

Úvod do programování. Lekce 3

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19

Rozklad na prvočinitele. 3. prosince 2010

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

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

Slepé 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

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

4. Rekurze. BI-EP1 Efektivní programování Martin Kačer

Cykly. Základy programování 1 Martin Kauer (Tomáš Kühr)

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Algoritmizace a programování

Rozklad problému na podproblémy

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

Programovani v Maplu Procedura

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

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

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

PSK3-9. Základy skriptování. Hlavička

5. přednáška - Rozklad problému na podproblémy

Rekurze. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

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

Algoritmizace a programování

VYŠŠÍ ODBORNÁ ŠKOLA a STŘEDNÍ PRŮMYSLOVÁ ŠKOLA Mariánská 1100, Varnsdorf PROGRAMOVÁNÍ FUNKCE, REKURZE, CYKLY

Úvod do Matlabu. Praha & EU: Investujeme do vaší budoucnosti. 1 / 24 Úvod do Matlabu

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

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

Základy programování (IZP)

Základy programování (IZP)

Algoritmizace a programování

Vector datový kontejner v C++.

8. Rekurze. doc. Ing. Jiří Vokřínek, Ph.D. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze

Soubory. Hung Hoang Dieu. Department of Mathematics Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 1 / 7

Zpracoval: 7. Matematická indukce a rekurse. Řešení rekurentních (diferenčních) rovnic s konstantními koeficienty.

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

Pro kontrolu správného formátu hodnoty N použijeme metodu try-catch.

Základy programování (IZP)

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

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

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

Skripty - úvod. Linux - skripty 2

Dynamické programování

Algoritmizace prostorových úloh

5. Dynamické programování

Vstupní požadavky, doporučení a metodické pokyny

NPRG030 Programování I, 2017/18 1 / :22:16

Algoritmy a datové struktury

for (int i = 0; i < sizeof(hodnoty) / sizeof(int); i++) { cout<<hodonoty[i]<< endl; } cin.get(); return 0; }

Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++

Pole a Funkce. Úvod do programování 1 Tomáš Kühr

Iterační výpočty Projekt č. 2

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

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

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Překladač a jeho struktura

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

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

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

Programování v Pythonu

Rozklad problému na podproblémy, rekurze

Základní stavební prvky algoritmu

IAJCE Přednáška č. 6. logický celek, řešící dílčí část problému Příklad velmi špatného zápisu programu na výpočet obsahu obdélníku

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

Kombinatorika, výpočty

Rozklad problému na podproblémy, rekurze

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

A7B38UOS Úvod do operačních systémů. 6. Cvičení. Příkazy sed a awk

Příkazy if, while, do-while, for, switch

Rekurze. Jan Hnilica Počítačové modelování 12

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

Lekce 04 Řídící struktury

Algoritmizace prostorových úloh

Standardní algoritmy vyhledávací.

BI-EP1 Efektivní programování 1

Rekurzivní algoritmy

Řídicí příkazy KAPITOLA 3. Vstup znaků z klávesnice

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Základy algoritmizace a programování

10 Algoritmizace Příklad 2 Word 2007/ VBA

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

Transkript:

ZPRO cvičení 4 Martin Flusser Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague November 1, 2016

Outline I 1 Outline 2 Cykly 3 Cykly cvičení 4 Rekurze 5 Rekurze cvičení 6 Domácí úkol 7 Zdroje

Cykly

Cykly www.sallyx.org (Podmínky a cykly): Konečně se dostáváme k té zábavné části programování.

Cykly www.sallyx.org (Podmínky a cykly): Konečně se dostáváme k té zábavné části programování. programujte.com: Cykly jsou jednou ze základních řídících struktur programů, a to nejen v jazyce C/C++, ale obecně. Pochopení cyklů vás posouvá k možnostem psát téměř dokonalé programy...

Cykly Část kódu která se provádí vícekrát O dalším opakování rozhoduje splnění podmínky Počet opakování může i nemusí být předem znám

Cyklus while 1 while ( podminka )// podminky umime z minula 2 { 3 // prikazy 4 }

Cyklus while 1 while ( podminka )// podminky umime z minula 2 { 3 // prikazy 4 } 1 int i = 1; 2 while ( i <= 10) 3 { 4 cout << i << ; 5 i ++; 6 }

Cyklus do while 1 do { Podobný význam jako while cyklus, ale: Vždy proběhne alepsoň jednou Jiná syntaxe 2 // prikazy 3 } while ( podminka );

Cyklus do while 1 do { Podobný význam jako while cyklus, ale: Vždy proběhne alepsoň jednou Jiná syntaxe 2 // prikazy 3 } while ( podminka ); 1 int a; 2 do { 3 cin >> a; 4 } while (a <= 2);

For cyklus Často používaný pokud známe předem počet opakování Může být použit i jinak než v klasickém pojetí (lze zastoupit i while) 1 for ( pocatecni prikaz ; podminka ; iteracni vyraz ) 2 telo cyklu 3 }

For cyklus Často používaný pokud známe předem počet opakování Může být použit i jinak než v klasickém pojetí (lze zastoupit i while) 1 for ( pocatecni prikaz ; podminka ; iteracni vyraz ) 2 telo cyklu 3 } 1 for ( int i = 0; i < 10; i ++) { 2 cout << i << ; 3 }

Break a continue Používají se uvnitř cyklu break Ukončí okamžitě vykonávání cyklu a program následuje prvním příkazem za cyklem. continue Okamžitě ukončí aktuální iteraci a započne novou.

Cykly cvičení 1 Vytvořte cyklus, který vypíše sudá čísla v rozmezí od 50 do 70 2 Vytvořte a zavolejte funkci x n 3 Vytvořte a zavolejte funkci x! 4 Vytvořte a zavolejte funkci, která pro dané x nalezne nejmenší n, tak aby: x 2 n

cv1 1 for ( int i =50;i <=70; i +=2) 2 cout <<i<< endl ;

cv2 1 int xnan ( int x, int n) 2 { 3 int produkt =1; 4 for ( int i =1;i <=n;i ++) 5 produkt *=x; 6 return produkt ; 7 }

cv3 1 int faktorial ( int x) 2 { 3 int produkt =1; 4 for ( int i =1;i <=x;i ++) 5 produkt *=i; 6 return produkt ; 7 }

cv4 1 int najdin ( int x) 2 { 3 int n = 0; 4 while (x >=( xnan (2, n ))) 5 n ++; 6 return n; 7 }

Rekurze Vykonávání funkce vyvolá to samuou funkci ještě před svým dokončením Reprezentativní příklad je funkce která volá sama sebe

Rekurze - Výpočet faktoriálu Pro funkci faktoriál (N) 1 pokud N = 0, potom výsledek = 1 2 jinak výsledek = N * faktoriál(n - 1)

Rekurze cvičení 1 Vytvořte a zavolejte funkci x! 2 Vytvořte a zavolejte funkci x n 3 Vytvořte a zavolejte funkci pro výpočet n-tého prvku Fibonacciho posloupnosti

cv1 1 int f aktori al_rek urze ( int x) 2 { 3 if (x ==0) 4 return 1; 5 else 6 return x* faktorial_rekurze (x -1); 7 8 }

cv2 1 int xnan_rekurze ( int x, int n) 2 { 3 if (n ==0) 4 return 1; 5 else 6 return x* xnan_rekurze (x,(n -1)); 7 }

cv3 1 int fibonacci ( int n) 2 { 3 if (n == 0) 4 return 0; // z definice fib. posloupnosti 5 else if ( n == 1) 6 return 1; // z definice fib. posloupnosti 7 else 8 return fibonacci (n -1)+ fibonacci (n -2); 9 }

Domácí úkol Budete soutěžící v televizní hře o peníze. Pravidla jsou následovná: Dostáváte k dispozici 100 kufříků takových, že v jednom je hotovost 100 000 a ostatní jsou prázdné (nesmíte je otevřít). Bankéř vám v každý moment nabízí za každý kufřík peníze vypočítané jeho průmernou hodnotou. Vy mu můžete libovolný počet kufříků prodat(hned je otevře). Pokud mu prodáte kufřík s penězi, pak už další nabídku nedostanete a odnášíte si získané peníze. Když ale bankéř koupí prázdné kufříky, pak můžete obchodovat znovu. Výši získaných peněz můžete ovlivnit počtem prodaných kufříků v každém kole a samožřejmě jejich výběrem.

Pořadatelé bohužel nepočítají s tím, že jako studenti fjfi dokážete za pomoci znalostí fyziky odhalit, který z kufříků v rukách jemných dívek má nepatrně větší hmotnost. Pro vás jako studenta fjfi nebude pak problém najít optimální strategii. Na co ale už jako studenti nestačíte, je vypočítat, kolik peněz takto vyhrajete. Proto si doma napíšete program, který tuto sumu vypočítá za vás.

Zdorje 1 http :// kmlinux. fjfi. cvut.cz /~ fabiadav / cecko / 2 poznamky -k-jazyku -c/ podminky -a- cykly 3 http :// www. itnetwork.cz/ cplusplus / zaklady / 4 c-plus -plus - tutorial - cykly - while -do - while 5 http :// www. sallyx. org / sally /c/ c12. php 6 http :// programujte. com / clanek /2006040601 7 -cykly -v-c-c/