Pénzügyi algoritmusok A C++ programozás alapjai Az Integrált Fejlesztői Környezet C++ alapok
Az Integrált Fejlesztői Környezet Visual Studio 2013 Community Edition
Kitekintés: fordítás Preprocesszor Fordító (Compiler) Linker Lehetővé teszi a kód előzetes feldolgozását, generálását, konfigurálását Az egyes forrásfájlokból gépi kódot generál, a többi fájlra hivatkozó részeket üresen hagyva A fordító által generált részeket összeköti, előállítva a végső futtatható állományt
C++ alapok
Hello World! #include <iostream> using namespace std; int main() cout << "Hello world!" << endl; return 0;
Hello World! #include <iostream> using namespace std; int main() Utasítás (statement) cout << "Hello world!" << endl; return 0; Az utasításokat pontosvessző zárja
Hello World! #include <iostream> using namespace std; int (kimeneti main() folyam) Character OUTput Idézőjelek között szöveges konstans END of Line cout << "Hello world!" << endl; return 0; Insert operátor Insert operátor
Hello World! #include A program fő függvénye <iostream> using namespace std; int main() cout << "Hello world!" << endl; return 0;
Hello World! #include A függvény fejléce <iostream> using namespace std; A függvény törzse int main() cout << "Hello world!" << endl; return 0;
Hello World! #include <iostream> using namespace std; A függvény visszatérési értéke (eredménye) int main() A függvény paraméterei (most üres) cout << "Hello world!" << endl; A függvény neve return 0;
Hello World! #include <iostream> using namespace std; A program belépési pontja, a kapcsos zárójelek int main() (brace) közötti kód fut le az.exe indításakor cout << "Hello world!" << endl; return 0;
Hello World! #include <iostream> using namespace std; int main() cout << "Hello world!" << endl; return 0; return : vége a fő függvénynek (programnak) 0 : nem történt hiba (egyezményes alapon)
Hello World! Kész programrészletek beemelése #include <iostream> using namespace std; <iostream>: beépített programkönyvtár - std::cout - std::cin - std::endl -... int main() cout << "Hello world!" << endl; return 0;
Kitekintés: Nevek és Névterek A programkódban mindennek neve van Típusok, függvények, stb. Lehet két különböző dolognak ugyanaz a neve? A teljes név a névterekből és a saját névből áll: corvinus::derivative::helloworld::myfunction névtér névtér névtér függvénynév corvinus derivative helloworld MyFunction homework MyFunction
Hello World! #include <iostream> using namespace std; int main() Teljes névtér beemelése, hogy ne kelljen kiírni a teljes nevet: cout << "Hello world!" << endl; std::cout helyett cout írható return 0;
Utasítások és utasításblokkok Program: utasítások sorozata Utasítás (statement): (Többnyire) egyetlen parancs Pontosvesszővel zárva! return 0; Utasításblokk (code block): Több utasítás együttese Kapcsos zárójelek között cout << "Bye!"; return 0;
Változók Változó (variable): Egy névvel ellátott memóriaszelet Adatot tárolhat, ami futás közben változhat Típusa van A foglalt memória mérete és használata a típustól függ Változók deklarálása: A változó típusa, neve, esetleg kezdeti értéke Pl. int a = 1; A változó a deklarálás után használható De csak az adott utasításblokkon vagy függvényen belül A main függvényen kívül deklarált változó mindenhol használható ( globális változó )
Típusok Karakter típusok Character types Egész típusok (előjeles) Integer types (signed) Egész típusok (előjel nélküli) Integer types (unsigned) Lebegőpontos típusok Floating-point types Logikai (Bool) típus Boolean type Üres típus Void type char char16_t char32_t wchar_t signed char signed short int signed int signed long int signed long long int unsigned char unsigned short int unsigned int unsigned long int unsigned long long int float double long double bool void Exactly one byte in size. At least 8 bits. Not smaller than char. At least 16 bits. Not smaller than char16_t. At least 32 bits. Can represent the largest supported character set. Same size as char. At least 8 bits. Not smaller than char. At least 16 bits. Not smaller than short. At least 16 bits. Not smaller than int. At least 32 bits. Not smaller than long. At least 64 bits. (same size as their signed counterparts) Precision not less than float. Precision not less than double. no storage
Konstansok Literál (literal): A kódban megjelenő szövegek (idézőjelben) és számok Preprocesszor szimbólum: Fordítás előtt a definiált értékre cserélődnek Pl. #define MAX 10 Ahol a kódban MAX szerepel, ott a fordító 10-et fog látni. Konstans változó (constant variable): Bármilyen változó, ha a deklaráció elé a const módosítót írjuk A változó értéke az inicializálás után nem módosítható
Kifejezések Kifejezés (expression): Minden, ami kiértékelhető eredményt ad Tehát egyetlen változó vagy konstans is A kifejezés önmagában is utasítás money * (1 + rate) De leggyakrabban utasítások része Az összetett kifejezések operátorokat tartalmaznak Egy, kettő vagy három kifejezés eredményéből előállítanak egy új eredményt Kiértékelésük sorrendjét a precedencia határozza meg Értékadó (assignment) operátor bal oldalán csak változó állhat
Operátorok (kivonat) Level Precedence group Operator Description Grouping 1 Scope :: scope qualifier Left-to-right 2 Postfix (unary) ++ -- postfix increment / decrement () functional forms Left-to-right ++ -- prefix increment / decrement + - unary prefix 3 Prefix (unary) & * reference / dereference new delete allocation / deallocation Right-to-left sizeof parameter pack (type) C-style type-casting 5 Arithmetic: scaling * / % multiply, divide, modulo Left-to-right 6 Arithmetic: addition + - addition, subtraction Left-to-right 8 Relational < > <= >= comparison operators Left-to-right 9 Equality ==!= equality / inequality Left-to-right 13 Conjunction && logical AND Left-to-right 14 Disjunction logical OR Left-to-right 15 Assignment-level = *= /= %= += -= assignment / compound assignment expressions?: conditional operator Right-to-left 16 Sequencing, comma separator Left-to-right
Elágazás (branching) Elágazás (branching): Döntési pontok a kódban Logikai változókkal vagy kifejezésekkel Legegyszerűbb formája: if szerkezet A következő utasítás vagy blokk akkor fut le, ha a feltétel igaz Hamis érték esetén az opcionális else kulcsszó utáni utasítás vagy blokk fut le Több feltétel is kiértékelhető az else if összetétellel if (expr) stmt; else if (expr) stmt; else stmt;... stmt;
While ciklus Elöltesztelő ciklus: A következő utasítás vagy blokk akkor fut le, ha a feltétel igaz A végrehajtás után visszatérünk a ciklus elejére while (expr) stmt;... stmt;
For ciklus Három részből áll Inicializálás (utasítás) Feltétel kiértékelés (logikai kifejezés) Ciklus végi utasítás (utasítás) Belépéskor megtörténik az inicializálás Minden végrehajtás előtt kiértékelődik a feltétel A ciklus végén végrehajtódik az utasítás, majd visszatérünk a ciklus elejére for (stmt; expr; stmt)...
Do While ciklus Hátultesztelő ciklus: A következő utasítás vagy blokk mindenképp lefut egyszer A végrehajtás után akkor térünk vissza a ciklus elejére, ha a feltétel igaz do stmt;... stmt; while (expr);
Köszönöm a figyelmet!