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 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_USER CONSOLEFACENAME: 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 { //változódeklarációk system("PAUSE"); //várakozás } #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; 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á
Néhány típus és értékkészlete Típus neve Érték bájt P char -128..127 1 unsigned char 0..255 int -32768..32767 2 unsigned int 0..65535 long int -2 mrd – 2mrd 4 unsigned l i 0.. 4 mrd float 3.4e-38..3.8e+38 6 double 1.7e-308..1.7e+308 8 15 long double 3.4e-4932..3.4e+4932 10 19
Kiírás/Beolvasás 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;
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 Hagyományos forma Tömör forma a=a+b a+=b a=a-b a-=b a=a*b a*=b a=a/b a/=b
Léptető operátorok ++ -- Cpp-ben az a++ a-- alak szokásos ++ -- 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) [else utasítás]
12.cpp 12moge.cpp 12mogeswitch.cpp