1. Úvod do předmětu. BI-EP2 Efektivní programování Martin Kačer

Rozměr: px
Začít zobrazení ze stránky:

Download "1. Úvod do předmětu. BI-EP2 Efektivní programování Martin Kačer"

Transkript

1 1. Úvod do předmětu BI-EP2 Efektivní programování 2 LS 2017/2018 Ing. Martin Kačer, Ph.D Martin Kačer Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze Vznik předmětu byl podpořen FRVŠ v rámci projektu 2581/2011

2 První hodina obsah Předmět a jeho organizace Vyhodnocovací systém O řešení úloh Znáte už EP1? Mnoho věcí se dnes bude opakovat Martin Kačer, BI-EP2 1. Úvod do předmětu 2

3 O předmětu

4 Účel Praktické procvičení algoritmů aneb jak psát programy Rychle Přehledně Efektivně Bez chyb (pokud možno ) Předpokládáme znalosti z BI-AG1 (BI-AG2?) Martin Kačer, BI-EP2 1. Úvod do předmětu 4

5 Naše cíle Naučit se programovat odstraňovat chyby (ještě lépe: nedělat) přemýšlet!!! Do budoucna Zlepšit výsledky ČVUT (FIT) v soutěžích Martin Kačer, BI-EP2 1. Úvod do předmětu 5

6 ACM Contest International Collegiate Programming Contest (ICPC) Prestižní soutěž v programování Statisíce studentů 2736 univerzit 102 zemí ze 6 kontinentů Týmová Martin Kačer, BI-EP2 1. Úvod do předmětu 6

7 ACM ICPC x BI-EP2 Příklady ze soutěže Formát použitý v soutěži (ale nikoli v týmech) Cílem rozhodně není jen ICPC Algoritmy jsou obecné Martin Kačer, BI-EP2 1. Úvod do předmětu 7

8 Kontakty Martin Kačer Webové stránky pro předmět Další odkazy Martin Kačer, BI-EP2 1. Úvod do předmětu 8

9 Organizace

10 Forma Především řešení konkrétních úloh Rozsah 2+1 (oficiálně 2+2) Každý týden hodina od 9:15 Od 11:00 rezerva + konzultace Řešení úloh doma (to především!) => Primárně cvičení od 9:15 Martin Kačer, BI-EP2 1. Úvod do předmětu 10

11 Čtrnáctidenní cyklus První týden (pátek 9:15) Obecné postupy a algoritmy Zadání na další týden Druhý týden (pátek 9:15) Ukázka řešení problémů Diskuze nad variantami Konzultace v případě potřeby (11:00) Martin Kačer, BI-EP2 1. Úvod do předmětu 11

12 Řešení úloh první týden Samostatné řešení Zkoušíme, co kdo zvládne sám Nácvik bezchybného návrhu Co smíte? Hledat na internetu OBECNÉ věci a algoritmy Co nesmíte? Hledat konkrétně daný příklad Opisovat Radit se s kolegy (ani se mnou ) Martin Kačer, BI-EP2 1. Úvod do předmětu 12

13 Řešení úloh druhý týden Implementace podle řešení Dokončení úloh, které jste nezvládli (nestihli) Nácvik bezchybné implementace Co smíte? Hledat na internetu cokoli Radit se s kolegy či se zeptat vyučujícího Studovat prezentaci řešení, vstupy, výstupy Co nesmíte? Úplně to opsat Martin Kačer, BI-EP2 1. Úvod do předmětu 13

14 Hrajte fér! Samostatně Nepovinný výběrový předmět Poctivě, zejména v prvním týdnu Internet pro obecné hledání ANO Internet pro konkrétní řešení NE! Internet pro zjištění vstupů NE! Porušení pravidel = okamžitý konec! Martin Kačer, BI-EP2 1. Úvod do předmětu 14

15 Hodnocení I 20 úloh 5 tematických cyklů x 4 úlohy v každém Body za vyřešení 5 bodů v prvním týdnu (max. 5x20 = 100) 3 body v druhém týdnu Body za počet úloh 1 bod za 2 a více úloh v daném cyklu (max. 5) -1 bod za 1 úlohu -2 body za 0 úloh Martin Kačer, BI-EP2 1. Úvod do předmětu 15

16 Hodnocení II Vlastní vyrobená úloha max. 15 bodů povinná podmínka zápočtu! 3 body subjektivní hodnocení úlohy 7 bodů faktická správnost 5 bodů vzájemné hodnocení Teoretické maximum: 120 bodů Standardní klasifikace A 90 b. B 80 b. C 70 b. atd. Martin Kačer, BI-EP2 1. Úvod do předmětu 16

17 Harmonogram (změna vyhrazena) #T Datum Náplň Úvod + vyhodnocovací systém, ladění chyb Mřížky & Vyplňování Řešení + konzultace Prohledávání grafů & Stavový prostor Řešení + konzultace Pokrytí & Nejkratší cesty & Kostry Řešení + konzultace >>> výuka odpadá <<< Toky v sítích & Párování Řešení + konzultace Řetězce & Geometrie Řešení + konzultace Martin Kačer, BI-EP2 1. Úvod do předmětu 17

18 Vyhodnocovací systém

19 Vyhodnocovací systém PCSS Vyvinut na ČVUT Použit v pražských kolech Webové rozhraní C/C++ Java Martin Kačer, BI-EP2 1. Úvod do předmětu 19

20 Obdržíte mailem PCSS hesla Platná celý semestr Martin Kačer, BI-EP2 1. Úvod do předmětu 20

