Algoritmizace a programování

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

Download "Algoritmizace a programování"

Transkript

1 Algoritmizace a programování Jazyk C výrazy České vysoké učení technické Fakulta elektrotechnická Ver.1.10 J. Zděnek 2015

2 Struktura programu (1) Program v C se skládá z následujících součástí: Příkazy preprocesoru (Preprocessor commands) Definice typů (type definitions) Prototypy funkcí (function prototypes) kde je uvedena deklarace: Jména funkce Vstupních parametrů Návratové hodnoty funkce Proměnné (variables) Funkce (functions) (v C je procedura funkce bez návratové hodnoty) A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 2

3 Funkce v C mají tento tvar: Struktura programu (2) Každý program musí obsahovat právě jednu funkci main() Všechny funkce (včetně main()) mají jednotný formát: typ_navrat_hodnoty jmeno_fce (parametry_fce){ lokalni promenne prikazy } Uvnitř funkce nelze definovat lokální funkce (definice funkci nesmí být vnořené) Na formátování zdrojového textu překladači nezáleží. Formátování zlepšuje autorovi (i ostatním) čitelnost a potlačuje chyby. A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 3

4 Model kompilace (1) soubor2.h soubor1.c Header soubor3.c Source code Source code 1) Preprocessor Zdroj.kód C Zdroj.kód ASM 2) Compiler Assembly code 3) Assembler Object code soubor4.asm Source code soubor5.lib Libraries Knihovny 4) Linker Spustitelný kód Executable code A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 4

5 Model kompilace (2) Vytvoření spustitelného kódu (viz obr): 1) Preprocesor: Čte zdrojový kód v C Odstraní komentáře Upraví zdrojový text podle direktiv preprocesoru (řádky začínající #) Vloží do textu obsah jiného souboru #include. Odebere text vymezený direktivami podmíněného překladu Expanduje makra 2) Překladač C: Čte výstup z preprocesoru Kontroluje syntaktickou správnost textu Hlásí chyby a varování Generuje text v assembleru (když nejsou chyby) A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 5

6 Model kompilace (3) Vytvoření spustitelného kódu (viz obr): 3) Assembler: Čte výstup z překladače C Generuje relokovatelný object kód (kód s nevyřešenými odkazy mezi moduly) Přeloží případné moduly zapsané přímo v assembleru (mix programovacích jazyků) 4) Linker (spojovací program): Čte object kód všech zůčastněných modulů programu Připojí knihovní object moduly (přeložené dříve nebo dodané), Vyřeší odkazy mezi moduly Generuje spustitelný kód (zjednodušené) A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 6

7 Soubor platných znaků (ASCII) (1) C - základní soubor znaků: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m h o p q r s t u v x y z ! # % & ( ) * +, -. / : ; < = >? [ \ ] ^? _ { } ~ Oddělovače (whitespace characters) space, horizontal tab, vertical tab, newline, form feed \0 - null char (koncový znak řetězce) A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 7

8 Soubor platných znaků (ASCII) (2) C - základní soubor znaků (pokrač.): Řídicí znaky pro řízení výstupních zařízení (escape sequences) Escape sequence Výstup Escape sequence Výstup \a Beep (pípnutí) \ Znak \b Backspace \ Znak \f Form feed \? Znak? \n Newline \\ Znak \ \r Carriage return \o \oo \ooo o=osmičkové ( př: \741 ) číslice (octal dig) \t Horizontal tab \xh h =šestnáctkové ( př: \x1008 ) číslice (hex dig.) \v Vertical tab C - ostatní znaky: Mohou se použít v komentářích, řetězcích a znakových konstantách A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 8

9 Identifikátory C - pravidla pro volbu identifikátorů: Obsahuje A,..,Y,a,..,z,0,..,9 a znak _ (underscore) První znak není číslice Rozlišují se velká a malá písmena (case sensitive) Délka identifikátoru není omezena, ale pouze 31 prvních znaků je významných (může se lišit podle implementace) C - rezervovaná slova (keywords): Musí být zapsaná malými písmeny auto default float register struct volatile break do for return switch while case double goto short typedef char else if signed union const enum int sizeof unsigned continue extern long static void A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 9

