BI-PA1 Programování a Algoritmizace 1. Miroslav Baĺık, Ladislav Vagner a Josef Vogel. 10., 12. a 13. října 2017

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

Download "BI-PA1 Programování a Algoritmizace 1. Miroslav Baĺık, Ladislav Vagner a Josef Vogel. 10., 12. a 13. října 2017"

Transkript

1 Proměnné, základní vstup a výstup BI-PA1 Programování a Algoritmizace 1 Miroslav Baĺık, Ladislav Vagner a Josef Vogel Katedra teoretické informatiky a Katedra softwarového inženýrství Fakulta informačních technologíı České vysoké učení technické v Praze xvagner@fit.cvut.cz, vogeljos@fit.cvut.cz 10., 12. a 13. října 2017

2 Přehled Bity (bits), bajty (bytes), pamět počítače. Od bajtů k informacím. Datový typ int. Kódování celých čísel, dvojkový doplněk. Datový typ char. M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 2/46

3 Bity, bajty, pamět Bit nejmenší jednotka informace: hodnota 0 nebo 1, jednoduše implementovatelný v reálném světě (vyšší nebo nižší napětí, bistabilní klopný obvod, nabitý nebo nenabitý kondenzátor,... ). Bajt (byte) typicky 8 bitů: 2 8 = 256 různých hodnot, procesor má typicky přístup k bajtům, nikoli k jednotlivým bitům. Adresa jednoznačná identifikace bajtu v paměti: pořadové číslo bajtu (pozice bajtu), počítaná od počátku pamět ového prostoru, pamět ového čipu,.... Kapacita paměti celkový počet bajtů: Metrika: 1 KB = 1000 B, 1 MB = 1000 KB = B, 1 GB = 1000 MB = KB = B,..., Binárně - základem 2 10 = 1024 (IEC ): 1 KiB = 1024 B, 1 MiB = 1024 KiB = B, 1 GiB = 1024 MiB = KiB = B,.... M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 3/46

4 Pamět Operační pamět uchovává program a data v době běhu programu: velmi rychlá, obsah paměti je ztracen při výpadku napájení (volatile), drahá (cena za bajt). Externí pamět disk, CD/DVD, páska,... : o několik řádů pomalejší, obsah paměti zůstává zachován při vypnutí napájení (non-volatile), komplikovanější přístup k datům, levnější (cena za bajt). M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 4/46

5 Od bajtů k informacím Počítač (strojový kód) pracuje s bajty: nestará se o význam hodnot, nesnaží se jim porozumět, má přesná pravidla, jak bajty zpracovat (např. jak je sečíst). Uživatelé (lidé) potřebují ukládat informace (celá čísla, dekadická čísla, znaky, znakové řetězce,... ): aby mohla být informace uložena do paměti, musí být zakódována do jednoho či více bajtů, zakódovaná informace může umožňovat jen některé operace (např. znakové řetězce nelze odmocňovat). Vyšší programovací jazyky obvykle poskytují systém typů. Typ: reprezentuje nějaký druh informací (číslo, řetězec,... ), definuje množinu možných hodnot, definuje množinu dovolených operací, definuje kódování (jak je informace uložena v bajtech, kolik bajtů je třeba pro uložení informace). M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 5/46

6 Datové typy Programátor se ve vyšších programovacích jazycích nemusí starat o vnitřní reprezentaci informací: informace jsou uloženy v proměnných, proměnné mohou obsahovat určité typy hodnot, typicky proměnné mají určitý datový typ, který se v průběhu existence proměnné nemůže měnit. Příklad datový typ int v jazyku C: množinou hodnot je interval celých čísel od do (proč?), povolené operace jsou: aritmetické operace (+,,, /,... ), relační operace (<, <=, ==,... ), přiřazení hodnoty (=, + =,... ), další operace. Programovací jazyky mají obvykle několik primitivních datových typů (např. int). Další datové typy mohou být definovány programátorem (strukturované datové typy, pole,... ). M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 6/46

7 Proměnné Proměnná je pojmenovaný datový objekt obsahující nějakou hodnotu. Hodnota uložená v proměnné se v průběhu života proměnné může měnit. Proměnné jsou identifikovány svými jmény jednoznačnými identifikátory. Deklarace proměnné (jazyk C): int alpha; /* alpha je jméno proměnné */ Následující příkaz vypíše hodnotu proměnné typu int: printf ( "%d\n", alpha ); /* \n přidá nový řádek */ M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 7/46

8 Proměnné (pokračování) Přiřazení se použije pro změnu hodnoty uložené v proměnné: /* alpha má nějakou hodnotu */ alpha = 20; /* hodnota proměnné alpha je nyní 20, původní hodnota je zapomenuta */ Operátor přiřazení není rovnost: /* alpha má nějakou hodnotu */ alpha = 20; /* hodnota alpha je nyní 20 */ alpha = alpha + 1; /* ok, hodnota alpha je nyní 21 */ M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 8/46

9 Proměnné (pokračování) #include <stdio.h> int main ( void ) { int alpha = 0; } printf("%d\n", alpha); alpha = 37; printf("%d\n", alpha); return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 9/46

10 Proměnné inicializace #include <stdio.h> int main ( void ) { int alpha; /* proměnná alpha není inicializovaná! */ printf("%d\n", alpha); /* co je výstupem? */ alpha = 37; printf("%d\n", alpha); /* výstup je nyní 37 */ return 0; } M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 10/46

11 Globální proměnné #include <stdio.h> int alpha; /* globální proměnné jsou vždy inicializovány nulovými bajty */ int main ( void ) { printf("%d\n", alpha); /* výstup iniciální hodnoty globální proměnné je 0 */ alpha = 37; printf("%d\n", alpha); /* výstup je nyní 37 */ return 0; } M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 11/46