21 PCSS zadání úloh PROBLEMS Martin Kačer, BI-EP2 1. Úvod do předmětu 21

22 PCSS odevzdání řešení Martin Kačer, BI-EP2 1. Úvod do předmětu 22

23 PCSS zjištění výsledku Martin Kačer, BI-EP2 1. Úvod do předmětu 23

24 PCSS možné odezvy Jen pro poslední pokus! compile error program nejde přeložit runtime error chyba za běhu time limit exceeded pomalé/cyklí se wrong answer špatná odpověď presentation error asi chyba formátu accepted úspěšně odevzdáno Martin Kačer, BI-EP2 1. Úvod do předmětu 24

25 PCSS výsledky ostatních Martin Kačer, BI-EP2 1. Úvod do předmětu 25

26 Shrnutí: C Funkce main musí vracet nulu Nepoužívat dvoulomítkové komentáře Každá funkce má svůj hlavičkový soubor Neposílat signály (i např. funkce abort, assert) Martin Kačer, BI-EP1 1. Práce s vyhodnocovacím systémem 26

27 Shrnutí: C++ Funkce main musí vracet nulu Každá funkce má svůj hlavičkový soubor Neposílat signály (např. funkce abort, assert) U dlouhých vstupů pozor na pomalost streamů Martin Kačer, BI-EP1 1. Práce s vyhodnocovacím systémem 27

28 Shrnutí: Java Název třídy musí přesně odpovídat úloze Default package Všechno uvnitř jedné třídy Případné dodatečné třídy jako vnitřní (!!) U dlouhých vstupů pozor na pomalost Scanneru Martin Kačer, BI-EP1 1. Práce s vyhodnocovacím systémem 28

29 Potíže s PCSS? Neposílejte řešení opakovaně Obvykle je to zbytečné Sbíráte trestné minuty Ozvěte se! (týká se technických problémů, nikoli potíží s řešením úloh v prvním týdnu) Martin Kačer, BI-EP2 1. Úvod do předmětu 29

30 Vstup a výstup v PCSS VŽDY pouze standardní stdin, stdout, scanf, printf System.in, System.out i kdyby zadání tvrdilo něco jiného! Otevírání souborů je zakázáno!! Spouštění z příkazové řádky./program < vstup.in > vystup.out Martin Kačer, BI-EP2 1. Úvod do předmětu 30

31 O řešení úloh

32 Jaké chceme řešení Správné Vždycky správné! Stabilní Efektivní Rychle hotové!!! V JEDNODUCHOSTI JE SÍLA!!! Martin Kačer, BI-EP2 1. Úvod do předmětu 32

33 V čem spočívá jednoduchost Zbytečně nepsat Zbytečně nepočítat Co nejméně speciálních případů Ale na žádný nezapomenout! Přehlednost Martin Kačer, BI-EP2 1. Úvod do předmětu 33

34 Jednoduché = dobré Rychle napsané Přehledné Méně chyb Často efektivnější ale samozřejmě ne vždy => Preferujeme jednoduché Martin Kačer, BI-EP2 1. Úvod do předmětu 34

35 Přemýšlejme! První nápad nemusí být nejlepší První nápad nemusí být ani správný Proč to děláme zrovna tak? Kdy to (ne)bude fungovat? Výhoda automatického hodnocení Neřekne nám, proč je to špatně Martin Kačer, BI-EP2 1. Úvod do předmětu 35

36 Správnost algoritmu NELZE stoprocentně otestovat Nechceme zkoušet a DOUFAT Chceme VĚDĚT!!! Dokážete zdůvodnit volbu řešení? Umíte dokázat správnost? Bude to fungovat opravdu VŽDY? Martin Kačer, BI-EP2 1. Úvod do předmětu 36

37 Efektivita x velikost vstupu Předpokládáme cca miliardy operací Hranice samozřejmě není ostrá Složitost Omezení na data O(n) ~ O(n. log n) ~ O(n 2 ) ~ O(n 3 ) ~ O(n 4 ) ~ 200 O(2 n ) ~ 30 O(n!) ~ 10 Martin Kačer, BI-EP2 1. Úvod do předmětu 37

38 Typické postupy

39 Povaha úloh Textové zadání Přesně popsaný vstup a výstup Nutno dodržovat Automatické vyhodnocování Úkolem je program, který správně řeší jakoukoli instanci problému! Martin Kačer, BI-EP2 1. Úvod do předmětu 39

40 Vícenásobné zadání Vstup s jediným příkladem V našich úlohách asi nebude Na začátku zadán počet příkladů Ukončení vstupu Konec souboru Speciální hodnota Martin Kačer, BI-EP2 1. Úvod do předmětu 40

41 Zpracování při známém počtu N Příklad 1 Příklad 2 Příklad N int n = readnumber(); for (int i = 0; i < n; ++i) { readoneproblem(); solveoneproblem(); printoneproblem(); } Martin Kačer, BI-EP2 1. Úvod do předmětu 41

42 Zpracování s detekcí konce A1 B1 A2 B2 0 0 for (;;) { int a = readnumber(), b = readnumber(); if (a == 0 && b == 0) break; solveoneproblem(a, b); printoneproblem(); } Martin Kačer, BI-EP2 1. Úvod do předmětu 42

