Základy programování (IZP)

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

Download "Základy programování (IZP)"

Transkript

1 Základy programování (IZP) Šesté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 6. týden

2 Důležité informace Můj profil: Kancelář: A221 Konzultační hodiny: po domluvě em Karta Výuka odkaz na osobní stránky Komunikace: prosím používejte předmět: IZP - <předmět u> IZP cvičení 6 2

3 Důležité informace 1. projekt Práce s textem Obhajoba projektu Bez ohhajoby: 0b Odevzdání projektu do WISu Jméno souboru: proj1.c IZP cvičení 6 3

4 Náplň cvičení Diskuze k prvnímu projektu Opakování pojmů Z minula: předávání parametrů funkcím hodnotou, odkazem Řídicí struktury a jejich převod Převod mezi cykly Ukazatele a alokace paměti IZP cvičení 6 4

5 DISKUZE K PRVNÍMU PROJEKTU IZP cvičení 6 5

6 1. projekt rady, doporučení Testujte na serveru merlin Překládejte i s přepínačem Werror Důsledně dodržujte formát výstupu, projekt bude hodnocen automaticky Projděte si funkce dostupné v hlavičkových souborech IZP cvičení 6 6

7 Knihovna ctype.h Funkce vrací číslo > 0 nebo 0 Zkontroluje, zda je znak c bílý znak int isspace(int c); Zkontroluje, zda je znak c číslice int isdigit(int c); Zkontroluje, zda je znak c písmeno int isalpha(int c); Více informací o ctype.h man ctype.h Internet IZP cvičení 6 7

8 OPAKOVÁNÍ POJMŮ IZP cvičení 6 8

9 Opakování pojmů Funkce IZP cvičení 6 9

10 Opakování pojmů Funkce Funkce sdružuje příkazy v jeden celek. Jedna z funkcí je funkce main() a musí být v programu vždy uvedena. Je vhodné program rozdělit na funkce, které odpovídají jednotlivým činnostem, které má program vykonávat. IZP cvičení 6 10

11 Opakování pojmů Deklarace funkce (prototyp funkce, hlavička) IZP cvičení 6 11

12 Opakování pojmů Deklarace funkce (prototyp funkce, hlavička) Deklaruje funkci před jejím použitím a před tím než je definována. navrattyp JmenoFce(arg1, arg2,,argn); IZP cvičení 6 12

13 Opakování pojmů Deklarace funkce (prototyp funkce, hlavička) Deklaruje funkci před jejím použitím a před tím než je definována. navrattyp JmenoFce(arg1, arg2,,argn); Poznámka: Funkce main() prototyp nepotřebuje jedná se o funkci, která má zvláštní postavení Každý spustitelný program ji musí obsahovat Její návratový typ je vždy int IZP cvičení 6 13

14 Opakování pojmů Poznámka: Funkce main má 0 nebo 2 parametry 0 parametrů: nepotřebujeme pracovat s argumenty příkazové řádky int main(){ } 2 parametry: potřebujeme argumenty příkazové řádky int main(int argc, char* argv[]){ } Poznámka: Nezáleží na pojmenování parametrů, důležité jsou pouze jejich datové typy! Uvedené pojmenování je ale konvence, která se používá všude IZP cvičení 6 14

15 Opakování pojmů Definice funkce (implementace funkce) IZP cvičení 6 15

