Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
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
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.