10 Datové typy Při návrhu algoritmů a psaní programů ve vyšších programovacích jazycích abstrahujeme od binární podoby paměti počítače S daty pracujeme jako s hodnotami různých datových typů, které jsou uloženy v datových objektech Datový typ (zkráceně jen typ) specifikuje: množinu hodnot (+ reprezentace) množinu operací, které lze s hodnotami daného typu provádět Příklad typu: celočíselný typ int v jazyku C: množinou hodnot jsou celá čísla (interval je závislý na implementaci) množinu operací tvoří aritmetické operace +, -, *, /, jejichž výsledkem je hodnota typu int relační operace ==,!=, >, >=, <, <=, jejichž výsledkem je logická hodnota. V jazyce C není zavedena logický typ proměnné. Logický stav se vyhodnocuje dle hodnoty číselné proměnné kde: = 0 znamená "false", 0 znamená "true" A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 10

11 Reprezentace dat v počítači bit (binary digit dvojková číslice; angl. bit drobek, kousek) základní a nejmenší jednotky informace nabývá hodnot 0 nebo 1 byte (též bajt, česky - slabika) uspořádaná osmice bitů Násobky 1 kb = bajtů (dekadický kilobajt, malé k ) 1 KB = bajtů = 2 10 (binární kilobajt, velké K ) 1 MB = bajtů = GB = bajtů = 2 30 A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 11

12 Číselné soustavy - polyadické Reprezentace celých čísel Desítková soustava 138,24 = 1* * * * *10-2 =1*100+3*10+8*1+2*0,1+4*0,01 Dvojková soustava 11010,01 b = 1*2 4 +1*2 3 +0*2 2 +1*2 1 +0*2 0 +0*2-1 +1*2-2 = 1*16+1*8+0*4+1*2+0*1+0*1/2+1*1/4= 26,25 Šestnáctková soustava (hexadecimal numeral system) a = 0, 1, 2, 9, A, B, F ; z = 16 Př: 07D h = 0* * D*16 0 = = 125 A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 12

13 Reprezentace čísel v počítači Celá kladná čísla přímý binární kód Př: 125 d = 0*2 7 +1*2 6 +1*2 5 +1*2 4 +1*2 3 +1*2 2 +0*2 1 +1*2 0 = b = Celá záporná čísla dvojkový doplněk (two s complement) Př: -125 d = b Výpočet: Kladnéčíslo: x = +125 d = b Zápornéčíslo: -x = -125 d znaménkový bit NOT x = b = b (jednotkový doplněk) (dvojkový doplněk) velikost čísla (není to přímý binární kód!) A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 13

14 Nepřesnost v zobrazení reálných čísel Pokusme se v dekadické soustavě zapsat číslo 1/3 (jedna třetina) 0,3 přesněji 0,33 lépe 0, , Jelikož máme omezený paměťový prostor, nikdy neuložíme číslo 1/3 přesně (Jak by číslo 1/3 vypadalo v trojkové soustavě?) 0* * *3-1 = (0,1) 3 A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 14

15 Nepřesnost v zobrazení reálných čísel Reálná čísla X se zobrazují ve tvaru: X= mantisa * základ exponent exponent mantisa Nepřesnosti způsobují 1. Iracionálníčísla ( e, π, 2,. ) 2. Čísla, jež mají v dané soustavě periodický rozvoj (1/3 ve dvojkové či dekadické soustavě, 1/10 ve dvojkové) 3. Čísla, která mají příliš dlouhý zápis double (celkem 64 bitů) 1 bit znaménko dvě možnosti, +,- 11 bitů exponent 2048 možností 52 bitů možností, tedy asi 4,5 biliardy - není možné v typu double přesně uložit čísla se zápisem delším než 52 bitů! A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 15

16 Model reprezentace reálných čísel Reálnáčísla se zobrazují jako aproximace daná rozsahem paměťového místa vyhrazeného pro číslo. Reálná čísla se zobrazují ve tvaru: X = mantisa*základ exponent = m*z exponent Mantisa musí být normalizována: 0,1 <= m < 1, důvod: jednoznačnost zobrazení Model: délka mantisy 3 pozice + znaménko délka exponentu 2 pozice + znaménko Příklad: X = 77.5 = *z +02 lze zakódovat znaménko + = 0, = 1 z je 10 (16, 2,..) A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 16