43 Typické čtení v C/C++ Hodnoty oddělené mezerami - scanf Čísla Znaky Řetězce scanf( %d, &num); scanf( %d%d%d, &num1, &num2, &num3); scanf( %c%c, &char1, &char2); scanf( %s, string); /* proč tam není &string? */ /* proč se v normálních programech nepoužívá? */ Martin Kačer, BI-EP2 1. Úvod do předmětu 43

44 Čtení v C možné potíže Jaký je rozdíl v těchto zápisech? scanf( %d%d, &num1, &num2); scanf( %d %d, &num1, &num2); scanf( %d%d\n, &num1, &num2); scanf( %d%d, &num1, &num2); scanf( %c%c, &ch1, &ch2); scanf( %d%d, &num1, &num2); scanf( %i%i, &num1, &num2); Martin Kačer, BI-EP2 1. Úvod do předmětu 44

45 Čtení v C whitespace Přeskakování mezer Je-li zadána mezera Většina konverzí (kromě %c!!) 2 5 ABCDE FGHIJ 2 5 ABCDE FGHIJ scanf( %d%d, &num1, &num2); scanf( %c%c, &ch1, &ch2); ch1 ch2 newline! A scanf( %d%d\n, &num1, &num2); scanf( %c%c, &ch1, &ch2); ch1 ch2 A B Martin Kačer, BI-EP2 1. Úvod do předmětu 45

46 Čtení v C whitespace Přeskakování mezer Je-li zadána mezera Většina konverzí (kromě %c!!) 2 5 *** * * * 2 5 *** * * * scanf( %d%d, &num1, &num2); scanf( %c%c, &ch1, &ch2); ch1 ch2 newline mezera scanf( %d%d\n, &num1, &num2); scanf( %c%c, &ch1, &ch2); ch1 * ch2 * Martin Kačer, BI-EP2 1. Úvod do předmětu 46

47 Čtení v C whitespace Přeskakování mezer Je-li zadána mezera Většina konverzí (kromě %c!!) 3 7 scanf( %d%d, &num1, &num2); num1 3 num scanf( %c%c, &ch1, &ch2); ch1 3 ch2 mezera! Martin Kačer, BI-EP2 1. Úvod do předmětu 47

48 Čtení v C formát čísel V desítkové soustavě vždy %d!! i když je to obvykle jedno 12:05 08:45 scanf( %d:%d, &num1, &num2); scanf( %d:%d, &num3, &num4); num1 12 num2 5 num3 8 num :45 scanf( %i:%i, &num3, &num4); num3 0 num4 nedefinováno! Martin Kačer, BI-EP2 1. Úvod do předmětu 48

49 Typické čtení Java Použití třídy java.util.scanner Není příliš efektivní import java.util.scanner; Scanner in = new Scanner(System.in); int count = in.nextint(); in.nextline(); double d = in.nextdouble(); Martin Kačer, BI-EP2 1. Úvod do předmětu 49

50 Alternativní čtení Java O něco málo složitější, ale rychlejší StringTokenizer st = new StringTokenizer(""); BufferedReader input = new BufferedReader( new InputStreamReader(System.in)); String nexttoken() throws Exception { while (!st.hasmoretokens()) st = new StringTokenizer(input.readLine()); return st.nexttoken(); } int nextint() throws Exception { return Integer.parseInt(nextToken()); } Martin Kačer, BI-EP2 1. Úvod do předmětu 50

51 Čtení po řádcích C/C++ gets / fgets / getchar Uloží i newline!! Pozor na kombinaci se scanf! 2 ABCDE FGHIJ 2 ABCDE FGHIJ scanf( %d\n, &num); fgets(string, length, stdin); num 2 string ABCDE scanf( %d, &num); fgets(string, length, stdin); num 2 string prázdný! Martin Kačer, BI-EP2 1. Úvod do předmětu 51

52 Čtení po řádcích Java Pro změnu asi o něco jednodušší BufferedReader StringTokenizer st = new StringTokenizer(""); BufferedReader input = new BufferedReader( new InputStreamReader(System.in)); String nextline() throws Exception { return input.readline(); } Martin Kačer, BI-EP2 1. Úvod do předmětu 52

53 Formátování výstupu

54 Desetinná čísla Daný počet desetinných míst Zaokrouhlování Martin Kačer, BI-EP2 1. Úvod do předmětu 54

55 printf Reálná čísla C/C++ printf( %f, pi); printf( %.2f, pi); 3.14 printf( %0.3f, pi); printf( %.3f, 0.25); printf( %8.3f, 0.25); printf( %08.3f, 0.25); Martin Kačer, BI-EP2 1. Úvod do předmětu 55