16 Opakování pojmů Definice funkce (implementace funkce) Uvedení toho, co má funkce dělat Hlavička funkce + tělo funkce navrattyp JmenoFce(arg1, arg2,,argn) { // tělo: co má funkce provádět } IZP cvičení 6 16

17 Opakování pojmů Datový typ IZP cvičení 6 17

18 Opakování pojmů Datový typ Jaká data mohou být na pojmenovaném místě uložena Jaké operace mohou být s daty prováděny Např. int, double, float, char, bool, Pro určení velikosti datového typu můžeme s výhodou použít operátor sizeof() IZP cvičení 6 18

19 Opakování pojmů Proměnná Pojmenované místo v paměti, ve kterém uchováváme data. Má určitý datový typ a její hodnota se může za běhu programu měnit. Příklad: int a=10; IZP cvičení 6 19

20 Opakování pojmů Proměnná Pojmenované místo v paměti, ve kterém uchováváme data. Má určitý datový typ a její hodnota se může za běhu programu měnit. Příklad: int a=10; Konstanta Pojmenované místo v paměti, ve kterém uchováváme data. Má určitý datový typ, její hodnota se nemůže za běhu programu měnit. Příklad: const int b=10; IZP cvičení 6 20

21 Opakování pojmů Deklarace IZP cvičení 6 21

22 Opakování pojmů Deklarace Deklarace proměnné vytváří novou proměnnou, kterou je možno použít dál v programu int i; // nepřiřazena žádná hodnota IZP cvičení 6 22

23 Opakování pojmů Deklarace Deklarace proměnné vytváří novou proměnnou, kterou je možno použít dál v programu int i; // nepřiřazena žádná hodnota Inicializace IZP cvičení 6 23

24 Opakování pojmů Deklarace Deklarace proměnné vytváří novou proměnnou, kterou je možno použít dál v programu int i; // nepřiřazena žádná hodnota Inicializace Přiřazení počáteční hodnoty deklarované proměnné int j = 10; // inicializováno na 10 a = 60; // NELZE, proměnná není // deklarována IZP cvičení 6 24

25 Opakování pojmů Příkaz IZP cvičení 6 25

26 Opakování pojmů Příkaz Příkaz definuje činnost, kterou program vykoná (výpis textu na obrazovku, opakování části programu, atp.). IZP cvičení 6 26

27 Opakování pojmů Řídicí konstrukce (struktury) programu IZP cvičení 6 27

28 Opakování pojmů Řídicí konstrukce (struktury) programu Části programovacího jazyka, které řídí, jakým směrem se bude výpočet ubírat. Patří sem: Funkce Příkazy: složený příkaz, podmíněný příkaz, cykly, příkazy skoku IZP cvičení 6 28

29 Opakování pojmů Výraz IZP cvičení 6 29

30 Opakování pojmů Výraz Konstrukce jazyka, která má hodnotu (nějakého datového typu) Výraz příkaz Výraz: představuje dále použitelnou hodnotu Příkaz: jeho úkolem je vykonat nějaký kód IZP cvičení 6 30

31 Opakování pojmů Operátory IZP cvičení 6 31

32 Opakování pojmů Operátory Aritmetické IZP cvičení 6 32

33 Opakování pojmů Operátory Aritmetické: unární (+, -, speciální: ++, --), binární (+, -, *, /, %, =) Logické IZP cvičení 6 33

34 Opakování pojmů Operátory Aritmetické: unární (+, -, speciální: ++, --), binární (+, -, *, /, %, =) Logické: && (AND), (OR),! (NOT) A B AND OR IZP cvičení 6 34

35 Opakování pojmů Operátory Aritmetické: unární (+, -, speciální: ++, --), binární (+, -, *, /, %, =) Logické: && (AND), (OR),! (NOT) A B AND OR Relační IZP cvičení 6 35

36 Opakování pojmů Operátory Aritmetické: unární (+, -, speciální: ++, --), binární (+, -, *, /, %, =) Logické: && (AND), (OR),! (NOT) Relační: ==, >, <, >=, <= A B AND OR IZP cvičení 6 36

37 Opakování pojmů Operátory Aritmetické: unární (+, -, speciální: ++, --), binární (+, -, *, /, %, =) Logické: && (AND), (OR),! (NOT) Relační: ==, >, <, >=, <= Bitové A B AND OR IZP cvičení 6 37

38 Opakování pojmů Operátory Aritmetické: unární (+, -, speciální: ++, --), binární (+, -, *, /, %, =) Logické: && (AND), (OR),! (NOT) Relační: ==, >, <, >=, <= A B AND OR Bitové: výsledkem je číselná hodnota (ne logická!) & (bit. AND), (bit. OR), ~ (bit. NOT), ^ (bit. XOR), << (bit. posun vlevo), >> (bit. posun vpravo) IZP cvičení 6 38

39 Opakování pojmů Homogenní/heterogenní datová struktura IZP cvičení 6 39

40 Opakování pojmů Homogenní/heterogenní datová struktura Homogenní: všechny komponenty struktury jsou stejného datového typu Příklad: pole int moje_pole[6]; Heterogenní: komponenty struktury nejsou stejného datového typu Příklad: struktura (později na tomto cvičení ) IZP cvičení 6 40

41 Opakování pojmů Cyklus IZP cvičení 6 41

42 Opakování pojmů Cyklus Cyklem myslíme opakování určité části programu. Rozeznáváme dva základní druhy cyklů: se známým počtem průchodů (iterací) (for) s neznámým počtem průchodů (iterací) (while, do-while) IZP cvičení 6 42

43 JEDNODUCHÉ CYKLY IZP cvičení 6 43

44 Příklad 1 cykly Se známým počtem průchodů jaký cyklus? Vzestupně - interval [0;n) Vzestupně - interval [a;b] Sestupně - interval [a;b) Vzestupně ob jedno - interval [a;b] Po jednotlivých znacích řetězce Po jednotlivých znacích načtených ze stdin IZP cvičení 6 44

45 Příklad 1 cykly Se známým počtem průchodů cyklus for Vzestupně - interval [0;n) Vzestupně - interval [a;b] Sestupně - interval [a;b) Vzestupně ob jedno - interval [a;b] Po jednotlivých znacích řetězce Po jednotlivých znacích načtených ze stdin IZP cvičení 6 45

46 Časté chyby Pozor na = a == for(int i=0; i=5; i++){ } Pozor na pořadí jednotlivých částí cyklu for for(int i=0; i++; i<5){ } for(int i=5; i--; i>0){ } IZP cvičení 6 46

47 Funkce Příklady výše lze zobecnit tak, že je dekomponujeme do funkcí Napište program, který bude obsahovat funkci s prototypem int countchars(char* str, char c); Tato funkce vrací počet výskytu znaku c v řetězci str IZP cvičení 6 47

48 PŘEVODY MEZI CYKLY IZP cvičení 6 48

49 Příklad 2 převody mezi cykly Napište program, který projde všechny argumenty příkazové řádky a zjistí, zda byl zadán argument h Pokud byl zadán, ihned ukončete provádění cyklu Použijte cyklus while a příkaz break IZP cvičení 6 49

50 Příklad 2 převody mezi cykly Napište program, který projde všechny argumenty příkazové řádky a zjistí, zda byl zadán argument h Pokud byl zadán, ihned ukončete provádění cyklu Použijte cyklus while a příkaz break Modifikace 1: převeďte s cyklem while bez použití break a continue IZP cvičení 6 50

51 Příklad 2 převody mezi cykly Napište program, který projde všechny argumenty příkazové řádky a zjistí, zda byl zadán argument h Pokud byl zadán, ihned ukončete provádění cyklu Použijte cyklus while a příkaz break Modifikace 1: převeďte s cyklem while bez použití break a continue Modifikace 2: přepište cyklus while na for IZP cvičení 6 51

52 Příklad 2 převody mezi cykly for(inicializace; test; inkrementace) { } inicializace; while(test) { inkrementace; } IZP cvičení 6 52

53 Příklad 2 převody mezi cykly Napište program, který projde všechny argumenty příkazové řádky a zjistí, zda byl zadán argument h Pokud byl zadán, ihned ukončete provádění cyklu Použijte cyklus while a příkaz break Modifikace 1: převeďte s cyklem while bez použití break a continue Modifikace 2: přepište cyklus while na for IZP cvičení 6 53

54 Převody mezi cykly II PŘÍKLAD 3 IZP cvičení 6 54

55 Příklad 3 - Převody mezi cykly II Zjistěte, zda libovolný argument programu obsahuje písmeno h. Do proměnné i uložte pozici argumentu obsahující písmeno h Do proměnné j uložte pozici písmene v daném argumentu IZP cvičení 6 55

56 Příklad 3 - Převody mezi cykly II Zjistěte, zda libovolný argument programu obsahuje písmeno h. Do proměnné i uložte pozici argumentu obsahující písmeno h Do proměnné j uložte pozici písmene v daném argumentu./prog hello world argv[1] = hello argv[2] = world Index argumentu i argv[i][0] argv[i][1] argv[i][2] argv[i][3] argv[i][4] IZP cvičení 6 56

57 Příklad 3 - Převody mezi cykly II Zjistěte, zda libovolný argument programu obsahuje písmeno h. Do proměnné i uložte pozici argumentu obsahující písmeno h Do proměnné j uložte pozici písmene v daném argumentu./prog hello world argv[1] = hello argv[2] = world Index argumentu i argv[i][0] argv[i][1] argv[i][2] argv[i][3] argv[i][4] 1 h IZP cvičení 6 57

58 Příklad 3 - Převody mezi cykly II Zjistěte, zda libovolný argument programu obsahuje písmeno h. Do proměnné i uložte pozici argumentu obsahující písmeno h Do proměnné j uložte pozici písmene v daném argumentu./prog hello world argv[1] = hello argv[2] = world Index argumentu i argv[i][0] argv[i][1] argv[i][2] argv[i][3] argv[i][4] 1 h e IZP cvičení 6 58

59 Příklad 3 - Převody mezi cykly II Zjistěte, zda libovolný argument programu obsahuje písmeno h. Do proměnné i uložte pozici argumentu obsahující písmeno h Do proměnné j uložte pozici písmene v daném argumentu./prog hello world argv[1] = hello argv[2] = world Index argumentu i argv[i][0] argv[i][1] argv[i][2] argv[i][3] argv[i][4] 1 h e l IZP cvičení 6 59

60 Příklad 3 - Převody mezi cykly II Zjistěte, zda libovolný argument programu obsahuje písmeno h. Do proměnné i uložte pozici argumentu obsahující písmeno h Do proměnné j uložte pozici písmene v daném argumentu./prog hello world argv[1] = hello argv[2] = world Index argumentu i argv[i][0] argv[i][1] argv[i][2] argv[i][3] argv[i][4] 1 h e l l IZP cvičení 6 60

61 Příklad 3 - Převody mezi cykly II Zjistěte, zda libovolný argument programu obsahuje písmeno h. Do proměnné i uložte pozici argumentu obsahující písmeno h Do proměnné j uložte pozici písmene v daném argumentu./prog hello world argv[1] = hello argv[2] = world Index argumentu i argv[i][0] argv[i][1] argv[i][2] argv[i][3] argv[i][4] 1 h e l l o IZP cvičení 6 61

62 Příklad 3 - Převody mezi cykly II Zjistěte, zda libovolný argument programu obsahuje písmeno h. Do proměnné i uložte pozici argumentu obsahující písmeno h Do proměnné j uložte pozici písmene v daném argumentu./prog hello world argv[1] = hello argv[2] = world Index argumentu i argv[i][0] argv[i][1] argv[i][2] argv[i][3] argv[i][4] 1 h e l l o 2 w IZP cvičení 6 62

63 Příklad 3 - Převody mezi cykly II Zjistěte, zda libovolný argument programu obsahuje písmeno h. Do proměnné i uložte pozici argumentu obsahující písmeno h Do proměnné j uložte pozici písmene v daném argumentu./prog hello world argv[1] = hello argv[2] = world Index argumentu i argv[i][0] argv[i][1] argv[i][2] argv[i][3] argv[i][4] 1 h e l l o 2 w o IZP cvičení 6 63

64 Příklad 3 - Převody mezi cykly II Zjistěte, zda libovolný argument programu obsahuje písmeno h. Do proměnné i uložte pozici argumentu obsahující písmeno h Do proměnné j uložte pozici písmene v daném argumentu./prog hello world argv[1] = hello argv[2] = world Index argumentu i argv[i][0] argv[i][1] argv[i][2] argv[i][3] argv[i][4] 1 h e l l o 2 w o r IZP cvičení 6 64

65 Příklad 3 - Převody mezi cykly II Zjistěte, zda libovolný argument programu obsahuje písmeno h. Do proměnné i uložte pozici argumentu obsahující písmeno h Do proměnné j uložte pozici písmene v daném argumentu./prog hello world argv[1] = hello argv[2] = world Index argumentu i argv[i][0] argv[i][1] argv[i][2] argv[i][3] argv[i][4] 1 h e l l o 2 w o r l IZP cvičení 6 65

66 Příklad 3 - Převody mezi cykly II Zjistěte, zda libovolný argument programu obsahuje písmeno h. Do proměnné i uložte pozici argumentu obsahující písmeno h Do proměnné j uložte pozici písmene v daném argumentu./prog hello world argv[1] = hello argv[2] = world Index argumentu i argv[i][0] argv[i][1] argv[i][2] argv[i][3] argv[i][4] 1 h e l l o 2 w o r l d IZP cvičení 6 66

67 UKAZATELE IZP cvičení 6 67

68 Ukazatel, reference, dereference Proměnná pojmenované místo v paměti, ve kterém uchováváme data IZP cvičení 6 68

69 Ukazatel, reference, dereference Proměnná pojmenované místo v paměti, ve kterém uchováváme data Ukazatel (pointer) proměnná, která uchovává adresu nějakého místa v paměti Říkáme, že ukazatel ukazuje na místo, které je určeno touto adresou IZP cvičení 6 69

70 Ukazatel, reference, dereference Proměnná pojmenované místo v paměti, ve kterém uchováváme data Ukazatel (pointer) proměnná, která uchovává adresu nějakého místa v paměti Říkáme, že ukazatel ukazuje na místo, které je určeno touto adresou Velikost ukazatele závisí na tom, kolikabitový máme procesor/překladač (16, 32, 64 bitů) IZP cvičení 6 70

71 Ukazatel, reference, dereference Proměnná pojmenované místo v paměti, ve kterém uchováváme data Ukazatel (pointer) proměnná, která uchovává adresu nějakého místa v paměti Říkáme, že ukazatel ukazuje na místo, které je určeno touto adresou Velikost ukazatele závisí na tom, kolikabitový máme procesor/překladač (16, 32, 64 bitů) Adresa proměnné referenční operátor & IZP cvičení 6 71

72 Ukazatel, reference, dereference Proměnná pojmenované místo v paměti, ve kterém uchováváme data Ukazatel (pointer) proměnná, která uchovává adresu nějakého místa v paměti Říkáme, že ukazatel ukazuje na místo, které je určeno touto adresou Velikost ukazatele závisí na tom, kolikabitový máme procesor/překladač (16, 32, 64 bitů) Adresa proměnné referenční operátor & Hodnota z adresy dereferenční operátor * IZP cvičení 6 72

73 Ukazatel, reference, dereference Proměnná pojmenované místo v paměti, ve kterém uchováváme data Ukazatel (pointer) proměnná, která uchovává adresu nějakého místa v paměti Říkáme, že ukazatel ukazuje na místo, které je určeno touto adresou Velikost ukazatele závisí na tom, kolikabitový máme procesor/překladač (16, 32, 64 bitů) Adresa proměnné referenční operátor & Hodnota z adresy dereferenční operátor * NULL používá se pro inicializaci ukazatelů říká, že ukazatel nikam neukazuje IZP cvičení 6 73

74 Ukazatel, reference, dereference IZP cvičení 6 74

75 Ukazatel, reference, dereference int i = 10; int *p; //? p = &i; //? *p = 20; //? printf("hodnota promenne i: %d\n", i); //? IZP cvičení 6 75

76 Ukazatel, reference, dereference int i = 10; int *p; // ukazatel p není inicializován! p = &i; *p = 20; printf("hodnota promenne i: %d\n", i); IZP cvičení 6 76

77 Ukazatel, reference, dereference int i = 10; int *p; // ukazatel p není inicializován! p = &i; // ukazatel p ukazuje na i *p = 20; printf("hodnota promenne i: %d\n", i); IZP cvičení 6 77

78 Ukazatel, reference, dereference int i = 10; int *p; // ukazatel p není inicializován! p = &i; // ukazatel p ukazuje na i *p = 20; // pomocí p jsme změnili hodnotu i printf("hodnota promenne i: %d\n", i); IZP cvičení 6 78

79 Předání parametrů funkcím Parametry můžeme funkcím předávat Hodnotou (vytvoříme lokální kopii proměnné) Lokální proměnná se vytvoří na zásobníku Odkazem (do funkce předáváme pouze adresu proměnné v paměti) Předání hodnotou by mělo být bez problémů Jak funguje předání odkazem? Následuje příklad IZP cvičení 6 79

80 Předání parametrů funkcím předávání odkazem Abychom si ukázali, jak funguje předávání odkazem, definujme následující funkci void inc(int* n) { } *n = *n + 1; Vidíme, že funkce nic nevrací. Hodnotu ale můžeme z funkce získat přes ukazatel Jak ji tedy zavoláme a použijeme v programu? IZP cvičení 6 80

81 Předání parametrů funkcím předávání odkazem // deklarace: void inc(int* n); int main() { int a = 5; inc(&a); printf("hodnota a: %d", a); //?? } IZP cvičení 6 81

82 Funkce swap Napište funkci, která prohodí hodnoty dvou proměnných typu int Proměnné do funkce předejte odkazem Poznámka: v předmětu IOS uvidíte, jak se funkce swap používá prakticky IZP cvičení 6 82

83 Záměna dvou prvků v poli Napište funkci, která zamění (prohodí) dva prvky v poli typu int Použijte funkci swap IZP cvičení 6 83

84 STRUKTURY, VLASTNÍ DATOVÉ TYPY IZP cvičení 6 84

85 Pole x Struktura Pole Homogenní Musí obsahovat položky stejného datového typu Struktura Heterogenní Může obsahovat položky různého datového typu IZP cvičení 6 85

86 Struktury Klíčové slovo struct struct person { }; char* name; // jmeno char* surname; // prijmeni int pay; int main() { struct person test; test.pay = 1000; // plat test.name = "Pepa"; //podobne surname printf("pay: %d\n", test.pay); printf("name: %s\n", test.name); } IZP cvičení 6 86

87 Struktury vlastní datový typ Nový datový typ klíčové slovo typedef typedef struct person { char* name; // jmeno char* surname; // prijmeni int pay; }TPerson; int main() { Tperson test; test.pay = 1000; // plat test.name = "Pepa"; //podobne surname printf("pay: %d\n", test.pay); printf("name: %s\n", test.name); } IZP cvičení 6 87

88 Struktury demo: jak to vypadá v paměti Velikosti datových typů závisí na architektuře IZP cvičení 6 88

89 Struktury demo: alokace paměti typedef struct person { char* name; // jmeno char* surname; // prijmeni int pay; // plat }TPerson; int main() { Tperson test; test.name = // jak alokujeme paměť? } IZP cvičení 6 89

90 Struktury demo: alokace paměti typedef struct person { char* name; // jmeno char* surname; // prijmeni int pay; }TPerson; int main() { } Tperson test; test.name = // plat malloc((strlen("pepa")+1)*sizeof(char); // jak ověříme, že je alokace OK? IZP cvičení 6 90

91 Struktury demo: alokace paměti typedef struct person { char* name; // jmeno char* surname; // prijmeni int pay; }TPerson; int main() { } Tperson test; test.name= // plat malloc((strlen("pepa")+1)*sizeof(char); if(test.name == NULL) { fprintf(stderr, "Chyba alokace! ); return -1; } IZP cvičení 6 91

92 Struktury přístup k prvkům Operátor. nebo -> -> (šipka) pokud předáváme strukturu (složený datový typ) jako ukazatel void setpay(tperson* p) { } //?. (tečka) jindy TPerson setpay(tperson p) { } //? IZP cvičení 6 92

93 Struktury přístup k prvkům Operátor. nebo -> -> (šipka) pokud předáváme strukturu (složený datový typ) jako ukazatel void setpay(tperson* p) { } p->pay = 1000;. (tečka) jindy TPerson setpay(tperson p) { } p.pay = 10; return p; IZP cvičení 6 93

94 Příklad Vytvořte datový typ pro záznam informací o pacientech O každém pacientovi se bude uchovávat Jméno datum narození Výška Váha Pohlaví Vyzkoušejte si pole alokovat (třeba pro 5 pacientů) a vypište datum narození 3. pacienta IZP cvičení 6 94

95 Wiki: ordinační hodiny Prostudujte si příklad, který načítá ordinační hodiny lékaře Pokuste se doplnit kód na chybějící místa IZP cvičení 6 95

96 Wiki: alokace a dealokace řídkého pole Prostudujte si zdrojový kód k alokaci/dealokaci řídkého pole. Jak budou data vypadat v paměti? IZP cvičení 6 96

97 Děkuji Vám za pozornost! IZP cvičení 6 97

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Deváté 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 27.11.2017,

Více

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Jedenácté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Gabriela Nečasová, inecasova@fit.vutbr.cz

Více

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Páté 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 5. týden

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

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Druhé 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 Verze

Více

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Osmé 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 20.11.2017,

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 2016/2017

Více

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Třetí 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 Verze

Více

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové

Více

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Deváté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Gabriela Nečasová, inecasova@fit.vutbr.cz

Více

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Sedmé 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 2018/2019,

Více

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Deváté 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 2016/2017

Více

Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný

Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný typem proměnné - ukazatel je tedy adresa společně s

Více

IUJCE 07/08 Přednáška č. 4. v paměti neexistuje. v paměti existuje

IUJCE 07/08 Přednáška č. 4. v paměti neexistuje. v paměti existuje Konstanty I možnosti: přednostně v paměti neexistuje žádný ; o preprocesor (deklarace) #define KONSTANTA 10 o konstantní proměnná (definice) const int KONSTANTA = 10; příklad #include v paměti

Více

ZPRO v "C" Ing. Vít Hanousek. verze 0.3

ZPRO v C Ing. Vít Hanousek. verze 0.3 verze 0.3 Hello World Nejjednoduší program ukazující vypsání textu. #include using namespace std; int main(void) { cout

Více

PROGRAMOVÁNÍ V C++ CVIČENÍ

PROGRAMOVÁNÍ V C++ CVIČENÍ PROGRAMOVÁNÍ V C++ CVIČENÍ INFORMACE Michal Brabec http://www.ksi.mff.cuni.cz/ http://www.ksi.mff.cuni.cz/~brabec/ brabec@ksi.mff.cuni.cz gmichal.brabec@gmail.com PODMÍNKY ZÁPOČTU Základní podmínky společné

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

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

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

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje f1(&pole[4]); funkci f1 předáváme hodnotu 4. prvku adresu 4. prvku adresu 5. prvku hodnotu 5. prvku symbolická konstanta pro konec souboru je eof EOF FEOF feof Správné vytvoření a otevření textového souboru

Více

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií 1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední

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

Ú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

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

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

2 Datové typy v jazyce C

2 Datové typy v jazyce C 1 Procedurální programování a strukturované programování Charakteristické pro procedurální programování je organizace programu, který řeší daný problém, do bloků (procedur, funkcí, subrutin). Původně jednolitý,

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

Zápis programu v jazyce C#

Zápis programu v jazyce C# Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač

Více

Algoritmizace a programování

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

Úvod do programovacích jazyků (Java)

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

Struktura programu v době běhu

Struktura programu v době běhu Struktura programu v době běhu Miroslav Beneš Dušan Kolář Struktura programu v době běhu Vztah mezi zdrojovým programem a činností přeloženého programu reprezentace dat správa paměti aktivace podprogramů

Více

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Druhé 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 2016/2017

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

Programovací jazyk C++ Hodina 1

Programovací jazyk C++ Hodina 1 Programovací jazyk C++ Hodina 1 Používané překladače Bloodshed Dev C++ http://www.bloodshed.net/devcpp.html CodeBlocks http://www.codeblocks.org pokud nemáte již nainstalovaný překladač, stáhněte si instalátor

Více

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

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016 ZPRO cvičení 2 Martin Flusser Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague October 17, 2016 Outline I 1 Outline 2 Proměnné 3 Proměnné - cvičení 4 Funkce 5 Funkce

Více

Koncepce (větších) programů. Základy programování 2 Tomáš Kühr

Koncepce (větších) programů. Základy programování 2 Tomáš Kühr Koncepce (větších) programů Základy programování 2 Tomáš Kühr Parametry a návratová hodnota main Již víme, že main je funkce A také tušíme, že je trochu jiná než ostatní funkce v programu Funkce main je

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

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1 24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE

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

Aplikace Embedded systémů v Mechatronice. Michal Bastl A2/713a

Aplikace Embedded systémů v Mechatronice. Michal Bastl A2/713a Aplikace Embedded systémů v Mechatronice Michal Bastl A2/713a Aplikace Embedded systémů v Mechatronice Obsah přednášky: Opakování Pointery v C pole a řetězce předání funkci referencí Vlastní datové typy

Více

int ii char [16] double dd název adresa / proměnná N = nevyužito xxx xxx xxx N xxx xxx N xxx N

int ii char [16] double dd název adresa / proměnná N = nevyužito xxx xxx xxx N xxx xxx N xxx N Struktura (union) - struktura a union jsou složené typy, které "v sobě" mohou obsahovat více proměnných - struktura obsahuje v každém okamžiku všechny své proměnné, union obsahuje (=je "aktivní") pouze

Více

Pointery II. Jan Hnilica Počítačové modelování 17

Pointery II. Jan Hnilica Počítačové modelování 17 Pointery II 1 Pointery a pole Dosavadní způsob práce s poli zahrnoval: definici pole jakožto kolekce proměnných (prvků) jednoho typu, umístěných v paměti za sebou int pole[10]; práci s jednotlivými prvky

Více

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

Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++ Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++ Třídy v C++ Třídy jsou uživatelsky definované typy podobné strukturám v C, kromě datových položek (proměnných) však mohou obsahovat i funkce

Více

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) 28. prosince Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) 28. prosince Fakulta elektrotechniky a informatiky Katedra softwarových technologií 9 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 28. prosince 2009 Struktury Struktury heterogenní struktura položky mohou být různých datových typů vystupuje jako jediný objekt

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

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký 1 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íce

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Druhé laboratorní cvičení Vysoké učení technické v Brně, Fakulta informačních technologií v Brně Božetěchova 2, 612 66 Brno Cvičící: Petr Veigend (iveigend@fit.vutbr.cz) Důležité

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

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

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

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

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Strukturované proměnné Struktura, union Jazyk C České vysoké učení technické Fakulta elektrotechnická A8B14ADP Jazyk C - Strukturované proměnné Ver.1.10 J. Zděnek 20151 Struktura

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 Operátory a příkazy BI-JSC Evropský sociální fond

Více

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13 Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13 KAPITOLA 1 Na úvod o Javě 15 Počítačový program 15 Vysokoúrovňový programovací

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

C++ 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. 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íce

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

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Příkaz switch Příkaz switch provede příslušnou skupinu příkazů na základě hodnoty proměnné (celočíselné

Více

6 Příkazy řízení toku

6 Příkazy řízení toku 6 Příkazy řízení toku 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 příkazům pro řízení toku programu. Pro všechny tyto základní

Více

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo

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

Více o konstruktorech a destruktorech

Více o konstruktorech a destruktorech Více o konstruktorech a destruktorech Více o konstruktorech a o přiřazení... inicializovat objekt lze i pomocí jiného objektu lze provést přiřazení mezi objekty v původním C nebylo možné provést přiřazení

Více

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

Strukturu lze funkci předat: (pole[i])+j. switch(výraz) velikost ukazatele Strukturu lze funkci předat: hodnotou i pomocí ukazatele pouze pomocí ukazatele (reference na strukturu) pouze hodnotou (kopie struktury) (pole[i])+j adresa prvku na souřadnicích i, j adresa i-tého řádku

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

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

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19 Algoritmy I Cvičení č. 2, 3 1 ALG I, informace Cvičící RNDr. Eliška Ochodková, Ph.D., kancelář EA439 eliska.ochodkova@vsb.cz www.cs.vsb.cz/ochodkova Přednášející doc. Mgr. Jiří Dvorský, Ph.D., kancelář

Více

Programování v jazyce C a C++

Programování v jazyce C a C++ Programování v jazyce C a C++ Příklad na tvorbu třídy Richter 1 4. prosince 2017 1 Ing. Richter Miloslav, Ph.D., UAMT FEKT VUT Brno Dvourozměrné pole pomocí tříd Zadání Navrhněte a napište třídu pro realizace

Více

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

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace Programování v jazyce C a C# část I. Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace Předmět: Algoritmizace a programování Téma: Programování Vyučující: Ing. Milan Káža

Více

Výrazy, operace, příkazy

Výrazy, operace, příkazy Výrazy, operace, příkazy Karel Richta a kol. katedra počítačů FEL ČVUT v Praze Přednášky byly připraveny s pomocí materiálů, které vyrobili Ladislav Vágner, Pavel Strnad Karel Richta, Martin Hořeňovský,

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

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

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký 1 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íce

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Procesor Procesorem je objekt, který vykonává algoritmem popisovanou

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Strukturované proměnné Pole (array), ukazatele (pointer) Jazyk C České vysoké učení technické Fakulta elektrotechnická Ver.1.10 J. Zděnek 2015 Pole (array) (1) Pole je množina

Více

C++ přetěžování funkcí a operátorů. Jan Hnilica Počítačové modelování 19

C++ přetěžování funkcí a operátorů. Jan Hnilica Počítačové modelování 19 C++ přetěžování funkcí a operátorů 1 Přetěžování funkcí jazyk C++ umožňuje napsat více funkcí se stejným názvem, těmto funkcím říkáme přetížené přetížené funkce se musí odlišovat typem nebo počtem parametrů,

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

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

Bitové operátory a bitová pole. Úvod do programování 2 Tomáš Kühr

Bitové operátory a bitová pole. Úvod do programování 2 Tomáš Kühr Bitové operátory a bitová pole Úvod do programování 2 Tomáš Kühr Bitové operátory Provádějí danou operaci s jednotlivými bity svých operandů Operandy bitových operátorů mohou být pouze celočíselné Vyhodnocení

Více

PŘETĚŽOVÁNÍ OPERÁTORŮ

PŘETĚŽOVÁNÍ OPERÁTORŮ PŘETĚŽOVÁNÍ OPERÁTORŮ Jazyk C# podobně jako jazyk C++ umožňuje přetěžovat operátory, tj. rozšířit definice některých standardních operátorů na uživatelem definované typy (třídy a struktury). Stejně jako

Více

Inovace 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

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

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

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

Programovací jazyk Pascal

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

Strukturované typy a ukazatele. Úvod do programování 1 Tomáš Kühr

Strukturované typy a ukazatele. Úvod do programování 1 Tomáš Kühr Strukturované typy a ukazatele Úvod do programování 1 Tomáš Kühr Motivace Se základními datovými typy si sice vystačíme Někdy to ale může být nepříjemně nepřehledné Příklady: long double soucet(const long

Více

Funkční objekty v C++.

Funkční objekty v C++. Funkční objekty v C++. Funkční objekt je instance třídy, která má jako svou veřejnou metodu operátor (), tedy operátor pro volání funkce. V dnešním článku si ukážeme jak zobecnit funkci, jak používat funkční

Více

Mělká a hluboká kopie

Mělká a hluboká kopie Karel Müller, Josef Vogel (ČVUT FIT) Mělká a hluboká kopie BI-PA2, 2011, Přednáška 5 1/28 Mělká a hluboká kopie Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra teoretické informatiky, Fakulta

Více

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

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu: Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury

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

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

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

Funkce pokročilé možnosti. Úvod do programování 2 Tomáš Kühr Funkce pokročilé možnosti Úvod do programování 2 Tomáš Kühr Funkce co už víme u Nebo alespoň máme vědět... J u Co je to funkce? u Co jsou to parametry funkce? u Co je to deklarace a definice funkce? K

Více

Jazyk C# a platforma.net

Jazyk C# a platforma.net Jazyk C# a platforma.net Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Syntaxe jazyka C# - 1. část BI-DNP Evropský sociální fond

Více

Pokročilé programování v jazyce C pro chemiky (C3220) Vstup a výstup v C++

Pokročilé programování v jazyce C pro chemiky (C3220) Vstup a výstup v C++ Pokročilé programování v jazyce C pro chemiky (C3220) Vstup a výstup v C++ Proudy pro standardní vstup a výstup V jazyce C++ provádíme textový vstup a výstup prostřednictvím tzv. datových proudů Datové

Více

Profilová část maturitní zkoušky 2017/2018

Profilová část maturitní zkoušky 2017/2018 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2017/2018 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA

Více

Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody

Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody Dynamická alokace paměti Jazyky C a C++ poskytují programu možnost vyžádat si část volné operační paměti pro

Více

Př. další použití pointerů

Př. další použití pointerů Př. další použití pointerů char *p_ch; int *p_i; p_ch = (char *) p_i; // konverze int * na char * 8 int i = 5; int *p_i; p_i = &i; POZOR!!!! scanf("%d", p_i); printf("%d", *p_i); Obecný pointer na cokoliv:

Více

IB111 Programování a algoritmizace. Objektově orientované programování (OOP)

IB111 Programování a algoritmizace. Objektově orientované programování (OOP) IB111 Programování a algoritmizace Objektově orientované programování (OOP) OP a OOP Objekt Kombinuje data a funkce a poskytuje určité rozhraní. OP = objektové programování Vše musí být objekty Např. Smalltalk,

Více

- dělají se také pomocí #define - podobné (použitím) funkcím - předpřipravená jsou např. v ctype.h. - jak na vlastní makro:

- dělají se také pomocí #define - podobné (použitím) funkcím - předpřipravená jsou např. v ctype.h. - jak na vlastní makro: 21.4.2009 Makra - dělají se také pomocí #define - podobné (použitím) funkcím - předpřipravená jsou např. v ctype.h - jak na vlastní makro: #define je_velke(c) ((c) >= 'A' && (c)

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

Programovací jazyk C(++) C++ area->vm_mm->locked_vm -= len >> PAGE_SHIFT;

Programovací jazyk C(++) C++ area->vm_mm->locked_vm -= len >> PAGE_SHIFT; Programovací jazyk C(++) static struct vm_area_struct * unmap_fixup(struct mm_struct *mm, struct vm_area_struct *area, unsigned long addr, size_t len, struct vm_area_struct 1. *extra) Základy { struct

Více

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

for (int i = 0; i < sizeof(hodnoty) / sizeof(int); i++) { cout<<hodonoty[i]<< endl; } cin.get(); return 0; } Pole Kdybychom v jazyce C++chtěli načíst větší počet čísel nebo znaků a všechny bylo by nutné všechny tyto hodnoty nadále uchovávat v paměti počítače, tak by bylo potřeba v paměti počítače alokovat stejný

Více

Prezentace a vysvětlení programového prostředí NXC

Prezentace a vysvětlení programového prostředí NXC Úvod Další jazyk, který je možno použít pro programování NXT kostky je NXC Not exatly C Na rozdíl od jazyku NXT-G, kde jsme vytvářeli program pomocí grafických prvků přesněji řečeno pomocí programovacích

Více

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. December 7, 2016 ZPRO cvičení 8 Martin Flusser Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague December 7, 2016 Outline I 1 Outline 2 Dynamické alokování paměti 3 Dynamická alokace

Více

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

Programování v C++ 3, 3. cvičení Programování v C++ 3, 3. cvičení úvod do objektově orientovaného 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 Dokončení spojového

Více

Programování v jazyce C pro chemiky (C2160) 6. Funkce, struktury

Programování v jazyce C pro chemiky (C2160) 6. Funkce, struktury Programování v jazyce C pro chemiky (C2160) 6. Funkce, struktury Funkce Program v jazyce C je strukturován do funkcí Příkazy jazyka C nelze nikdy uvádět mimo funkce Program začíná funkcí main(), z ní lze

Více

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

Programování v C++ 2, 4. cvičení Programování v C++ 2, 4. cvičení statické atributy a metody, konstruktory 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Přístupová práva

Více