17 Model reprezentace reálných čísel Maximální zobrazitelné kladnéčíslo Minimální zobrazitelné kladné číslo Maximální zobrazitelné záporné číslo (v absolutní hodnotě) Minimální zobrazitelné záporné číslo (v absolutní hodnotě) Nula Jak je to se zobrazitelnými hodnotami okolo nuly, Jak je to se sousedy aproximací? ??? z z z z?? 0.101z z z -99 A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 17

18 Model reprezentace reálných čísel Jaká je vzdálenost dvou aproximací?? To závisí na hodnotě!!! +MAXIMUM 0.999z 99 NULA 0.000z?? 0.100z z z z 12 Aproximace reálných čísel: nejsou na číselné ose rozložené rovnoměrně!! NULA +MAXIMUM A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 18

19 Reálnáčísla v C (typ double) Reálná čísla se zobrazují ve tvaru: X= mantisa*základ exponent = m*z exponent V C jsou reálná čísla reprezentována typem double na 64 bitů, norma IEEE 754 znaménkový bit (s), exponent, mantisa nejmenšíčísla v normalizovaném tvaru (v abs. hodnotě) ± ± největší čísla ±(1-(1/2) 53 ) ± A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 19

20 Datové typy (1) Celočíselné datové typy: Typ Velikost [byte] Rozsah Použití char až +127 nebo 0 až 255 Znaky unsigned char 1 0 až 255 Malá čísla signed char až +127 Malá čísla int 2 nebo až nebo až Celá čísla unsigned int 2 nebo 4 0 až nebo 0 až Kladná celá čísla short až Celá čísla unsigned short 2 0 až Kladná celá čísla long až Velká celá čísla unsigned long 4 0 až Kladná celá čísla Velikost celočíselných typů určená implementací Vždy ale platí (v byte): char <= short <= int <= long Typ boolean není (až ANSI C99), = 0 ->false,!= 0 -> true A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 20

21 Datové typy (2) C - reálná čísla (neceločíselné datové typy): Velikost reálných čísel určená implementací Většina překladačů se řídí standardem IEEE , potom jsou rozsahy reálných čísel dány následující tabulkou: Typ Velikost [byte] Rozsah (uveden pro kladná č.) Přesnost float 4 1.2E-38 až 3.4E+38 6 desítkových číslic double 8 2.3E-308 až 1.7E desítkových číslic long double E-4932 až 1.1E desítkových číslic C - typ void: void značí prázdnou hodnotu nebo proměnnou bez typu (jen ukazatelé) void funkce1 (.) - fukce bez návratové hodnoty (procedura) int funkce2 (void) - funkce bez vstupních parametrů void *ptr; - ukazatel bez určeného typu (viz dále) A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 21

