Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Programování v jazyce C++ Představení jazyků C a C++

Podobné prezentace


Prezentace na téma: "Programování v jazyce C++ Představení jazyků C a C++"— Transkript prezentace:

1 Programování v jazyce C++ Představení jazyků C a C++

2 Programovací jazyk nízké úrovně: Programovací jazyk nízké úrovně: – pracuje pouze se základními typy, Strukturovaný programovací jazyk: Strukturovaný programovací jazyk: – umožňuje strukturovat kód do bloků a funkcí, Není vázán na konkrétní operační systém nebo stroj, Není vázán na konkrétní operační systém nebo stroj, Velice úzce spjat s operačním systémem UNIX, Velice úzce spjat s operačním systémem UNIX, Existuje mnoho variant jazyka C (K&R, ANSI), Existuje mnoho variant jazyka C (K&R, ANSI), – my budeme používat ANSI C. Představení jazyka C

3 Představení jazyka C++ Programovací jazyk vyšší úrovně: Programovací jazyk vyšší úrovně: – podporuje objektově orientované programování (OOP), Není čistě objektový: Není čistě objektový: – podporuje i procedurální programování, Není též pouhým rozšířením jazyka C: Není též pouhým rozšířením jazyka C: – některé záležitosti řeší jinak, V pozdější době se z něho vyvinul jazyk C# V pozdější době se z něho vyvinul jazyk C#

4 Historie jazyků C a C – 1973 – D. Ritchie navrhl a implementoval C na počítači DEC, 1972 – 1973 – D. Ritchie navrhl a implementoval C na počítači DEC, 1978 – D. Ritchie a B. Kernighan vydali knihu Programming Language C, 1978 – D. Ritchie a B. Kernighan vydali knihu Programming Language C, 1983 – B. Stroustrup – C with Classes, 1983 – B. Stroustrup – C with Classes, 1985 – B. Stroustrup – C++, 1985 – B. Stroustrup – C++, 1989 – ANSI C, 1989 – ANSI C, 1990 – standard adoptován organizací ISO – standard adoptován organizací ISO.

5 Způsob zpracování programu Preprocesor – zpracuje program před předáním překladači, výstupem je textový soubor, Preprocesor – zpracuje program před předáním překladači, výstupem je textový soubor, Překladač – překládá soubor do relativního objektového kódu, výstupem je soubor.obj, Překladač – překládá soubor do relativního objektového kódu, výstupem je soubor.obj, Linker – sestavovací program, který přiřadí relativním adresám proměnných absolutní, výstupem je spustitelný soubor, Linker – sestavovací program, který přiřadí relativním adresám proměnných absolutní, výstupem je spustitelný soubor, Debugger – ladící program, slouží k odladění chyb. Debugger – ladící program, slouží k odladění chyb.

6 Překladač gcc Slouží ke kompilaci zdrojových kódů v C, Slouží ke kompilaci zdrojových kódů v C, Řádkově orientovaný překladač, Řádkově orientovaný překladač, Součást snad každé linuxové distribuce, Součást snad každé linuxové distribuce, Použití: gcc program.c, Použití: gcc program.c, Takto vytvoří binárku s názvem a.out, Takto vytvoří binárku s názvem a.out, Chcete-li změnit jméno souboru nebo chování překladače, musíte použít parametry z příkazové řádky, Chcete-li změnit jméno souboru nebo chování překladače, musíte použít parametry z příkazové řádky,

7 Překladač g++ slouží ke kompilaci zdrojových kódů v C i C++, slouží ke kompilaci zdrojových kódů v C i C++, je taktéž řádkově orientovaný a je obsažen ve většině linuxových distribucí, je taktéž řádkově orientovaný a je obsažen ve většině linuxových distribucí, při zavolání bez parametrů taktéž vytvoří spustitelný soubor a.out při zavolání bez parametrů taktéž vytvoří spustitelný soubor a.out

