320 likes | 426 Views
A C++ nyelv. A C++ nyelv története. 1978 Kernigham és Ritchie „The C Programming Language” 1989 Bjarne Stroustrop (dán) C++ 1997 ANSI C++ szabvány 2002 C# (szi sarp) Microsoft. C++ fejlesztőeszköz. Code::Blocks 10.05 http://www.codeblocks.org/ downloads, download the binary release
E N D
A C++ nyelv története • 1978 Kernigham és Ritchie „The C Programming Language” • 1989 Bjarne Stroustrop (dán) C++ • 1997 ANSI C++ szabvány 2002 C# (szi sarp) Microsoft
C++ fejlesztőeszköz Code::Blocks 10.05 • http://www.codeblocks.org/ downloads, download the binary release • Windows felület: mingw • fordító: gcc 3.2 • cplusplus.com
Kezdetek • Management ablak • Szerkesztési ablak • Logs & others ablak • Start here ablakban: • Create new project • Console application, next • project név és munkakönyvtár megadása eredményfájl nevét ne bántsuk • GNU GCC compiler • management ablak main.cpp (dupla klikk) • Ékezetes betű probléma REGEDITHKEY_CURRENT_USERCONSOLEFACENAME: Lucida consoleÚj duplaszó: CODEPAGE: 1250 (decimális)
Ékezetes betük • Start menü > Futtatás: regedit • Most a HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage-en az OEMCP sor kulcs értékét át kell írni 1250-re, majd rebootolni. • Ha most elindítasz egy programot a Code::Blocks-ban, a bal felső sarokban lévő nyomógomb segítségével megnyitod a konzol menüjét, majd a "Tulajdonságok" menüpontban átállítod a betűtípust "Lucida Console"-ra. Utána a "Beállítások alkalmazása a jelenlegivel azonos című ablakokra" következik.(enélkül is megy) • Programban #include <windows.h> … system(”chcp_1252”)
Hello world! • Build and run (F9) • Ha hibaüzenet van a build log ablakban(nem találja a hibafordítót) Settings\compiler and debugger\toolchain executable Auto-detect • exe fájl is lesz. (viszonylag nagy)
Beírási szabályok • Szóköz és üres sor szabadon • Kulcsszavak kötelezően kisbetűsek • Az utasítások végén ; szerepel • Megjegyzések • 1 sor // • több sor /* */
A C++ program alapszerkezete /* C++ alapprogram*/ #include <iostream> using namespace std; main() { cout<<"Szia 11. C!"<<endl; system("PAUSE"); return 0; } F9 – Fordítás és futtatás
alap.cpp #include <iostream> //fejállomány using namespace std; //névtér main()// főprogram { //változódeklarációk //utasítások system("PAUSE"); //várakozás return 0; }
Változók A változókat használat előtt deklarálni kell! Változónevek: • csak betű, számjegy és _ karakter lehet benne • betűvel kell kezdődnie • kis és nagybetű különböző • hossza max. 32 (implementációtól függ) • deklaráláskor kezdőértéket is kaphat
Változódeklaráció • Formája (szintaxisa) • típusneve azonosító; vagy • típusneve azon1, azon2, azon3; vagy • típusneve azon1=kezdőérték;
Változótípusok (alap) • egész • int i; • int i, j, k; • int i=10; • valós (lebegőpontos) • float f; • float f,h,x; • float g=1.45;
Változótípusok (alap) • karakter • char c, d; • c=’A’; • karakterlánc • string s; • s=”szöveg”; //string fejállomány kell hozzá
Kiírás a képernyőre cout<< pl. cout<<a; cout<<”A keresett szám:”<<a; cout<<”x= ”<<x<<endl; Beolvasás billentyűzetről cin>>változónév; pl.cout<<"Kérem az első számot:"; cin>>a; Kiírás/Beolvasás
1.cpp 2.cpp
Próbáljuk ki az értékadó utasítást! int a,b,c; a=5; b=3; a=a+2; b=a; c=a+b; 3.cpp
Próbáljuk ki az értékadó utasítást! int a,b,c; a=5; b=3; a=a+2; b=a; c=a+b; 3.cpp
4.cpp 5.cpp 6.cpp
Írj programot, amely először egy bekért hőmérsékleti értéket °C-ból °F fokba, és vissza is! (képlet a neten!?) °C = (°F - 32) · 5/9 ill. °F = °C · 9/5 + 32
Műveletek, operátorok • Alapműveletek: + - * / • Maradék: % pl. 11%4 = 3 • Logikai operátorok: • Logikai tagadás: ! pl. !1=0 • Egyenlőségvizsgálat: == != pl. 25==25 1 (igaz) 27!=27 0 (hamis)
Operátorok • Relációk < > <= >= pl. 5>8 0 (hamis) 2<=2 1 (igaz) • logikai ÉS, VAGY: && || pl. 1&&0 0 (hamis) 1 | | 0 1 (igaz)
Értékadó operátorok • a=érték a=kifejezés • Tömör forma mindkettő működik, de gyorsabb a tömör
Léptető operátorok • ++ -- pl. a=a+1 helyett a++ a=a-1 helyett a-- Cpp-ben az a++ a-- alak szokásos
Precedencia • A műveletek elvégzési sorrendje (prioritás) () ! * / % + - < > <= >= == != && | | = += -= ... balról jobbra
Szelekció (feltételes utasítás) • Alakjai • if (feltétel) ut1; (egyágú) • if (feltétel) ut1; (kétágú) else ut2; • A feltétel kötelezően zárójelben van • Ha ut1 vagy ut2 több utasításból áll, akkor blokkba kell tenni { }
Példa feltételes utasításra • 1. if (a>b) { cs=a; a=b; b=cs; } • 2. int x=2; if (x==3) x+=1; = nem jó, mert az értékadás!
7.cpp 8.cpp
floor(x) A függvény a legnagyobb olyan egész számmal tér vissza, amely nem nagyobb a x értéknél 9.cpp 10.cpp 11.cpp 11per1.cpp
Többágú elágazás1 • switch (a majdnem többágú) Akkor használjuk, ha egy egész kifejezés értékét több konstanssal kell összehasonlítani. switch (kifejezés) { case konstans1: utasítások1; break; case konstans2: utasítások2; break; . default: utasítások } • /*break nélkül nagyon sötét, defaulthoz is kellene, mert azt nem kötelező utolsónak írni*/ • /*nem kell utasítászárójel*/
Többágú elágazás2 • else if (az igazi többágú) Az else ágban újabb if szerepel if (kifejezés) utasítás else if (kifejezés) utasítás else if (kifejezés) utasítás [else utasítás]
12.cpp 12moge.cpp 12mogeswitch.cpp