22 Konstanty (1) 6 typů konstant: Celočíselné (integer constants) Reálné (floating constants) Znakové (character constants) Řetězcové (literal constants) (literály) Výčtové (enumeration constants) (pojmenované prvky množiny) Symbolické (#define MAX 300) A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 22

23 Konstanty - celočíselné (2) Formát celočíselné konstanty: Desítkový - nezačíná číslicí 0 (nula), př: 1024 Osmičkový - začíná číslicí 0 (nula), př: 012 Šestnáctkový - začíná znaky 0x nebo 0X (nula x), př: 0x7F8A číslice a,..,f (A,..,F) mohou být velká i malá pismena Typ celočíselné konstanty: Není-li určen explicitně, přiřadí se nejbližší dostatečně veliký typ Desítkové konst. - int, long, unsigned long Šestnáctkové a osmičkové - int, unsigned int, long, unsigned long Určí se explicitně znaky U nebo u (unsigned), L nebo l (long) jinak int Desítkově Osmičkově Šestnáctkově Typ xF int x7FFF int 10U 012U 0xAU unsigned int 16L 020L 0x10L long 27UL 0333ul 0x1BUL unsigned long A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 23

24 Konstanty - reálné (3) Formát reálné konstanty: S řádovou tečkou př: 41.9 Mantisa a exponent př: 5.67E-3 // 5.67*10-3 nebo rovněž 5.67e-3 Typ reálné konstanty: Není-li určen explicitně, pak je - double Určí se explicitně znaky F nebo f - float L nebo l - long double V tabulce jsou všechny konstanty typu double E e+2 519E E2 12e e+4 3.7E e E-6 0.4e-5.4E-5 A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 24

25 Konstanty - znakové (4) Formát znakové konstanty : Jeden nebo více znaků v jednoduchých apostrofech př: B, g, ab, 9 Hodnota znakové konstanty : Jednoznaková konstanta má hodnotu odpovídajícího kódu znaku př: v ASCII kódu 0 ~= 48, A ~=65 Víceznaková konstanta - hodnota závisí na implementaci překladače C Typ znakové konstanty: Znaková konstanta je typu int Pozn: Řídicí znaky (escape sequences) mohou tvořit znakové konstanty př: \n A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 25

26 Konstanty - řetězcové (literály) (5) Formát řetězcové konstanty (literálu) : Posloupnost znaků a řídicích znaků (escape sequences) uzavřená v uvozovkách př: Já jsem řetězcová konstanta! \n Pozn: Řetězcové konstanty oddělené pouze oddělovači (whitespace characters) jsou sloučeny do konstanty jediné. př: Já jsem řetězcová konstanta! \n se sloučí do Já jsem řetězcová konstanta! \n Typ řetězcové konstanty: Řetězcová konstanta je uložená v poli typu char (array of char) a je zakončená znakem \0 př: Nazdar se uloží v poli typu char takto: N a z d a r \0 A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 26

27 Konstanty - výčtové (enum type) (6) Formát výčtové konstanty : enum { CERVENA, MODRA, BILA, CERNA}; pak CERVENA=0 a každý další prvek má hodnotu o jedničku vyšší enum { MALY=5, VETSI, VELKY, NEJVETSI } pak MALY=5, VETSI=6 a každý další prvek má hodnotu o jedničku vyšší Typ výčtové konstanty: Výčtová konstanta je typu int A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 27

28 Konstanty - symbolické #define (7) Formát symbolické konstanty #define: Konstanta se založí příkazem preprocessoru #define (je to makro bez parametrů, každé #define musí být na samostatné řádku) př: #define CERVENA 0 /* Zde muze byt komentar */ #define MODRA 1 / /Je zvykem jména konstant psát velkými písmeny #define BILA 2 Hodnotu konstanty je možné vyjádřit konstantním výrazem př: #define MAX_1 (100*5)-12 Symbolické konstanty mohou být vnořené př: #define MAX_2 MAX_1+30 A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 28

29 Komentář C používá dva způsoby označení komentáře: /* Toto je komentář */ /* Toto je rovněž komentář */ rozdělený na několik řádků // Toto je též komentář až do konce řádku /* Komentář nesmí být vnořený do jiného komentáře /* to je chybný zápis komentáře */ */ Preprocesor nahradí každý komentář jednou mezerou //.. tento způsob některé překladače nepodporují A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 29

30 Proměnné a přiřazení Proměnná je datový objekt, který je označen jménem a je v něm uložena hodnota nějakého typu, která se může měnit alfa 0 hodnota proměnné jméno proměnné datový objekt V jazyku C zavedeme výše uvedenou proměnnou deklarací int alfa = 0; Hodnotu proměnné lze změnit přiřazovacím příkazem alfa 0 alfa = 37; alfa 37 A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 30

31 Deklarace proměnných Proměnné se zavádějí deklaracemi Příklady deklarací proměnných: int i; // deklarace proměnné i typu int double x; // deklarace proměnné x typu double Proměnná deklarovaná uvnitř funkce (lokální proměnná) nemá deklarací definovanou hodnotu Deklaraci proměnné lze doplnit o inicializaci proměnné: int x = 10; // deklarovaná proměnná má hodnotu 10 Deklarací lze zavést několik proměnných stejného typu: int x, z; A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 31

32 Přiřazovací příkaz Slouží pro přiřazení hodnoty proměnné Tvar přiřazovacího příkazu: <proměnná> = <výraz>; Příklad: x = y + z; proměnné x se přiřadí součet hodnot proměnných y a z x = x + 1; hodnota proměnné x se zvětší o 1 Příklady přiřazovacích příkazů: int i; double d; char c i = 14; d = 3.14; c = 'A'; A0B36PRI A8B14ADP PROGRAMOVÁNÍ Algoritmizace a programovaní 02 -Jazyk C - výrazy 32 32

33 Přiřazovací příkaz Přířazovací operátory: <proměnná> = <proměnná> <OP> <výraz> ~ <proměnná> <OP>= <výraz> Př.: j += 5; ~ j = j + 5; přiřazení je výraz!!!: Př.: int x, y; x = 7; // má hodnotu 7 a lze tedy opět přiřadit!! y = x = x + 6;// vyhodnotí se jako y = (x = (x + 6)); A0B36PRI A8B14ADP PROGRAMOVÁNÍ Algoritmizace a programovaní 02 -Jazyk C - výrazy 33 33

34 Příkaz výstupu - printf() printf("cislo Pi = %6.3f \n ", Math.PI); Výstup na obrazovku: Cislo Pi = Specifikace formátu %[$indexparametru][modifikátor][šířka][.přesnost]konverze konverze - povinný parametr typ celé číslo d,o,x - dekadicky, oktalově a hexadecimálně typ double f je desetinný zápis; e,e vědecký s exponentem šířka - počet sázených míst, zarovnání vpravo přesnost - počet desetinných míst modifikátor - v závislosti na typu konverze určuje další vlastnosti, například pro konverzi f (typ double) symbol + určuje, že má být vždy sázeno znaménko, symbol - určuje zarovnání vlevo, symbol 0 doplnění čísla zleva nulami. \n přechod na další řádek a další A0B36PRI A8B14ADP PROGRAMOVÁNÍ Algoritmizace a programovaní 02 -Jazyk C - výrazy 34 34

35 Příkaz vstupu scanf() V dalších příkladech budeme potřebovat příkazy pro vstup číselných dat zadaných na klávesnici Použijeme standardní funkce scanf() #include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { int pocet; scanf("%d", &pocet); printf("pocet = %d", pocet); } Ve funkci scanf() je nutné uvést očekávaný formát vstup (zde %d znamená celočíselný formát a proměnnou do které se má hodnota z klávesnice uložit. Pozor před hodnotou musí být znak & (znamená to volání odkazem viz další přednášky) A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 35

36 Typové konverze Typová konverze je operace, která hodnotu nějakého typu převede na hodnotu jiného typu, důvod jiná reprezentace čísel Typová konverze může být implicitní (vyvolá se automaticky) nebo explicitní (v programu je třeba ji explicitně předepsat) Konverze typu int na double je v jazyku C implicitní: kde se očekává hodnota typu double, může být uvedena hodnota typu int, která se automaticky převede na hodnotu typu double Příklad: double x; int i = 1; x = i; //hodnota 1 typu int se automaticky převede //na hodnotu 1.0 typu double Převod hodnoty typu double na int (odseknutím neceléčásti) je třeba explicitně předepsat Příklad: double x = 1.2; int i; i = (int)x; //hodnota 1.2 typu double se odseknutím //necelé části převede na hodnotu 1 typu int A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 36

37 Výrazy Výraz předepisuje výpočet hodnoty určitého typu Příklad výrazu: { sin(3.14)} * a 100 Výraz může obsahovat: proměnné konstanty volání funkcí binární operátory unární operátory závorky Pořadí operací předepsaných výrazem je dáno: Příklad: prioritou operátorů asociativitou operátorů výraz pořadí operací zdůvodnění x + y * z x + (y * z) * má vyšší prioritu než x + y + z x + y) + z + je asociativní zleva A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 37