56 Reálná čísla Java java.text.* MessageFormat, NumberFormat, DecimalFormat out.println(new DecimalFormat("0").format(pi)); println(pi); DecimalFormat( 0 ); 3 DecimalFormat( ); DecimalFormat( ); DecimalFormat( ###.### ); DecimalFormat( ); DecimalFormat( #.### ); Martin Kačer, BI-EP2 1. Úvod do předmětu 56

57 Složitější formátování Požadavky na přesné rozmístění mezery, ASCII-art apod. $ $$$$$ ############ $$ $ $$ # B # $$ $ # ### # # $$$$$ # #X #--# c = a + b $ $$ # ###### # $$ $ $$ # A # 00# $$$$$ ############ $ Martin Kačer, BI-EP2 1. Úvod do předmětu 57

58 Složitější formátování Požadavky na přesné rozmístění Většinou se vyplatí zapisovat do pole char map[20][61]; for (r = 0; r < 20; ++r) { for (c = 0; c < 60; ++c) map[r][c] = ; map[r][60] = \0 ; } while(...) map[i][j] = - ; map[i+1][j] = ; C / C++ Martin Kačer, BI-EP2 1. Úvod do předmětu 58

59 Složitější formátování Požadavky na přesné rozmístění Pole pak vypíšeme celé najednou char map[20][60];... for (r = 0; r < 20; ++r) printf( %s\n, map[r]); C / C++ char ch[][] = new char[20][30];... for (int i = 0; i < 20; ++i) System.out.println(ch[i]); Martin Kačer, BI-EP2 1. Úvod do předmětu 59

60 Reálná aritmetika

61 Reálná čísla Reprezentace: mantisa + exponent => rozlišuje jen určitý počet platných číslic OK 0, OK ale při součtu se přesnost ztratí! Desetinná čísla jsou navíc nepřesná sama o sobě: 0,125 desítkově 0,001 binárně 0,2 desítkově 0, binárně Martin Kačer, BI-EP2 1. Úvod do předmětu 61

62 Porovnávání reálných čísel Co vypíše následující kód? double x; for (x = 0.0; x!= 1.0; x += 0.1) { printf("%f\n", x); } double x; for (x = 0.0; x < 1.0; x += 0.02) { printf("%f\n", x); } Martin Kačer, BI-EP2 1. Úvod do předmětu 62

63 Porovnávání reálných čísel PAMATUJTE: Desetinná čísla jsou nepřesná!!! double x; for (x = 0.0; x < 1.0; x += 0.1) { printf("%f\n", x); } Martin Kačer, BI-EP2 1. Úvod do předmětu 63

64 Porovnávání reálných čísel PAMATUJTE: Desetinná čísla jsou nepřesná!!! double x; for (x = 0.0; x <= 1.0; x += 0.02) { printf("%f\n", x); } Martin Kačer, BI-EP2 1. Úvod do předmětu 64

65 Reálná čísla příklad Zjistěte, zda je bod [X,Y] uvnitř kruhu o poloměru R if (sqrt(x*x + y*y) <= r) Odmocnina je zbytečně pomalá a nepřesná if (x*x + y*y <= r*r) Lepší Funguje i pro celá čísla ale vlastně JEN pro celá čísla Martin Kačer, BI-EP2 1. Úvod do předmětu 65

66 Reálná čísla příklad if (x*x + y*y <= r*r) Nevhodné kvůli nepřesnostem reálných čísel Bod ležící na kružnici testem projít může a nemusí static final EPS = 1E-8; if (x*x + y*y < r*r + EPS) /* včetně kružnice */ if (x*x + y*y < r*r - EPS) /* vyjma kružnice */ Martin Kačer, BI-EP2 1. Úvod do předmětu 66

67 Magické epsilon Vždy používejte pro porovnávání! Pokud existuje rozdíl mezi < a <= Na úplnou rovnost if ( abs(a-b) < EPS ) Jak epsilon vybrat? Dostatečně velké, aby pomohlo Dostatečně malé, aby nevadilo o několik řádů menší než hodnoty Martin Kačer, BI-EP2 1. Úvod do předmětu 67

68 O chybách a tak

69 Typy chyb v úlohách Špatný algoritmus Neměl by se nám vůbec stávat (ale ) Chybná implementace Tady asi pomůže jen praxe (příp. review) Chyták Čtěte pořádně zadání a přemýšlejte! Martin Kačer, BI-EP2 1. Úvod do předmětu 69

70 Co dělat, když to nefunguje? Nesnažte se vzít větší kladivo Raději přemýšlejte! X Martin Kačer, BI-EP2 1. Úvod do předmětu 70

71 Runtime Error Kde k němu může dojít? Přístup do paměti Dělení Jiné výjimky (Java) Indexy a rozměry polí Dynamická alokace paměti Snažte se najít vstup, kde to spadne Martin Kačer, BI-EP2 1. Úvod do předmětu 71

72 Time Limit Exceeded Zkontrolujte čtení vstupu! Případná další nekonečná smyčka? Je váš algoritmus skutečně efektivní? Speciální případy: prázdný, největší Snažte se najít vstup, pro který je to podezřele pomalé Martin Kačer, BI-EP2 1. Úvod do předmětu 72

73 Wrong Answer Speciální případy prázdný jeden prvek Zkontrolujte znovu zadání Je váš algoritmus skutečně správný? Snažte se najít vstup, pro který to nefunguje (tady je to ale těžké) Martin Kačer, BI-EP2 1. Úvod do předmětu 73

74 Presentation Error Zkontrolujte texty Nevypisujete něco navíc? Ladící výstupy Formátování čísel (zejména reálných) Může znamenat i špatnou odpověď Případně mne kontaktujte Martin Kačer, BI-EP2 1. Úvod do předmětu 74

75 Stále nic? Přemýšlejte! Přečtete si znovu zadání, včetně detailů Ukažte to někomu jinému (pokud to jde) Napište to celé od začátku Nechte to být Martin Kačer, BI-EP2 1. Úvod do předmětu 75

76 To je pro dnešek vše Témata úloh pro další týden: Vybrané úlohy z EP1 Nepočítají se (přímo) do hodnocení ale zkuste si to! Martin Kačer, BI-EP2 1. Úvod do předmětu 76

1. Úvodní informace. BI-EP1 Efektivní programování Martin Kačer

1. Úvodní informace. BI-EP1 Efektivní programování Martin Kačer 1. Úvodní informace 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íce

3 KTE / ZPE Informační technologie

3 KTE / ZPE Informační technologie 3 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň Komentáře

Více

KTE / ZPE Informační technologie

KTE / ZPE Informační technologie 4 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň Největší

Více

Práce s textem. Třída Character. Třída Character. Třída Character. reprezentuje objekty zapouzdřující hodnotu typu char (boxing / unboxing)

Práce s textem. Třída Character. Třída Character. Třída Character. reprezentuje objekty zapouzdřující hodnotu typu char (boxing / unboxing) Třída Character Práce s textem 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 reprezentuje objekty zapouzdřující hodnotu

Více

BI-EP1 Efektivní programování 1

BI-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

BI-EP2 Efektivní programování 2

BI-EP2 Efektivní programování 2 BI-EP2 Efektivní programování 2 LS 2017/2018 Ing. Martin Kačer, Ph.D. 2011-18 Martin Kačer Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze Vznik předmětu

Více

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

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 1/41 Základní příkazy Všechny příkazy se píšou malými písmeny! Za většinou příkazů musí být středník (;)! 2/41 Základní příkazy

Více

Lekce 9 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C

Lekce 9 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C Identifikační údaje školy Číslo projektu Název projektu Číslo a název šablony Autor Tematická oblast Číslo a název materiálu Anotace Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace

Více

6. Tahy / Kostry / Nejkratší cesty

6. Tahy / Kostry / Nejkratší cesty 6. Tahy / Kostry / Nejkratší cesty BI-EP2 Efektivní programování 2 LS 2017/2018 Ing. Martin Kačer, Ph.D. 2011-18 Martin Kačer Katedra teoretické informatiky Fakulta informačních technologií České vysoké

Více

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

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

Úvod do programování. Lekce 1

Úvod do programování. Lekce 1 Úvod do programování Lekce 1 Základní pojmy vytvoření spustitelného kódu editor - psaní zdrojových souborů preprocesor - zpracování zdrojových souborů (vypuštění komentářů atd.) kompilátor (compiler) -

Více

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

Programování v C++ 1, 1. cvičení Programování v C++ 1, 1. cvičení opakování látky ze základů programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí procvičených

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Typy Základní (primitivní) datové typy Deklarace Verze pro akademický rok 2012/2013 1 Typy v jazyce Java Základní datové typy (primitivní datové typy) Celočíselné byte, short,

Více

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

Operační systémy. Cvičení 4: Programování v C pod Unixem Operační systémy Cvičení 4: Programování v C pod Unixem 1 Obsah cvičení Řídící struktury Funkce Dynamická alokace paměti Ladění programu Kde najít další informace Poznámka: uvedené příklady jsou dostupné

Více

- jak udělat konstantu long int: L long velka = 78L;

- jak udělat konstantu long int: L long velka = 78L; Konstanty (konstatní hodnoty) Např.: - desítkové: 25, 45, 567, 45.678 - osmičkové: 045, 023, 03 vždy začínají 0 - šestnáctkové: 0x12, 0xF2, 0Xcd, 0xff, 0xFF - jak udělat konstantu long int: 245566553L

Více

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

Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů Začínáme vážně programovat Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů Podmínky a cykly Dokončení stručného přehledu řídících struktur jazyka C. Složený příkaz, blok Pascalské

Více

9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h> 9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include int main(void) { int dcislo, kolikbcislic = 0, mezivysledek = 0, i; int vysledek[1000]; printf("zadejte

Více

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

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

Textové soubory. alg9 1

Textové soubory. alg9 1 Textové soubory Textový soubor je posloupnost znaků členěná na řádky každý znak je reprezentován jedním bytem, jehož obsah je dán nějakým kódováním znaků členění na řádky je závislé na platformě a obvykle

Více

Jazyk C++, některá rozšíření oproti C

Jazyk C++, některá rozšíření oproti C Karel Müller, Josef Vogel (ČVUT FIT) Jazyk C++, některá rozšíření oproti C BI-PA2, 2011, Přednáška 1 1/22 Jazyk C++, některá rozšíření oproti C Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Struktura programu Vytvoření nové aplikace Struktura programu Základní syntaktické elementy První aplikace Verze pro akademický rok 2012/2013 1 Nová aplikace NetBeans Ve vývojovém

Více

KTE / ZPE Informační technologie

KTE / ZPE Informační technologie 7 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň - ternární

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

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

Operá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íce

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Vý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íce

Úvod do programování 6. hodina

Úvod do programování 6. hodina Úvod do programování 6. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Umíme z minulé hodiny Algoritmy Třídění pole: Selection

Více

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod. Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání

Více

Základní datové typy, proměnné - deklarujeme předem - C je case sensitive rozlišuje malá a velká písmena v názvech proměnných a funkcí

Základní datové typy, proměnné - deklarujeme předem - C je case sensitive rozlišuje malá a velká písmena v názvech proměnných a funkcí 02 Jazyk C - je imperativní říkáme, co se má udělat, voláme příkazy - další imperativní jazyky: Pascal, Java, C/C++ apod. - na rozdíl od jazyků deklarativních např. Prolog, Haskell, Scheme, Lisp (funkcionální

Více

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

Operační systémy. Cvičení 3: Programování v C pod Unixem Operační systémy Cvičení 3: Programování v C pod Unixem 1 Obsah cvičení Editace zdrojového kódu Překlad zdrojového kódu Základní datové typy, struktura, ukazatel, pole Načtení vstupních dat Poznámka: uvedené

Více

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

Základy jazyka C. Základy programování 1 Martin Kauer (Tomáš Kühr) Základy jazyka C Základy programování 1 Martin Kauer (Tomáš Kühr) Organizační záležitosti Konzultace Pracovna 5.076 Úterý 15:00 16:30 Emailem martin.kauer@upol.cz Web předmětu http://tux.inf.upol.cz/~kauer/index.php?content=var&class=zp1

Více

Základy algoritmizace a programování

Základy algoritmizace a programování Základy algoritmizace a programování Přednáška 1 Olga Majlingová Katedra matematiky, ČVUT v Praze 19. září 2011 Obsah Úvodní informace 1 Úvodní informace 2 3 4 Doporučená literatura web: http://marian.fsik.cvut.cz/zapg

Více

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech 7 Formátovaný výstup, třídy, objekty, pole, chyby v programech Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost formátovanému výstupu,

Více

PB161 Programování v C++ Proudy pro standardní zařízení Souborové proudy Paměťové proudy Manipulátory

PB161 Programování v C++ Proudy pro standardní zařízení Souborové proudy Paměťové proudy Manipulátory PB161 Programování v C++ Proudy pro standardní zařízení Souborové proudy Paměťové proudy Manipulátory Výhody objektového řešení Nástroje pro IO operace jsou v C++ součástí knihoven Hierarchie objektových

Více

Central European Programming Contest 2009 příprava na soutěž. Jan Stoklasa stoklja5 at fel.cvut.cz. 1 z 40

Central European Programming Contest 2009 příprava na soutěž. Jan Stoklasa stoklja5 at fel.cvut.cz. 1 z 40 Central European Programming Contest 2009 příprava na soutěž Jan Stoklasa stoklja5 at fel.cvut.cz 1 z 40 CEPC 2009 Wroclaw, 6.-8.11.2009 Odjezd v pátek 6.11. ve 14:30 od budovy FEL v Dejvicích Návrat na

Více

PROGRAMOVÁNÍ V JAZYCE C V PŘÍKLADECH 11 Dynamické datové struktury 11.1 Spojové struktury... 11-1 11.2 Příklad PROG_11-01... 11-2 11.

PROGRAMOVÁNÍ V JAZYCE C V PŘÍKLADECH 11 Dynamické datové struktury 11.1 Spojové struktury... 11-1 11.2 Příklad PROG_11-01... 11-2 11. David Matoušek Programování v jazyce C v pøíkladech Praha 2011 David Matoušek Programování v jazyce C v pøíkladech Bez pøedchozího písemného svolení nakladatelství nesmí být kterákoli èást kopírována nebo

Více

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

4. 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íce

NPRG030 Programování I, 2018/19 1 / :25:37

NPRG030 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íce

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

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

5. Dynamické programování

5. Dynamické programování 5. Dynamické programování 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íce

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

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu } 5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu

Více

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

Úvod do programování - Java. Cvičení č.4 Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení

Více

Algoritmy a datové struktury

Algoritmy a datové struktury Algoritmy a datové struktury Data a datové typy 1 / 28 Obsah přednášky Základní datové typy Celá čísla Reálná čísla Znaky 2 / 28 Organizace dat Výběr vhodné datvé struktry různá paměťová náročnost různá

Více

Paměť počítače. alg2 1

Paměť 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íce

Výčtový typ strana 67

Výčtový typ strana 67 Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce

Více

Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP

Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP Základy programování Úloha: Eratosthenovo síto Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP Obsah 1 Zadání úkolu: 3 1.1 Zadání:............................... 3 1.2 Neformální zápis:.........................

Více

Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004

Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004 Dokumentace k projektu č. 2 do IZP Iterační výpočty 24. listopadu 2004 Autor: Kamil Dudka, xdudka00@stud.fit.vutbr.cz Fakulta Informačních Technologií Vysoké Učení Technické v Brně Obsah 1. Úvod...3 2.

Více

Algoritmizace a programování. Terminálový vstup a výstup

Algoritmizace a programování. Terminálový vstup a výstup Algoritmizace a programování Terminálový vstup a výstup Verze pro akademický rok 2012/2013 1 Výpis hodnot Terminálový vstup a výstup budeme používat jako základní způsob interakce programu s uživatelem

Více

5 Přehled operátorů, příkazy, přetypování

5 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íce

6. Základy výpočetní geometrie

6. Základy výpočetní geometrie 6. Základy výpočetní geometrie 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í

Více

Základy programovaní 3 - Java. Unit testy. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 26.,27.

Základy programovaní 3 - Java. Unit testy. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 26.,27. Základy programovaní 3 - Java Unit testy Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci 26.,27. listopad, 2014 Petr Krajča (UP) Unit testy 26.,27. listopad, 2014 1 / 14 Testování zásadní

Více

Programování v jazyce C pro chemiky (C2160) 12. Specifické problémy při vývoji vědeckého softwaru

Programování v jazyce C pro chemiky (C2160) 12. Specifické problémy při vývoji vědeckého softwaru Programování v jazyce C pro chemiky (C2160) 12. Specifické problémy při vývoji vědeckého softwaru Reprezentace reálnách čísel v počítači Reálná čísla jsou v počítači reprezentována jako čísla tvaru ±x

Více

Práce se soubory. Základy programování 2 Tomáš Kühr

Práce se soubory. Základy programování 2 Tomáš Kühr Práce se soubory Základy programování 2 Tomáš Kühr Soubory z pohledu C Soubor zjednodušeně chápeme jako posloupnost bytů uložených někde na disku Datový proud (anglicky stream) Ještě obecnější přístup

Více

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

Programování v C++, 2. cvičení Programování v C++, 2. cvičení 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 Operátory new a delete 2 3 Operátory new a delete minule

Více

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

6. Příkazy a řídící struktury v Javě 6. Příkazy a řídící struktury v Javě Příkazy v Javě Příkazy v Javě Řídicí příkazy (větvení, cykly) Přiřazovací příkaz = Řízení toku programu (větvení, cykly) Volání metody Návrat z metody - příkaz return

Více

Algoritmizace a programování

Algoritmizace 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íce

Motivace. Vstup a výstup. Minimální komunikace. Motivace. ÚDPJ - Vstup a výstup. Ing. Lumír Návrat katedra informatiky, A

Motivace. Vstup a výstup. Minimální komunikace. Motivace. ÚDPJ - Vstup a výstup. Ing. Lumír Návrat katedra informatiky, A Motivace Vstup a výstup Ing. Lumír Návrat katedra informatiky, A-1018 59 732 3252 Načtení čísla val :: Int val = 42 function :: Int -> Int function = val + n inputint :: Int inputdiff = inputint - inputint

Více

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C Identifikační údaje školy Číslo projektu Název projektu Číslo a název šablony Autor Tematická oblast Číslo a název materiálu Anotace Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace

Více

Vyhledá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. 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íce

Soubor jako posloupnost bytů

Soubor jako posloupnost bytů Soubory Soubor je množina údajů uložená ve vnější paměti počítače, obvykle na disku Pro soubor jsou typické tyto operace. otevření souboru čtení údaje zápis údaje uzavření souboru Přístup k údajům (čtení

Více

Datové struktury 2: Rozptylovací tabulky

Datové struktury 2: Rozptylovací tabulky Datové struktury 2: Rozptylovací tabulky 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

Více

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

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 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íce

4.4.2012. Obsah přednášky. Příkaz for neúplný. Příkaz for příklady. Cyklus for each (enhanced for loop) Příkaz for příklady

4.4.2012. Obsah přednášky. Příkaz for neúplný. Příkaz for příklady. Cyklus for each (enhanced for loop) Příkaz for příklady Základy programování (IZAPR, IZKPR) Přednáška 5 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky Příkazy cyklu -

Více

Úvod do programování

Úvod do programování Úvod do programování Základní literatura Töpfer, P.: Algoritmy a programovací techniky, Prometheus, Praha učebnice algoritmů, nikoli jazyka pokrývá velkou část probíraných algoritmů Satrapa, P.: Pascal

Více

Algoritmizace a programování

Algoritmizace 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íce

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

Algoritmizace 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íce

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01 Anotace sady: Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01 Autor: Blanka Sadovská Klíčová slova: Algoritmus, proměnná, diagram Stupeň a typ vzdělávání: gymnaziální vzdělávání, 3. ročník

Více

Jazyk C práce se soubory. Jan Hnilica Počítačové modelování 16

Jazyk C práce se soubory. Jan Hnilica Počítačové modelování 16 Jazyk C práce se soubory 1 Soubory Použití souborů pro vstup většího množství dat do programu (uživatel nezadává z klávesnice ručně tisíce údajů...) pro uložení většího množství výsledků, např. k pozdějšímu

Více

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová Programové konvence, dokumentace a ladění 2. přednáška Alena Buchalcevová Proč dodržovat programové konvence? velkou část životního cyklu softwaru tvoří údržba údržbu provádí většinou někdo jiný než autor

Více

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Čtvrté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 4.

Více

Formátová specifikace má tvar (některé sekce nemají smysl pro načítání) %

Formátová specifikace má tvar (některé sekce nemají smysl pro načítání) % vstup a výstup na konzolu - vstupním zařízením je klávesnice, výstupním monitor (přístup jako k sériovým zařízením) - spojení s konzolami je nastaveno automaticky na začátku programu - ke konzole je možné

Více

KTE / PPEL Počítačová podpora v elektrotechnice

KTE / PPEL Počítačová podpora v elektrotechnice 24. 9. 2014 KTE / PPEL Počítačová podpora v elektrotechnice Ing. Lenka Šroubová, Ph.D. email: lsroubov@kte.zcu.cz ICQ: 361057825 http://home.zcu.cz/~lsroubov tel.: +420 377 634 623 Místnost: EK602 Katedra

Více

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické Jak v Javě primitivní datové typy a jejich reprezentace BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické Obsah Celočíselný datový typ Reálný datový typ Logický datový typ, typ Boolean

Více

Programování v jazyce JavaScript

Programová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

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

Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016 Preprocesor Karel Richta a kol. katedra počítačů FEL ČVUT v Praze Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016 Programování v C++, A7B36PJC 4/2016, Lekce 9b https://cw.fel.cvut.cz/wiki/courses/a7b36pjc/start

Více

Šifrování/Dešifrování s použitím hesla

Šifrování/Dešifrování s použitím hesla Fakulta elektrotechnická Katedra teoretické elektrotechniky Dokumentace k semestrální práci Šifrování/Dešifrování s použitím hesla 2012/13 Petr Zemek Vyučující: Ing. Petr Kropík, Ph.D Předmět: Základy

Více

Java Cvičení 01. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

Java Cvičení 01.  CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Java Cvičení 01 http://d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Příklady - Porovnání Co kód vypíše? package cz.cuni.mff.java.example01.tests; public class Test01

Více

ALGORITMIZACE A PROGRAMOVÁNÍ

ALGORITMIZACE A PROGRAMOVÁNÍ Metodický list č. 1 Algoritmus a jeho implementace počítačovým programem Základním cílem tohoto tematického celku je vysvětlení pojmů algoritmus a programová implementace algoritmu. Dále je cílem seznámení

Více

Pole a kolekce. v C#, Javě a C++

Pole a kolekce. v C#, Javě a C++ Pole a kolekce v C#, Javě a C++ C# Deklarace pole typ_prvku_pole[] jmeno_pole; Vytvoření pole jmeno_pole = new typ_prvku_pole[pocet_prvku_pole]; Inicializace pole double[] poled = 4.8, 8.2, 7.3, 8.0; Java

Více

8 Třídy, objekty, metody, předávání argumentů metod

8 Třídy, objekty, metody, předávání argumentů metod 8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním

Více

Programování v jazyce C a C++

Programování v jazyce C a C++ Programování v jazyce C a C++ Richter 1 Petyovský 2 1. března 2015 1 Ing. Richter Miloslav, Ph.D., UAMT FEKT VUT Brno 2 Ing. Petyovský Petr, UAMT FEKT VUT Brno C++ Stručná charakteristika Nesdíĺı normu

Více

Java a XML. 10/26/09 1/7 Java a XML

Java a XML. 10/26/09 1/7 Java a XML Java a XML Java i XML jsou přenositelné V javě existuje podpora pro práci s XML, nejčastější akce prováděné při zpracování XML: načítání XML elementů generování nových elementů nebo úprava starého zápis

Více

Opakování programování

Opakování programování Opakování programování HW návaznost - procesor sběrnice, instrukční sada, optimalizace rychlosti, datové typy, operace (matematické, logické, podmínky, skoky, podprogram ) - paměti a periferie - adresování

Více

2. Mřížky / Záplavové vyplňování

2. Mřížky / Záplavové vyplňování 2. Mřížky / Záplavové vyplňování BI-EP2 Efektivní programování 2 LS 2017/2018 Ing. Martin Kačer, Ph.D. 2011-18 Martin Kačer Katedra teoretické informatiky Fakulta informačních technologií České vysoké

Více

Abstraktní datové typy: zásobník

Abstraktní datové typy: zásobník Abstraktní datové typy: zásobník 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 Abstraktní datové typy omezené rozhraní

Více

Vyhledá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. 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íce

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

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce.

2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce. Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv copyright To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího (aby

Více

Úvod do programování 7. hodina

Úvod do programování 7. hodina Úvod do programování 7. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Umíme z minulé hodiny Syntax Znaky Vlastní implementace

Více

Regulární výrazy. Vzory

Regulární výrazy. Vzory Regulární výrazy Regulární výrazy jsou určeny pro práci s textovými řetězci, jsou součástí J2SDK až od verze 1.4, v předchozích verzích je potřeba použít některou z externích knihoven, např. knihovnu ORO

Více

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty. Proměnná Pojmenované místo v paměti sloužící pro uložení hodnoty. K pojmenování můžeme použít kombinace alfanumerických znaků, včetně diakritiky a podtržítka Rozlišují se velká malá písmena Název proměnné

Více

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

Pole a Funkce. Úvod do programování 1 Tomáš Kühr Pole a Funkce Úvod do programování 1 Tomáš Kühr (Jednorozměrné) pole u Datová struktura u Lineární u Homogenní = prvky stejného datového typu u Statická = předem určený počet prvků u Pole umožňuje pohodlně

Více

Algoritmy I, složitost

Algoritmy I, složitost A0B36PRI - PROGRAMOVÁNÍ Algoritmy I, složitost České vysoké učení technické Fakulta elektrotechnická v 1.01 Rychlost... Jeden algoritmus (program, postup, metoda ) je rychlejší než druhý. Co ta věta znamená??

Více

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write("\nPrumerna teplota je {0}", tprumer);

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write(\nPrumerna teplota je {0}, tprumer); Pole (array) Motivace Častá úloha práce s větším množstvím dat stejného typu o Př.: průměrná teplota za týden a odchylka od průměru v jednotlivých dnech Console.Write("Zadej T pro.den: "); double t = Double.Parse(Console.ReadLine());

Více

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. 13 Rozhraní, výjimky Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. Doba nutná k nastudování 2 2,5 hodiny

Více

Teoretické minimum z PJV

Teoretické minimum z PJV Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov

Více

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

Algoritmizace 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íce

Programování v jazyce C pro chemiky (C2160) 4. Textové řetězce, zápis dat do souboru

Programování v jazyce C pro chemiky (C2160) 4. Textové řetězce, zápis dat do souboru Programování v jazyce C pro chemiky (C2160) 4. Textové řetězce, zápis dat do souboru Textové řetězce V jazyce C neexistuje typ proměnné, který by byl určen výhradně pro ukládání textu V jazyce C používáme

Více

Programování v Javě I. Leden 2008

Programování v Javě I. Leden 2008 Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Programování v Javě (1) 1/ 45 Téma přednášky Datové typy Deklarace třídy Modifikátory

Více

EVROPSKÝ 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 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íce

Formátové specifikace formátovací řetězce

Formátové specifikace formátovací řetězce 27.2.2007 Formátové specifikace formátovací řetězce - je to posloupnost podle které překladač pozná jaký formát má výstup mít - posloupnosti začínají znakem % a určující formát vstupu/výstupu - pokud chcete

Více