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

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

Programování v jazyce C++

Podobné prezentace


Prezentace na téma: "Programování v jazyce C++"— Transkript prezentace:

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

2 Představení jazyka C Programovací jazyk nízké úrovně:
pracuje pouze se základními typy, 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, Velice úzce spjat s operačním systémem UNIX, Existuje mnoho variant jazyka C (K&R, ANSI), my budeme používat ANSI C.

3 Představení jazyka C++
Programovací jazyk vyšší úrovně: podporuje objektově orientované programování (OOP), Není čistě objektový: podporuje i procedurální programování, 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#

4 Historie jazyků C a C++ 1972 – 1973 – D. Ritchie navrhl a implementoval C na počítači DEC, 1978 – D. Ritchie a B. Kernighan vydali knihu Programming Language C, 1983 – B. Stroustrup – C with Classes, 1985 – B. Stroustrup – C++, 1989 – ANSI C, 1990 – 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, 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, Debugger – ladící program, slouží k odladění chyb.

6 Překladač gcc Slouží ke kompilaci zdrojových kódů v C,
Řádkově orientovaný překladač, Součást snad každé linuxové distribuce, Použití: gcc program.c, 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,

7 Překladač g++ 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í, 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, -c: pouze přeložit, bez linkování, -g: vytvořit informace pro debugger, -lknihovna: další knihovna pro linkování, -ansi: ctí normu ANSI 89, -pedantic: velmi přísná kontrola souladu s normou, -Wvarování: správa warningů, další informace lze získat příkazem man.

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

10 Debugger gdb Je to opět řádkově orientovaný program.
Slouží pro odladění chyb v programu. 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č. Použití: gdb program. Činnost je řízena pomocí příkazů.

11 Příkazy debuggeru gdb run parametry: spouští běh programu
break číslo_řádku: nastaví breakpoint delete číslo_breaku: zruší daný breakpoint continue: pokračuje až do dalšího přerušení next: provede 1 řádek programu 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í help: nápověda quit: hádejte :-)

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

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

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

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

16 Speciální a netisknutelné znaky
speciální 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:
short = signed short = signed short int int = signed = signed int long = long int = signed long = signed long int Číselné bez znaménka: unsigned short = unsigned short int unsigned = unsigned int unsigned long = unsigned long int

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

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

20 Řetězce 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.

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

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

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

24 Další datové typy pole, pointer, reference (pouze v C++),
třída (pouze v C++), 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 typedef definice_typu nazev_typu; 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: [pametova_trida] [kvalifikator] typ deklaratory ; 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: const – konstantní objekt, volatile – proměnná může být změněna mimo náš program, 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,
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, Jsou ukládány na zásobníku (není-li uvedeno jinak).

29 A víc už Vám dnes neřeknu!
Děkuji za pozornost


Stáhnout ppt "Programování v jazyce C++"

Podobné prezentace


Reklamy Google