12 Funkce printf Knihovní funkce printf se používá pro: výpis fixního řetězce znaků, výpis hodnoty proměnné (hodnot proměnných), výpis hodnoty proměnné (hodnot proměnných) ve formátu definovaném uživatelem, výpis hodnoty výrazu (nikoli pouze hodnoty uložené v proměnné). Funkce printf konvertuje binární hodnotu(y) proměnné(ých) či výrazu(ů) do znakové podoby. M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 12/46

13 Funkce printf, typ int #include <stdio.h> int main ( void ) { int a, b; } a = 10; b = 20; printf("a = %d\n", a); /* a = 10 */ printf("%d + %d = %d\n", a, b, a + b); /* = 30 */ printf("%3d + %3d = %05d\n", a, b, a + b); /* = */ return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 13/46

14 Funkce scanf Standardní funkce scanf: čte znaky (např. stisky kláves klávesnice), konvertuje je, ukládá binární hodnotu(y) do proměnné(ých). M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 14/46

15 Funkce scanf, typ int #include <stdio.h> int main ( void ) { int x; } printf("napis cislo:\n"); scanf( "%d", &x ); /* povšimněme si & */ printf("cislo bylo %d\n", x ); return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 15/46

16 Funkce scanf Jak pracuje funkce scanf (datový typ int): přeskočí (ignoruje) všechny bílé znaky ze vstupu (mezery, nové řádky, tabelátory), pokusí se přečíst hodnotu (začne prvním znakem, jež není bílý; pro typ int musí být první znak bud dekadická číslice nebo znaménko + či, přečte všechny dekadické číslice, uloží binární reprezentaci čísla do uvedené proměnné, čtení končí na prvním znaku, který není dekadickou číslicí (pro typ int). To je např. mezera, odřádkování, písmeno,... M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 16/46

17 Funkce scanf #include <stdio.h> int main ( void ) { int x, y; } printf("vstup souradnic:\n"); scanf( "%d %d", &x, &y ); /* všimněme si, že jsou čteny hodnoty dvou proměnných */ printf("souradnice jsou (%d,%d)\n", x, y ); return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 17/46

18 Funkce scanf časté otázky Jak funkce scanf pracuje za specifických podmínek: Co se stane, když na vstupu nejsou žádné znaky? Funkce prostě čeká na vstup znaků. Kdy je vstup vlastně čten? Vypadá to, že nic není přečteno, dokud není stisknuta klávesa Enter. Skutečně, vstup je zpracován funkcí scanf teprve po stisknutí klávesy Enter. Důvodem je operační systém (OS). Znaky jsou OS ukládány do vyrovnávací paměti (bufferu) řádku a celý řádek je předán ke zpracování až po stisknutí klávesy Enter. Toto chování OS může být změněno zákazem bufferování. Mohu zjistit, že vstup je špatně (např. na vstupu je nějaký text místo čísla)? Ano, funkce scanf vrací počet úspěšných konverzí jako svou funkční (návratovou) hodnotu. M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 18/46

19 Funkce scanf časté otázky Jak funkce scanf pracuje za specifických podmínek: Co se stane, když zavolám funkci scanf na konci souboru (tzn. není už co číst - end-of-file)?. Funkce jednoduše skončí se čtením proměnných a vrátí počet úspěšných konverzí. Ten je ovšem menší, než bylo požadováno. Konec vstupu je signalizován nejen pro diskové soubory (přečtením posledního znaku), ale i při vstupu z klávesnice, a to stiskem Ctrl-D (UNIX) / Ctrl-Z (Win). Přeskočí funkce scanf chybné znaky (např. text, když se očekává číslo) ze vstupu? Když funkce scanf nemůže zkonvertovat vstupní znaky do předepsaného datového typu, nepřeskočí tyto znaky na vstupu. Čtení skončí na prvním znaku, který do znakové podoby dané konverzí nepatří. Toto chování může vést k nekonečnému cyklu (zacyklení), pokud funkce scanf není použita korektně. M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 19/46

20 Funkce scanf ošetření chyb... /* obsluha bankomatu */ int balance, x;... balance =...;... /* balance obsahuje zůstatek na účtu */ printf ( "Zadejte castku pro vyber:\n"); scanf ( "%d", &x );... /* vydat peníze - celkem x */ balance -= x; printf ( "Novy zustatek: %d\n", balance ); M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 20/46

21 Funkce scanf ošetření chyb... /* obsluha bankomatu */ int balance, x;... balance =...;... /* balance obsahuje zůstatek na účtu */ printf ( "Zadejte castku pro vyber:\n"); scanf ( "%d", &x );... /* vydat peníze - celkem x */ balance -= x; printf ( "Novy zustatek: %d\n", balance ); Co když bude výběr větší než zůstatek? M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 20/46

22 Funkce scanf ošetření chyb... /* obsluha bankomatu */ int balance, x;... balance =...;... /* balance obsahuje zůstatek na účtu */ printf ( "Zadejte castku pro vyber:\n"); scanf ( "%d", &x );... /* vydat peníze - celkem x */ balance -= x; printf ( "Novy zustatek: %d\n", balance ); Co když bude výběr větší než zůstatek? Co když budeme vybírat zápornou částku? M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 20/46

23 Funkce scanf ošetření chyb... /* obsluha bankomatu */ int balance, x;... balance =...;... /* balance obsahuje zůstatek na účtu */ printf ( "Zadejte castku pro vyber:\n"); scanf ( "%d", &x );... /* vydat peníze - celkem x */ balance -= x; printf ( "Novy zustatek: %d\n", balance ); Co když bude výběr větší než zůstatek? Co když budeme vybírat zápornou částku? Co když se uživatel při zadávání splete (nečíselný vstup)? M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 20/46

24 Funkce scanf ošetření chyb... /* obsluha bankomatu */ int balance, x;... /* balance obsahuje zůstatek na účtu */ printf ( "Zadejte castku pro vyber:\n"); if ( scanf ( "%d", &x )!= 1 x <= 0 x > balance ) {... /* upozornění na chybu, oprava zadaní */ } else {... /* vydat peníze - celkem x */ balance -= x; printf ( "Novy zustatek: %d\n", balance ); } M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 21/46

25 Funkce scanf #include <stdio.h> int main ( void ) { int x, y; printf("vstup souradnic:\n"); while ( scanf( "%d %d", &x, &y )!= 2 ) { /* Konverze se nezdařila */ printf ( "Spatny vstup. Prosim zopakovat.\n" ); } /* oops - nekonečný cyklus při špatném vstupu */ printf("souradnice jsou (%d,%d)\n", x, y ); return 0; } M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 22/46

26 Funkce scanf oprava #include <stdio.h> int main ( void ) { int x, y; printf("vstup souradnic:\n"); while ( scanf( "%d %d", &x, &y )!= 2 ) { /* Konverze se nezdařila */ printf ( "Spatny vstup. Prosim zopakovat.\n" ); /* Odstranit ze vstupu chybně zadané znaky */ /* (cyklus a funkce fgetc) */ } /* ok, data načtena správně */ printf("souradnice jsou (%d,%d)\n", x, y ); return 0; } M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 23/46

27 Kontrola vstupů Programy potřebují mít jistotu, že pracují s platnými daty. Dnes běžné zranitelnosti (buffer overflow, code injection, XSS,... ) jsou speciální případy neošetřených vstupů. Neošetřené vstupy ročně stojí miliardy dolarů. Ošetřování vstupů je nudné a pracné. Přesto si zvykněte psát programy tak, aby vždy kontrolovaly správnost vstupu. M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 24/46

28 Kontrola vstupů Programy potřebují mít jistotu, že pracují s platnými daty. Dnes běžné zranitelnosti (buffer overflow, code injection, XSS,... ) jsou speciální případy neošetřených vstupů. Neošetřené vstupy ročně stojí miliardy dolarů. Ošetřování vstupů je nudné a pracné. Přesto si zvykněte psát programy tak, aby vždy kontrolovaly správnost vstupu. Na slidech budeme ošetření vstupů vynechávat. Důvodem je omezený prostor slide. Při ostatních příležitostech (programy na proseminářích, cvičeních,... ) ošetření vstupů nevynecháme. Vaše programy budeme kontrolovat, zda ošetřují nesprávné vstupy. M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 24/46

29 Kontrola vstupů (de)motivace Za obrázek děkujeme Randallu Munroe, XKCD comics #327 (xkcd.com). M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 25/46

30 Celočíselné datové typy v C Jméno alternativní jména B min max char signed char unsigned char short short int signed short signed short int unsigned short unsigned short int int signed signed int unsigned unsigned int long long int signed long signed long int unsigned long unsigned long int Poznámka: tabulka shrnuje celočíselné typy a jejich vlastnosti tak, jak jsou obvykle definovány v dvojkovém doplňku pro reprezentaci záporných čísel. M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 26/46

31 Celočíselné datové typy v C Pamět ová reprezentace a rozsahy standardních datových typů nejsou v normě jazyka C definovány. Místo definice v normě jsou reprezentace a rozsahy dány implementací. Proč? Rozsahy dat jsou přístupné programátorovi ve standardních hlavičkových souborech (limits.h, float.h) např. INT MAX, INT BITS,... Norma jazyka C zaručuje pouze: sizeof(short int) <= sizeof(int) <= sizeof(long int) Některé kompilátory zavádějí vlastní celočíselné datové typy: long long 64 bitové celé číslo, v gcc/g++, int8,..., int64 8/16/32/64 bitová celá čísla v MSVC. M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 27/46

32 Celočíselné datové typy v C Celočíselné literály: dekadický: 123, 45678, šestnáctkový: 0x123Ab, 0X569Fd (na začátku je 0x nebo 0X), osmičkový: 0123, 0765 (na začátku je 0), bez znaménka: 1234u, 5678U, long: l, unsigned long: lu, long long (gcc): LL, 0x12345LLu, int64 (MSVC): i64, 0x12345ui64, numerické literály jsou považovány za signed int, není-li použita přípona. M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 28/46

33 Celočíselné datové typy vnitřní reprezentace Hodnoty bez znaménka jsou uloženy v binárním kódu, datové typy delší než 8 bitů zaujímají několik bajtů za sebou, pořadí bajtů: little-endian (lohi, Intel), big-endian (hilo, Motorola). /* předpokládáme 32-bitová celá čísla */ unsigned int a = 1000; 1000 = 0x3e8 = (bin) počítač s little-endian: e počítač s big-endian: e8 M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 29/46

34 Celočíselné datové typy vnitřní reprezentace Hodnoty se znaménkem musí nějak znaménko obsahovat je třeba použít vhodný kód, Nejobvyklejší je dvojkový doplněk, jiné kódy: jednotkový doplněk, posunutá nula, znaménko a absolutní hodnota,... Jak dvojkový doplněk pracuje? Je-li je hodnota kladná nebo nulová: hodnota je v binárním kódu, binární kód je výsledek. Je-li hodnota záporná: vezme se binární kód absolutní hodnoty, znegují se všechny bity, k tomuto číslu se přičte 1. M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 30/46

35 Celočíselné datové typy vnitřní reprezentace /* předpokládáme 8-bitovou hodnotu */ signed char x = 53; 53 >= 0, 53 = 0x35 = (bin) dvojkový doplněk 53: (bin) signed char x = -45; -45 < 0, pro výpočet použijeme abs(-45): 45 = 0x2d = (bin) negace bitů: (bin) přičtení 1: +1 dvojkový doplněk -45: (bin) M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 31/46

36 Celočíselné datové typy vnitřní reprezentace Dvojkový doplněk x je: (bin). Jaká je hodnota x? Bit nejvíce vlevo (nejvýznamnější bit) je 0: x >= (bin) = 0x5b = 91 (dec). x = 91 Dvojkový doplněk x je: (bin). Jaká je hodnota x? Nejvýznamnější bit je 1: x < 0. negace bitů reprezentace: (bin) přičtení 1: +1 absolutní hodnota x: (bin) x = (bin) = - 0x24 = -36 (dec) M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 32/46

37 Celočíselné datové typy výstupní konverze #include <stdio.h> int main ( void ) { int x = -1; } printf ( "x = %d (signed,dec)\n", x ); printf ( "x = %i (signed,dec)\n", x ); printf ( "x = %u (unsigned,dec)\n", x ); printf ( "x = %x (unsigned,hex)\n", x ); printf ( "x = %X (unsigned,hex)\n", x ); printf ( "x = %o (unsigned,oct)\n", x ); return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 33/46

38 Celočíselné datové typy výstupní konverze Program zobrazí: %d M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 34/46

39 Celočíselné datové typy výstupní konverze Program zobrazí: %d x = -1 (signed,dec) %i M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 34/46

40 Celočíselné datové typy výstupní konverze Program zobrazí: %d x = -1 (signed,dec) %i x = -1 (signed,dec) %u M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 34/46

41 Celočíselné datové typy výstupní konverze Program zobrazí: %d x = -1 (signed,dec) %i x = -1 (signed,dec) %u x = (unsigned,dec) %x M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 34/46

42 Celočíselné datové typy výstupní konverze Program zobrazí: %d x = -1 (signed,dec) %i x = -1 (signed,dec) %u x = (unsigned,dec) %x x = ffffffff (unsigned,hex) %X M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 34/46

43 Celočíselné datové typy výstupní konverze Program zobrazí: %d x = -1 (signed,dec) %i x = -1 (signed,dec) %u x = (unsigned,dec) %x x = ffffffff (unsigned,hex) %X x = FFFFFFFF (unsigned,hex) %o M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 34/46

44 Celočíselné datové typy výstupní konverze Program zobrazí: %d x = -1 (signed,dec) %i x = -1 (signed,dec) %u x = (unsigned,dec) %x x = ffffffff (unsigned,hex) %X x = FFFFFFFF (unsigned,hex) %o x = (unsigned,oct) M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 34/46

45 Celočíselné datové typy více o přiřazení Na rozdíl od jazyka Ada lze do celočíselné proměnné přiřadit i hodnotu odlišného typu. Když je neceločíselná hodnota (např. hodnota v pohyblivé řádové čárce) přiřazena celočíselné proměnné, je hodnota před přiřazením zkonvertována na celé číslo (tzn. desetinná část je odseknuta). Mohou nastat tři různé případy přiřazení celočíselné hodnoty celočíselné proměnné: sizeof(var) = sizeof(value) binární reprezentace je jednoduše zkopírována, sizeof(var) < sizeof(value) vyšší bajty navíc jsou ztraceny, nižší zkopírovány, sizeof(var) > sizeof(value) hodnota je rozšířena o vyšší bajty tak, aby vyplnila celou proměnnou. Předchozí pravidla jsou rozumná, avšak výsledky mohou být překvapující. M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 35/46

46 Celočíselné datové typy více o přiřazení #include <stdio.h> int main ( void ) { int x, y; unsigned int ux = 1000, uy = 0xffffffff; /* stejný počet bajtů - int, unsigned int */ x = ux; printf ( "ux = %u, x = %d\n", ux, x ); y = uy; printf ( "uy = %u, y = %d\n", uy, y ); } ux = -100; printf ( "ux = %u\n", ux ); return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 36/46

47 Celočíselné datové typy více o přiřazení #include <stdio.h> int main ( void ) { int x, y; unsigned int ux = 1000, uy = 0xffffffff; /* stejný počet bajtů - int, unsigned int */ x = ux; printf ( "ux = %u, x = %d\n", ux, x ); /* ux = 1000, x = 1000 */ y = uy; printf ( "uy = %u, y = %d\n", uy, y ); } ux = -100; printf ( "ux = %u\n", ux ); return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 36/46

48 Celočíselné datové typy více o přiřazení #include <stdio.h> int main ( void ) { int x, y; unsigned int ux = 1000, uy = 0xffffffff; /* stejný počet bajtů - int, unsigned int */ x = ux; /* */ printf ( "ux = %u, x = %d\n", ux, x ); /* ux = 1000, x = 1000 */ y = uy; printf ( "uy = %u, y = %d\n", uy, y ); } ux = -100; printf ( "ux = %u\n", ux ); return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 36/46

49 Celočíselné datové typy více o přiřazení #include <stdio.h> int main ( void ) { int x, y; unsigned int ux = 1000, uy = 0xffffffff; /* stejný počet bajtů - int, unsigned int */ x = ux; /* */ printf ( "ux = %u, x = %d\n", ux, x ); /* ux = 1000, x = 1000 */ } y = uy; printf ( "uy = %u, y = %d\n", uy, y ); /* uy = , y = -1 */ ux = -100; printf ( "ux = %u\n", ux ); return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 36/46

50 Celočíselné datové typy více o přiřazení #include <stdio.h> int main ( void ) { int x, y; unsigned int ux = 1000, uy = 0xffffffff; /* stejný počet bajtů - int, unsigned int */ x = ux; /* */ printf ( "ux = %u, x = %d\n", ux, x ); /* ux = 1000, x = 1000 */ } y = uy; /* */ printf ( "uy = %u, y = %d\n", uy, y ); /* uy = , y = -1 */ ux = -100; printf ( "ux = %u\n", ux ); return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 36/46

51 Celočíselné datové typy více o přiřazení #include <stdio.h> int main ( void ) { int x, y; unsigned int ux = 1000, uy = 0xffffffff; /* stejný počet bajtů - int, unsigned int */ x = ux; /* */ printf ( "ux = %u, x = %d\n", ux, x ); /* ux = 1000, x = 1000 */ } y = uy; /* */ printf ( "uy = %u, y = %d\n", uy, y ); /* uy = , y = -1 */ ux = -100; printf ( "ux = %u\n", ux ); /* ux = */ return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 36/46

52 Celočíselné datové typy více o přiřazení #include <stdio.h> int main ( void ) { int x, y; unsigned int ux = 1000, uy = 0xffffffff; /* stejný počet bajtů - int, unsigned int */ x = ux; /* */ printf ( "ux = %u, x = %d\n", ux, x ); /* ux = 1000, x = 1000 */ } y = uy; /* */ printf ( "uy = %u, y = %d\n", uy, y ); /* uy = , y = -1 */ ux = -100; /* */ printf ( "ux = %u\n", ux ); /* ux = */ return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 36/46

53 Celočíselné datové typy více o přiřazení #include <stdio.h> int main ( void ) { int x = 1000, y = 767; signed char cx, cy; /* char je kratší než int */ cx = x; printf ( "x = %d, cx = %d\n", x, cx ); cy = y; printf ( "y = %d, cy = %d\n", y, cy ); } return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 37/46

54 Celočíselné datové typy více o přiřazení #include <stdio.h> int main ( void ) { int x = 1000, y = 767; signed char cx, cy; /* char je kratší než int */ cx = x; printf ( "x = %d, cx = %d\n", x, cx ); /* x = 1000, cx = -24 */ cy = y; printf ( "y = %d, cy = %d\n", y, cy ); } return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 37/46

55 Celočíselné datové typy více o přiřazení #include <stdio.h> int main ( void ) { int x = 1000, y = 767; signed char cx, cy; /* char je kratší než int */ cx = x; /* < */ printf ( "x = %d, cx = %d\n", x, cx ); /* x = 1000, cx = -24 */ cy = y; printf ( "y = %d, cy = %d\n", y, cy ); } return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 37/46

56 Celočíselné datové typy více o přiřazení #include <stdio.h> int main ( void ) { int x = 1000, y = 767; signed char cx, cy; } /* char je kratší než int */ cx = x; /* < */ printf ( "x = %d, cx = %d\n", x, cx ); /* x = 1000, cx = -24 */ cy = y; printf ( "y = %d, cy = %d\n", y, cy ); /* y = 767, cy = -1 */ return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 37/46

57 Celočíselné datové typy více o přiřazení #include <stdio.h> int main ( void ) { int x = 1000, y = 767; signed char cx, cy; } /* char je kratší než int */ cx = x; /* < */ printf ( "x = %d, cx = %d\n", x, cx ); /* x = 1000, cx = -24 */ cy = y; /* < */ printf ( "y = %d, cy = %d\n", y, cy ); /* y = 767, cy = -1 */ return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 37/46

58 Celočíselné datové typy více o přiřazení #include <stdio.h> int main ( void ) { int x, y, z = 128; unsigned char cx = 128; signed char cy = -10, cz; } x = cx; printf ( "x = %d\n", x); y = cy; printf ( "y = %d\n", y); cz = z; z = cz; printf ( "z = %d\n", z); return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 38/46

59 Celočíselné datové typy více o přiřazení #include <stdio.h> int main ( void ) { int x, y, z = 128; unsigned char cx = 128; signed char cy = -10, cz; } x = cx; printf ( "x = %d\n", x); /* x = 128 */ y = cy; printf ( "y = %d\n", y); cz = z; z = cz; printf ( "z = %d\n", z); return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 38/46

60 Celočíselné datové typy více o přiřazení #include <stdio.h> int main ( void ) { int x, y, z = 128; unsigned char cx = 128; signed char cy = -10, cz; } x = cx; /* < */ printf ( "x = %d\n", x); /* x = 128 */ y = cy; printf ( "y = %d\n", y); cz = z; z = cz; printf ( "z = %d\n", z); return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 38/46

61 Celočíselné datové typy více o přiřazení #include <stdio.h> int main ( void ) { int x, y, z = 128; unsigned char cx = 128; signed char cy = -10, cz; } x = cx; /* < */ printf ( "x = %d\n", x); /* x = 128 */ y = cy; printf ( "y = %d\n", y); /* y = -10 */ cz = z; z = cz; printf ( "z = %d\n", z); return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 38/46

62 Celočíselné datové typy více o přiřazení #include <stdio.h> int main ( void ) { int x, y, z = 128; unsigned char cx = 128; signed char cy = -10, cz; } x = cx; /* < */ printf ( "x = %d\n", x); /* x = 128 */ y = cy; /* < */ printf ( "y = %d\n", y); /* y = -10 */ cz = z; z = cz; printf ( "z = %d\n", z); return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 38/46

63 Celočíselné datové typy více o přiřazení #include <stdio.h> int main ( void ) { int x, y, z = 128; unsigned char cx = 128; signed char cy = -10, cz; } x = cx; /* < */ printf ( "x = %d\n", x); /* x = 128 */ y = cy; /* < */ printf ( "y = %d\n", y); /* y = -10 */ cz = z; z = cz; printf ( "z = %d\n", z); /* z = -128 */ return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 38/46

64 Celočíselné datové typy více o přiřazení #include <stdio.h> int main ( void ) { int x, y, z = 128; unsigned char cx = 128; signed char cy = -10, cz; } x = cx; /* < */ printf ( "x = %d\n", x); /* x = 128 */ y = cy; /* < */ printf ( "y = %d\n", y); /* y = -10 */ cz = z; /* < */ z = cz; printf ( "z = %d\n", z); /* z = -128 */ return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 38/46

65 Celočíselné datové typy více o přiřazení #include <stdio.h> int main ( void ) { int x, y, z = 128; unsigned char cx = 128; signed char cy = -10, cz; } x = cx; /* < */ printf ( "x = %d\n", x); /* x = 128 */ y = cy; /* < */ printf ( "y = %d\n", y); /* y = -10 */ cz = z; /* < */ z = cz; /* < */ printf ( "z = %d\n", z); /* z = -128 */ return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 38/46

66 Celočíselné datové typy (de)motivace If androids some day DO dream of electric sheep, do not forget to declare sheepcount as a long int. Za obrázek děkujeme Randallu Munroe, XKCD comics #571 (xkcd.com). M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 39/46

67 Znakový datový typ (char) Znaky jsou kódovány jako čísla. Jsou používány různé standardy pro kódování znaků: ASCII (7 bit), 128 kódů, pouze pro anglickou množinu znaků, ASCII extended (8 bit), horních 128 kódů je použito pro národní znaky (ISO až ISO , kódové stránky Windows 1250/1251/1252,... ), UNICODE (až znaků), různé kódování do bajtů (UTF-8, UTF-16, UTF-32, UCS2, UCS4), EBCDIC (8 bitů, velké počítače IBM). Originální 7-bitový kód ASCII je společný pro všechny kódy (s výjimkou EBCDIC): 0 31 řídící kódy (jako \n nový řádek, ASCII 0x0A), 32 mezera (0x20), symboly, číslice, písmena (anglická abeceda), digits 0 9 (0x30 0x39), písmena A Z (0x41 0x5a), písmena a z (0x61 0x7a). M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 40/46

68 Znakové literály Jednoduché znaky znak mezi apostrofy: a, *, 1,... Na rozdíl od PHP, jazyky C/C++/Java rozlišují: znaky (právě jediný znak), v apostrofech, řetězce (žádný nebo více znaků), v uvozovkách. Netisknutelné znaky se zapíší pomocí tzv. escape sekvencí: \12 (oktalově 012 = 10 (dekadicky) = LF), \xa (hexadecimálně 0xA = 10 (dekadicky) = LF). Zkrácené escape sekvence pro často používané znaky: \n (LF = 0x0A), \t (TAB = 0x09), \ (apostrof = 0x27), \" (uvozovky = 0x22), \\ (zpětné lomítko = 0x5c). M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 41/46

69 Znakový vstup a výstup Funkce printf a scanf používají znakovou konverzi %c. printf vypíše jeden znak, který je dán odpovídajícím parametrem. Funkce scanf přečte ze vstupu jeden znak, jehož kód uloží do proměnné typu char. Funkce scanf přeskočí bílé znaky (mezery, tabelátory, nové řádky). Funkce scanf nemůže být použita pro čtení těchto znaků (v tomto případě je třeba použít funkci getc). Poznamenejme, že C/C++ nerozlišuje znaky (typu char) a malá celá čísla (opět typu char). Vnitřní reprezentace a výpočty jsou stejné, jen vstup a výstup je jiný. M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 42/46

70 Příklad znakového vstupu a výstupu #include <stdio.h> int main ( void ) { char c; } printf ( "Napis znak:\n" ); scanf ( "%c", &c ); printf ( "Napsal jsi: %c, code %d\n ", c, c ); return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 43/46

71 Znakový vstup a výstup #include <stdio.h> int main ( void ) { char c ; int i = 0x40; unsigned int u = 0xff40; } printf ( "c = %x %d %c\n ", c, c, c ); printf ( "i = %x %d %c\n ", i, i, i ); printf ( "u = %x %d %c\n ", u, u, u ); return 0; M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 44/46

72 Znakový vstup a výstup Výstup programu: c = M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 45/46

73 Znakový vstup a výstup Výstup programu: c = i = 40 M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 45/46

74 Znakový vstup a výstup Výstup programu: c = i = u = M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 45/46

75 Znakový vstup a výstup Výstup programu: c = i = u = ff40 M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 45/46

76 Otázky a odpovědi Otázky... M. Baĺık, L. Vagner a J. Vogel, ČVUT FIT Proměnné, I/O, BI-PA1 46/46

BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky

BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Vstup, výstup BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky Miroslav Balík Fakulta informačních technologií České

Více

BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky

BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Vstup, výstup BI-PA1

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

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

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

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

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

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

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

Ú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

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

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

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

IUJCE 07/08 Přednáška č. 1

IUJCE 07/08 Přednáška č. 1 Úvod do předmětu Literatura Záznamy přednášek a vaše poznámky Harbison, S. P., Steele, G. L.: Referenční příručka jazyka C Herout, P.: Učebnice jazyka C Kernighan, B. W., Ritchie, D. M.: The C Programming

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

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

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

Ahoj mami. Uložení dat v počítači. Příklady kódování dat. IAJCE Přednáška č. 4

Ahoj mami. Uložení dat v počítači. Příklady kódování dat. IAJCE Přednáška č. 4 Uložení dat v počítači Data = užitečné, zpracovávané informace Kódování (formát) dat = způsob uložení v počítači (nutno vše převést na čísla ve dvojkové soustavě) Příklady kódování dat Text každému znaku

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

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

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

Lekce 6 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

Proměnná a její uložení v paměti

Proměnná a její uložení v paměti Proměnná a její uložení v paměti Počítačová paměť - řada buněk uložených za sebou, každá buňka má velikost 1 bajt (byte, B) - buňky jsou očíslovány, tato čísla se nazývají adresy Proměnná - data, se kterými

Více

Ukazatele #1, struktury

Ukazatele #1, struktury Ukazatele #1, struktury BI-PA1 Programování a Algoritmizace 1 Miroslav Baĺık, Ladislav Vagner a Josef Vogel Katedra teoretické informatiky a Katedra softwarového inženýrství Fakulta informačních technologíı

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

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

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

C2115 Praktický úvod do superpočítání

C2115 Praktický úvod do superpočítání C2115 Praktický úvod do superpočítání IX. lekce Petr Kulhánek, Tomáš Bouchal kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Přírodovědecká fakulta, Masarykova univerzita, Kotlářská 2, CZ-61137

Více

3 Jednoduché datové typy 2 3.1 Interpretace čísel v paměti počítače... 3. 4 Problémy s matematickými operacemi 5

3 Jednoduché datové typy 2 3.1 Interpretace čísel v paměti počítače... 3. 4 Problémy s matematickými operacemi 5 Obsah Obsah 1 Číselné soustavy 1 2 Paměť počítače 1 2.1 Měření objemu paměti počítače................... 1 3 Jednoduché datové typy 2 3.1 Interpretace čísel v paměti počítače................. 3 4 Problémy

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

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

Ú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

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu 1 Podklady předmětu pro akademický rok 2006/2007 Radim Farana Obsah 2 Obsah předmětu, Požadavky kreditového systému, Datové typy jednoduché, složené, Programové struktury, Předávání dat. Obsah předmětu

Více

Základy jazyka C. Základy programování 1 Tomáš Kühr

Základy jazyka C. Základy programování 1 Tomáš Kühr Základy jazyka C Základy programování 1 Tomáš Kühr Organizační záležitosti Konzultace Osobně v pracovně 5.043 Pondělí 15.00 16.00 Úterý 14.00 16.00 Čtvrtek 13.00 15.00 Pátek 9.30 11.30 Něco jde vyřešit

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

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

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

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

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

Informatika Datové formáty

Informatika Datové formáty Informatika Datové formáty Radim Farana Podklady předmětu Informatika pro akademický rok 2007/2008 Obsah Datové formáty (datové typy). Textové formáty, vlastnosti zdroje zpráv. Číselné formáty, číselné

Více

7. Datové typy v Javě

7. Datové typy v Javě 7. Datové typy v Javě Primitivní vs. objektové typy Kategorie primitivních typů: integrální, boolean, čísla s pohyblivou řádovou čárkou Pole: deklarace, vytvoření, naplnění, přístup k prvkům, rozsah indexů

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

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

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

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

Standardní vstup a výstup

Standardní vstup a výstup Standardní vstup a výstup Trochu teorie S pojmy standardní vstup/výstup (I/O, input/output) jste se již pravděpodobně setkali, pokud ale ne, zde je krátké vysvětlení. Standardní vstup a výstup jsou vlastně

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

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

Racionální čísla, operátory, výrazy, knihovní funkce

Racionální čísla, operátory, výrazy, knihovní funkce Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Racionální čísla, operátory, výrazy, knihovní funkce BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky Miroslav Balík

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

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)

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

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