8 Parametry překladačů gcc a g++ -o soubor: název spustitelné binárky, -o soubor: název spustitelné binárky, -c : pouze přeložit, bez linkování, -c : pouze přeložit, bez linkování, -g : vytvořit informace pro debugger, -g : vytvořit informace pro debugger, -lknihovna : další knihovna pro linkování, -lknihovna : další knihovna pro linkování, -ansi : ctí normu ANSI 89, -ansi : ctí normu ANSI 89, -pedantic : velmi přísná kontrola souladu s normou, -pedantic : velmi přísná kontrola souladu s normou, -Wvarování : správa warningů, -Wvarování : správa warningů, další informace lze získat příkazem man. další informace lze získat příkazem man.

9 Používané parametry v X36PJC gcc -ansi -pedantic -o program program.c, gcc -ansi -pedantic -o program program.c, g++ -Wall -Wno-long-long g++ -Wall -Wno-long-long -pedantic -o program program.cpp. -pedantic -o program program.cpp.

10 Debugger gdb Je to opět řádkově orientovaný program. Je to opět řádkově orientovaný program. Slouží pro odladění chyb v programu. Slouží pro odladění chyb v programu. Odladí ale pouze chyby vzniklé za běhu programu, nikoliv chyby ve zdrojovém kódu. Odladí ale pouze chyby vzniklé za běhu programu, nikoliv chyby ve zdrojovém kódu. Pomocí něho můžete najít, kde program spadl a případně i proč. Pomocí něho můžete najít, kde program spadl a případně i proč. Použití: gdb program. Použití: gdb program. Činnost je řízena pomocí příkazů. Činnost je řízena pomocí příkazů.

11 Příkazy debuggeru gdb run parametry : spouští běh programu run parametry : spouští běh programu break číslo_řádku : nastaví breakpoint break číslo_řádku : nastaví breakpoint delete číslo_breaku : zruší daný breakpoint delete číslo_breaku : zruší daný breakpoint continue : pokračuje až do dalšího přerušení continue : pokračuje až do dalšího přerušení next : provede 1 řádek programu next : provede 1 řádek programu step : při volání funkce skončí na jejím začátku step : při volání funkce skončí na jejím začátku display výraz : vypíše hodnotu výrazu při každém přerušení display výraz : vypíše hodnotu výrazu při každém přerušení help : nápověda help : nápověda quit : hádejte :-) quit : hádejte :-)

12 Hello World v C++ #include #include int main(void) { int a = 0; printf("Hello World\n"); printf("%d", a); return 0; }

13 Hello World v C #include #include using namespace std; int main(void) { int a = 0; int a = 0; cout << "Hello World" << endl; cout << "Hello World" << endl; cout << a << endl; cout << a << endl; return 0; return 0;}

14 Lexikální elementy I identifikátory: identifikátory: – malá a velká písmena a podtržítko, klíčová slova: klíčová slova: – if, else, while, for, … – vždy malými písmeny, operátory: operátory: – {}, (), +, -, *, /, %, … celá čísla: celá čísla: – 1, -5, 065, 0x12, 0X6F, 123L, l

15 Lexikální elementy II desetinná čísla: desetinná čísla: – 7.8,.4, 127., 5.97e7, -7E8,.8 znaky: znaky: – ’a’, ’t’, 97, ’\n’ řetězce: řetězce: – "tohle je řetězec" – reprezentovány jako posloupnost zakončená 0. komentáře: komentáře: – /* */, // (norma ansi uznává jen první)

16 Speciální a netisknutelné znaky speciální znaky: speciální znaky: – \", \’, \?, \\, netisknutelné znaky: netisknutelné znaky: – \n – nový řádek, – \r – návrat kurzoru, – \t – tabulátor, – \a – píp, – \0 – konec řetězce.

17 Celočíselné typy Číselné se znaménkem: Číselné se znaménkem: – short = signed short = signed short int – int = signed = signed int – long = long int = signed long = signed long int Čís elné bez znaménka: Čís elné bez znaménka: – unsigned short = unsigned short int – unsigned= unsigned int – unsigned long= unsigned long int

18 Reálné typy float, float, double, double, long double, long double, Norma požaduje, aby platilo float <= double <= long double. Norma požaduje, aby platilo float <= double <= long double. Pohyblivá řádová čárka: Pohyblivá řádová čárka: – znaménko, – mantisa, – exponent.