38 Aritmetické operátory Pro operandy typu int a double budeme požívat tyto aritmetické operátory (seřazeno sestupně podle priority): unární (změna znaménka) binární *, /, % (násobení, dělení a zbytek po dělení) binární + a (sčítání a odčítání) Jsou-li oba operandy stejného typu, výsledek aritmetické operace je téhož typu Jsou-li operandy různého typu, operand typu int se implicitní konverzí převede na hodnotu typu double a výsledkem operace je hodnota typu double Výsledkem dělení operandů typu int je celá část podílu např. 7/3 je 2-7/3 je -2 Pro zbytek po dělení platí: x % y = x (x / y) * y např: 7%3 je 1; -7%3 je -1; 7%-3 je 1; -7%-3 je -1 speciální inkrementační a dekrementační operátory: ++x, x++, --x, x-- A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 38

39 Relační operátory Hodnoty všech jednoduchých typů jsou uspořádané a lze je porovnávat relačními operátory Budeme používat tyto relační operátory (priorita je menší než priorita aritmetických operátorů): >, <, >=, <= (větší než, menší než, větší nebo rovno, menší nebo rovno) ==,!= (rovná se, nerovná se) Výsledek relační operace je (true, když relace označená operátorem platí, false v opačném případě)(true se v "C" hodnotí dle výsledku 0 a false dle výsledku = 0. V "C" není typ logické proměnné. Jestliže při porovnáváníčíselných hodnot jsou operandy různého typu, operand typu int se implicitní konverzí převede na hodnotu typu double Relační operátory mají menší prioritu, než aritmetické operátory A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 39

40 Logické operátory Logické operátory jsou unární a binární unární! (negace) binární && resp. & (konjunkce, logický součin) binární resp. (disjunkce, nevýhradní logický součet, OR) binární ^ (disjunkce, výhradní logický součet, XOR) x y!x x && y x y x ^ y false false true false false false false true true false true true true false false false true true true true false true true false Negace má stejnou prioritu, jako změna znaménka, logický součin má nižší prioritu než relační operátory Operace && a se vyhodnocují zkráceným způsobem, tj. druhý operand se nevyhodnocuje, jestliže lze výsledek určit již z prvního operandu A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 40

41 Standardní knihovny (1) Standardní knihovny (ANSI C library Standard Library) : Vlastní jazyk C neobsahuje žádné prostředky pro vstup a výstup dat, složitější matematické operace, práci s řetězci, třídění, blokové přesuny dat v paměti, práci s datem a časem, komunikaci s operačním systémem,správu paměti pro dynamické přidělování, vyhodnocení běhových chyb (run-time errors) apod. Tyto a další funkce jsou však obsaženy ve standardních knihovnách (ANSI C Library) dodávaných s překladači jazyka C. Uživatel dostává k dispozici přeložený kód knihoven (který se připojuje linkuje k uživatelovu kódu) a hlavičkové soubory (headers) s prototypy funkcí, novými typy, makry a konstantami Hlavičkové soubory (obdoba interface v Javě) se připojují k uživatelovu kódu direktivou preprocesoru #include < >. Je zvykem, že hlavičkové soubory mají rozšíření *.h, např. stdio.h A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 41

42 Standardní knihovny (2) Standardní knihovny (ANSI C library Standard Library) pokrač: Standardní knihovny jsou rozděleny do následujících částí: (uvedeno pro ANSI C95): Vstup a výstup (formátovaný i neformátovaný) stdin.h Rozsahy čísel jednotlivých typů limits.h Matematické funkce stdlib.h math.h Zpracování běhových chyb (run-time errors) errno.h assert.h A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 42

43 Standardní knihovny (3) Standardní knihovny (ANSI C library Standard Library) pokrač: Standardní knihovny jsou rozděleny do následujících částí: (uvedeno pro ANSI C95) pokrač: Klasifikace znaků (typ char) ctype.h Práce s řetězci (string handling) string.h Internacionalizace (adaptace pro různé jazykové mutace) locale.h Vyhledávání a třídění stdlib.h Blokové přenosy dat v paměti string.h A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 43

44 Standardní knihovny (4) Standardní knihovny (ANSI C library Standard Library) pokrač: Standardní knihovny jsou rozděleny do následujících částí: (uvedeno pro ANSI C95) pokrač: Správa paměti (Dynamic Memory Management) stdlib.h Datum a čas time.h Komunikace s operačním systémem stdlib.h signal.h Nelokální skok (lokální je součástí jazyka, viz goto) setjump.h A8B14ADP Algoritmizace a programovaní -Jazyk C - výrazy 44

45 Algoritmizace a programování Jazyk C Jazyk C výrazy KONEC České vysoké učení technické Fakulta elektrotechnická

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Jazyk C výrazy České vysoké učení technické Fakulta elektrotechnická Ver.1.10 J. Zděnek 2015 Struktura programu (1) Program v C se skládá z následujících součástí: Příkazy

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

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

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

Java reprezentace dat, výrazy. A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické

Java reprezentace dat, výrazy. A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické Java reprezentace dat, výrazy A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické Dva základní přístupy k imperativnímu programování Strukturované procedurální Objektové V PR1

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

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

Ú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

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

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

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

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

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

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

Ú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

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

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

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

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

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

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

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

- 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

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

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

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

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

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

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů. Základní symboly - písmena A B C Y Z a b c y z - číslice 0 1 2 9 - speciální symboly + - * / =., < > = a další - klíčová slova and array begin case const a další Klíčová slova jsou chráněnými útvary,

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

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

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

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

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

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

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

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

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

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

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

Jak v Javě příkazy, operace a výrazy. BD6B36PJV 00 Fakulta elektrotechnická České vysoké učení technické

Jak v Javě příkazy, operace a výrazy. BD6B36PJV 00 Fakulta elektrotechnická České vysoké učení technické Jak v Javě příkazy, operace a výrazy BD6B36PJV 00 Fakulta elektrotechnická České vysoké učení technické Literály Konstanty Komentáře Přiřazovací příkaz Typové konverze Příkazy výstupu Formátovaný výstup

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

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

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

Čísla a číselné soustavy.

Čísla a číselné soustavy. Čísla a číselné soustavy. Polyadické soustavy. Převody mezi soustavami. Reprezentace čísel. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK.

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

Datové typy strana 29

Datové typy strana 29 Datové typy strana 29 3. Datové typy Jak již bylo uvedeno, Java je přísně typový jazyk, proto je vždy nutno uvést datový typ datového atributu, formálního parametru metody, návratové hodnoty metody nebo

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

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

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Řídicí struktury, standardní metody Problematika načítání pomocí Scanner Některé poznámky k příkazům Psaní kódu programu Metody třídy Math Obalové třídy primitivních datových

Více

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

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

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi) Programovací jazyk - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi) Odlišnosti implementace od normy - odchylky např.: nepovinná hlavička programu odlišná