Racionální čísla, operátory, výrazy, knihovní funkce

Racionální čísla, operátory, výrazy, knihovní funkce Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Racionální čísla,

Více

Funkce, intuitivní chápání složitosti

Funkce, intuitivní chápání složitosti Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Funkce, intuitivní

Více

PJC Cvičení #2. Číselné soustavy a binární reprezentace proměnných

PJC Cvičení #2. Číselné soustavy a binární reprezentace proměnných PJC Cvičení #2 Číselné soustavy a binární reprezentace proměnných Číselné soustavy Desítková (decimální) kdo nezná, tak...!!! Dvojková (binární) - nejjednodušší Šestnáctková (hexadecimální) - nejpoužívanější

Více

Vstup a výstup datové proudy v C

Vstup a výstup datové proudy v C Vstup a výstup datové proudy v C Petr Šaloun katedra informatiky FEI VŠB-TU Ostrava 24. října 2011 Petr Šaloun (katedra informatiky FEI VŠB-TU Ostrava) Vstup a výstup 24. října 2011 1 / 37 Přehled, rozdělení

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

Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory

Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory Jazyk C Program v jazyku C má následující strukturu: Direktivy procesoru Globální definice (platné a známé v celém programu) Funkce Hlavička funkce Tělo funkce je uzavřeno mezi složené závorky { Lokální

Více

Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy

Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy Ústav radioelektroniky Vysoké učení technické v Brně Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy Přednáška 8 doc. Ing. Tomáš Frýza, Ph.D. listopad 2012 Obsah

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

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

Datové typy a jejich reprezentace v počítači.

Datové typy a jejich reprezentace v počítači. Datové typy a jejich reprezentace v počítači. Celá čísla. Reálná čísla. Semilogaritmický tvar. Komplexní čísla. Řetězce. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie,

Více

Ukazatele #2, dynamická alokace paměti

Ukazatele #2, dynamická alokace paměti Ukazatele #2, dynamická alokace paměti BI-PA1 Programování a Algoritmizace 1 Miroslav Baĺık, Ladislav Vagner a Josef Vogel Katedra teoretické informatiky a Katedra softwarového inženýrství Fakulta informačních

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

BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky

BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Ukazatele BI-PA1

Více

VISUAL BASIC. Práce se soubory

VISUAL BASIC. Práce se soubory VISUAL BASIC Práce se soubory Práce se soubory 1/2 2 Vstupní data pro programy bývají uloženy do souborů Vstupy pro výpočet, nastavení vzhledu aplikace Výsledky práce programu je potřeba uchovat uložit

Více

MQL4 COURSE. By Coders guru www.forex-tsd.com -3 DATA TYPES. Doufám, že předchozí lekce SYNTAX se vám líbila. V té jsme se pokoušeli zodpovědět:

MQL4 COURSE. By Coders guru www.forex-tsd.com -3 DATA TYPES. Doufám, že předchozí lekce SYNTAX se vám líbila. V té jsme se pokoušeli zodpovědět: MQL4 COURSE By Coders guru www.forex-tsd.com -3 DATA TYPES Vítám vás ve třetí lekci svého MQL4 kurzu. Doufám, že předchozí lekce SYNTAX se vám líbila. V té jsme se pokoušeli zodpovědět: Jaký formát můžete

Více

Znaky. IAJCE Přednáška č. 10. každému znaku je nutné přiřadit nějaké číslo (nezáporné přímé mapování znak <->

Znaky. IAJCE Přednáška č. 10. každému znaku je nutné přiřadit nějaké číslo (nezáporné přímé mapování znak <-> Znaky každému znaku je nutné přiřadit nějaké číslo (nezáporné přímé mapování znak číslo) kódování jiný příklad kódování existuje mnoho kódů pojmy: morseova abeceda problémy o znaková sada které znaky

Více

POČÍTAČE A PROGRAMOVÁNÍ

POČÍTAČE A PROGRAMOVÁNÍ POČÍTAČE A PROGRAMOVÁNÍ Práce se soubory, čtení dat ze souboru a zapis dat do souboru Miroslav Vavroušek PPI 10 V1.1 Opakovaní z minulé přednášky Moderní metody vývoje softwaru Složení softwaroveho vývojového

Více

Funkce, procedury, složitost

Funkce, procedury, složitost Funkce, procedury, složitost BI-PA1 Programování a Algoritmizace 1 Miroslav Baĺık, Ladislav Vagner a Josef Vogel Katedra teoretické informatiky a Katedra softwarového inženýrství Fakulta informačních technologíı

Více

ADT/ADS = abstraktní datové typy / struktury

ADT/ADS = abstraktní datové typy / struktury DT = datové typy obor hodnot, které může proměnná nabývat, s operacemi na tomto oboru určen: obor hodnot + výpočetní operace např. INT = { 2 147 483 648 až +2 147 483 647} + {+,,*,/,} ADT/ADS = abstraktní

Více

Datové typy pro reálná čísla

Datové typy pro reálná čísla Datové typy pro reálná čísla KAPITOLA 3 V této kapitole: Vlastnosti datových typů pro reálná čísla v jazyce C/ C++ Vstupně/výstupní operace z pohledu reálných čísel Aritmetické operace s reálnými čísly

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 Středa 10:30 12:00 Emailem martin.kauer@upol.cz Web předmětu http://tux.inf.upol.cz/~kauer/index.php?content=var&class=zp1

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

Ing. Igor Kopetschke TUL, NTI

Ing. Igor Kopetschke TUL, NTI ALGORITMY A DATOVÉ STRUKTURY 1. Organizace dat v paměti, datové typy Ing. Igor Kopetschke TUL, NTI http://www.nti.tul.cz Jednotlivé body Ukládání a a organizace dat Vnitřní paměť Vnější paměť Přístup k

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

Příklad: Součet náhodných čísel ve vektoru s počtem prvků, které zadá uživatel, pomocí sum() a pomocí cyklu for. Ověříme, že příliš výpisů na

Příklad: Součet náhodných čísel ve vektoru s počtem prvků, které zadá uživatel, pomocí sum() a pomocí cyklu for. Ověříme, že příliš výpisů na Příklad: Součet náhodných čísel ve vektoru s počtem prvků, které zadá uživatel, pomocí sum() a pomocí cyklu for. Ověříme, že příliš výpisů na obrazovku zpomaluje tím, že zobrazíme okno (proužek) o stavu

Více

Odvozené a strukturované typy dat

Odvozené a strukturované typy dat Odvozené a strukturované typy dat Petr Šaloun katedra informatiky FEI VŠB-TU Ostrava 14. listopadu 2011 Petr Šaloun (katedra informatiky FEI VŠB-TU Ostrava) Odvozené a strukturované typy dat 14. listopadu

Více

v aritmetické jednotce počíta

v aritmetické jednotce počíta v aritmetické jednotce počíta tače (Opakování) Dvojková, osmičková a šestnáctková soustava () Osmičková nebo šestnáctková soustava se používá ke snadnému zápisu binárních čísel. 2 A 3 Doplněné nuly B Číslo

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

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

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: Ukončí program. Nula znamená, že vše proběhlo bez chyby.

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: Ukončí program. Nula znamená, že vše proběhlo bez chyby. 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

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 i s pomocí materiálů, které vyrobili Ladislav Vágner, Pavel Strnad Karel Richta, Martin Hořeňovský,

Více

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem. Algoritmus Algoritmus je schematický postup pro řešení určitého druhu problémů, který je prováděn pomocí konečného množství přesně definovaných kroků. nebo Algoritmus lze definovat jako jednoznačně určenou

Více

Algoritmy I. Číselné soustavy přečíst!!! ALGI 2018/19

Algoritmy I. Číselné soustavy přečíst!!! ALGI 2018/19 Algoritmy I Číselné soustavy přečíst!!! Číselné soustavy Každé číslo lze zapsat v poziční číselné soustavě ve tvaru: a n *z n +a n-1 *z n-1 +. +a 1 *z 1 +a 0 *z 0 +a -1 *z n-1 +a -2 *z -2 +.. V dekadické

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

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

Příkazy if, while, do-while, for, switch Příkazy if, while, do-while, for, switch BI-PA1 Programování a Algoritmizace 1 Ladislav Vagner, Josef Vogel Katedra teoretické informatiky a Katedra softwarového inženýrství Fakulta informačních technologíı

Více

Data, výrazy, příkazy

Data, výrazy, příkazy Data, výrazy, 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, Martin Hořeňovský, Aleš Hrabalík

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Algoritmus Daniela Szturcová Tento

Více

BI-PA1 Programování a Algoritmizace 1. Miroslav Baĺık, Ladislav Vagner a Josef Vogel. 7., 9. a 10. listopadu 2017

BI-PA1 Programování a Algoritmizace 1. Miroslav Baĺık, Ladislav Vagner a Josef Vogel. 7., 9. a 10. listopadu 2017 Pole, Řetězce BI-PA1 Programování a Algoritmizace 1 Miroslav Baĺık, Ladislav Vagner a Josef Vogel Katedra teoretické informatiky a Katedra softwarového inženýrství Fakulta informačních technologíı České

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

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 21. září 2009 Obsah Úvodní informace 1 Úvodní informace 2 3 4 Organizace předmětu Přednášky 1. 5. Základní

Více

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Programová realizace DKA typedef enum {q0, q1,... qn,

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

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku Znaky - standardní typ char var Z, W: char; - znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku - v TP (často i jinde) se používá kódová

Více

Sada 1 - Základy programování

Sada 1 - Základy programování S třední škola stavební Jihlava Sada 1 - Základy programování 04. Datové typy, operace, logické operátory Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284

Více

Telemetrický komunikační protokol JETI

Telemetrický komunikační protokol JETI Dokument se bude zabývat popisem komunikačního protokolu senzorů JETI model. Telemetrické informace se přenášejí komunikační sběrnicí ze senzorů do přijímače a bezdrátově se přenášejí do zařízení, např.

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

9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek

9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek 9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek 1/24 Editační prostření Kód programu lze editovat v jakémkoli textovém editoru. 2/24 Editační prostření Kód

Více