19 Logický typ V C neexistuje typ pro reprezentaci logických hodnot: V C neexistuje typ pro reprezentaci logických hodnot: – 0 nebo ““ reprezentují FALSE, – cokoliv jiného pak TRUE. V C++ existuje typ bool V C++ existuje typ bool

20 Řetězce V C neexistuje typ pro reprezentaci textových řetězců: V C neexistuje typ pro reprezentaci textových řetězců: – řetězce jsou reprezentovány pomocí pole charů ukončeného znakem ’\0’. V C++ existuje typ string. V C++ existuje typ string.

21 Výčtový typ Příklad: Příklad: – enum Color {Red, Blue, Green}; Literály jsou synonyma číselných hodnot od nuly číslovaných v daném pořadí, Literály jsou synonyma číselných hodnot od nuly číslovaných v daném pořadí, Hodnotu možno nastavit explicitně: Hodnotu možno nastavit explicitně: – enum Masky {Nula, Jedna, Dva, Ctyri = 4}; Proměnné jsou reprezentovány stejně jako int. Proměnné jsou reprezentovány stejně jako int.

22 Struktura Složený nehomogenní datový typ. Složený nehomogenní datový typ. Jednotlivé položky jsou uloženy za sebou. Jednotlivé položky jsou uloženy za sebou. Velikost struktury je dána součtem velikostí dílčích hodnot. Velikost struktury je dána součtem velikostí dílčích hodnot. Vytvoření nové struktury: Vytvoření nové struktury: – struct jmeno {jednotlive polozky} promenna; Další proměnné se deklarují takto: Další proměnné se deklarují takto: – struct zlomek a, b;

23 Union Složený nehomogenní datový typ. Složený nehomogenní datový typ. Jednotlivé položky jsou uloženy přes sebe. Jednotlivé položky jsou uloženy přes sebe. Velikost struktury je dána velikostí největší dílčí položky. Velikost struktury je dána velikostí největší dílčí položky. Vytvoření nové struktury: Vytvoření nové struktury: – union jmeno {jednotlive polozky} promenna; Další proměnné se deklarují stejně jako u struktury. Další proměnné se deklarují stejně jako u struktury.

24 Další datové typy pole, pole, pointer, pointer, reference (pouze v C++), reference (pouze v C++), třída (pouze v C++), třída (pouze v C++), o nich více v průběhu semestru. o nich více v průběhu semestru.

25 Vytvoření vlastních datových typů K vytvoření vlastních datových typů slouží operátor typedef K vytvoření vlastních datových typů slouží operátor typedef – typedef definice_typu nazev_typu; Příklady: Příklady: – typedef struct{int cit, int jm} zlomek; – typedef enum {bila, modra, cervena} barva; – apod.

26 Deklarace proměnných I. Deklarace proměnných vypadá takto: Deklarace proměnných vypadá takto: – [pametova_trida] [kvalifikator] typ deklaratory ; Paměťová třída v deklaraci proměnné určuje způsob přidělení paměti: Paměťová třída v deklaraci proměnné určuje způsob přidělení paměti: – auto – dynamické přidělení paměti na zásobníku, – register – proměnná v registru, – static – statické přidělení paměti resp. lokální v souboru, – extern – bez přidělení paměti.

27 Deklarace proměnných II. Kvalifikátor udává další vlastnosti deklarovaného objektu: Kvalifikátor udává další vlastnosti deklarovaného objektu: – const – konstantní objekt, – volatile – proměnná může být změněna mimo náš program, Specifikace typu: Specifikace typu: – void – prázdná hodnota, – označení aritmetického typu – popis výčtového typu, struktury, sjednocení nebo třídy – identifikátor typu

28 Platnost proměnných Globální proměnné platí v celém souboru, Globální proměnné platí v celém souboru, – Je-li třeba sdílet proměnnou mezi více soubory, stačí ji v jednom souboru definovat jako externí. – Jsou ukládány staticky (není-li uvedeno jinak), Lokální proměnné platí pouze v daném bloku, Lokální proměnné platí pouze v daném bloku, – Jsou ukládány na zásobníku (není-li uvedeno jinak).

29 DĚKUJI ZA POZORNOST A víc už Vám dnes neřeknu!


Stáhnout ppt "Programování v jazyce C++ Představení jazyků C a C++"

Podobné prezentace


Reklamy Google