Více

Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky -

Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky - Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky - Preprocesor je možné ovládat pomocí příkazů - řádky začínající

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

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

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

Architektury počítačů

Architektury počítačů Architektury počítačů IEEE754 České vysoké učení technické, Fakulta elektrotechnická A0M36APO Architektury počítačů Ver.1.20 2014 1 Fractional Binary Numbers (zlomková binární čísla / čísla v pevné řádové

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

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY Stručný úvod do programování v jazyce C 1.díl České vysoké učení technické Fakulta elektrotechnická A1B14MIS Mikroprocesory pro výkonové systémy 06 Ver.1.10 J. Zděnek,

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

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

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

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

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

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 Datové struktury Daniela Szturcová

Více

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky. PHP - úvod Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky. Klíčové pojmy: PHP, webový prohlížeč, HTTP, FTP Základní pojmy služba WWW = 1990 první prototyp serveru, od roku 1994

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

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

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu

Více

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

Struktura programu, proměnné, konstanty, výrazy v jazycích C a C#

Struktura programu, proměnné, konstanty, výrazy v jazycích C a C# Struktura programu, proměnné, konstanty, výrazy v jazycích C a C# Seznámit žáky se strukturou programu v jazycích C/C#, s klíčovými slovy jazyků C/C#, s psaním komentářů, se základními datovými typy, deklarací

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

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

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

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

Část I. Část 1 Základy programování v C. Přehled témat. Základy programování v C. Jazyk C

Část I. Část 1 Základy programování v C. Přehled témat. Základy programování v C. Jazyk C Přehled témat Základy programování v C Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 0 B0B36PRP Procedurální programování Část 1 Základy programování

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

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

NPRG030 Programování I, 2016/17 1 / :58:13

NPRG030 Programování I, 2016/17 1 / :58:13 NPRG030 Programování I, 2016/17 1 / 31 10. 10. 2016 10:58:13 Podmínka = něco, co JE, nebo NENÍ splněno typ Boolean hodnoty: TRUE pravda FALSE lež domluva (optimistická): FALSE < TRUE NPRG030 Programování

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

Reprezentace dat v informačních systémech. Jaroslav Šmarda

Reprezentace dat v informačních systémech. Jaroslav Šmarda Reprezentace dat v informačních systémech Jaroslav Šmarda Reprezentace dat v informačních systémech Reprezentace dat v počítači Datové typy Proměnná Uživatelské datové typy Datové struktury: pole, zásobník,

Více

int => unsigned int => long => unsigned long => float => double => long double - tj. bude-li:

int => unsigned int => long => unsigned long => float => double => long double - tj. bude-li: 13.4.2010 Typová konverze - změna jednoho datového typu na jiný - známe dva základní implicitní ("sama od sebe") a explicitní (výslovně vyžádána programátorem) - C je málo přísné na typové kontroly = dokáže

Více

NPRG030 Programování I, 2010/11

NPRG030 Programování I, 2010/11 Podmínka = něco, co JE, nebo NENÍ splněno typ Boolean hodnoty: TRUE pravda FALSE lež domluva (optimistická): FALSE < TRUE když X, Y jsou (číselné) výrazy, potom X = Y X Y X < Y X > Y X = Y jsou

Více

Jazyk C stručný přehled

Jazyk C stručný přehled Jazyk C stručný přehled J. Zděnek, 2004 Literatura: Herout,P.: Učebnice jazyka C. 3.vyd., Kopp, 2003 Herout,P.: Učebnice jazyka C. 2.díl, Kopp, 2002 Prinz,U.-Prinz,P.: C Pocket Reference. O Reilly, 2002

Více

Operátory. Základy programování 1 Tomáš Kühr

Operátory. Základy programování 1 Tomáš Kühr Operátory Základy programování 1 Tomáš Kühr Operátory a jejich vlastnosti Základní konstrukce (skoro) každého jazyka Z daných operandů vytvoří výsledek, který je možné dále využívat Arita udává počet operandů

Více

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

Operátory. Základy programování 1 Martin Kauer (Tomáš Kühr) Operátory Základy programování 1 Martin Kauer (Tomáš Kühr) Organizační poznámky Formátujte kód přehledně! Pomůžete sobě i mně. Spusťte si vaše programy a zkuste různé vstupy! Pokud program nedává správné

Více

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY Stručný úvod do programování v jazyce C 2.díl České vysoké učení technické Fakulta elektrotechnická A1B14MIS Mikroprocesory pro výkonové systémy 07 Ver.1.10 J. Zděnek,

Více

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

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

Více

Základy programování v C

Základy programování v C Základy programování v C Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 02 B0B36PRP Procedurální programování Jan Faigl, 2018 B0B36PRP Přednáška 02:

Více

Základy programování (IZP)

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

Více

Číselné soustavy. Ve světě počítačů se využívají tři základní soustavy:

Číselné soustavy. Ve světě počítačů se využívají tři základní soustavy: Číselné soustavy Ve světě počítačů se využívají tři základní soustavy: dekadická binární hexadecimální patří mezi soustavy poziční, tj. desítková hodnota každé číslice (znaku) závisí na její pozici vzhledem

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

Zápis programu v C a základní řídicí struktury

Zápis programu v C a základní řídicí struktury Zápis programu v C a základní řídicí struktury Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 03 B0B36PRP Procedurální programování Jan Faigl, 2017 B0B36PRP

Více

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LEXIKÁLNÍ ANALÝZA

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LEXIKÁLNÍ ANALÝZA PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LEXIKÁLNÍ ANALÝZA 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti LEXIKÁLNÍ ANALÝZA Kód ve vstupním jazyku Lexikální analyzátor

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

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

- 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