C MRNKI SZEMMEL Hello Vilg include stdafx h

  • Slides: 55
Download presentation
C++ MÉRNÖKI SZEMMEL

C++ MÉRNÖKI SZEMMEL

Hello Világ • #include "stdafx. h" • #include <iostream> • int _tmain(int argc, _TCHAR*

Hello Világ • #include "stdafx. h" • #include <iostream> • int _tmain(int argc, _TCHAR* argv[]) • { • std: : cout << "Hello világ! n"; • getchar(); • return 0; • }

 • std: : cout << "Hello világ Szamolni fogunk ! 1 +1 "

• std: : cout << "Hello világ Szamolni fogunk ! 1 +1 " <<1 +1 ; • std: : cout << "Hello világ Szamolni fogunk ! 1123 +1432 = " << 1123 +1432 <<std: : endl; • std: : cout << "Hello világ Szamolni fogunk ! 1123 -1432 = " << 1123 -1432 <<std: : endl ; • std: : cout << "Hello világ Szamolni fogunk ! 1123 *1432 = " << 1123 *1432 <<std: : endl;

Beolvassuk és kiírjuk a számot • int a; • std: : cout << "Hello

Beolvassuk és kiírjuk a számot • int a; • std: : cout << "Hello világ Szamolni fogunk !" << std: : endl; • std: : cout << "Kerem az elso szamot" ; • std: : cin >>a; • std: : cout << "Tehat az elso szam" << a ; • std: : cin. sync();

Változó fogalma • Változó: • Név, Típus, Érték , Memóriában elfoglalt helye • Pl

Változó fogalma • Változó: • Név, Típus, Érték , Memóriában elfoglalt helye • Pl int a; – Neve: a – Típusa: egész – Értéke : bizonytalan – Valahol van

Egész összeadás, kivonás stb • std: : cout << "Hello világ Szamolni fogunk !"

Egész összeadás, kivonás stb • std: : cout << "Hello világ Szamolni fogunk !" << std: : endl; • std: : cout << "Kerem az elso szamot" ; • std: : cin >>a; • std: : cout << "Kerem a masodik szamot" ; • std: : cin >>b; • • • std: : cout << "Tehat az osszegt " << a+b<< std: : endl; ; std: : cout << "Tehat az kulonbsegt " << a-b << std: : endl; ; std: : cout << "Tehat az szorzatt " << a*b << std: : endl; ; std: : cout << "Tehat a hanyadost " << a/b << std: : endl; ; std: : cout << "Tehat a maradek t" << a % b << std: : endl; ;

Lebegőpontos számok • Olvassunk be két valós számot 1. Számoljuk ki az összeget, különbséget,

Lebegőpontos számok • Olvassunk be két valós számot 1. Számoljuk ki az összeget, különbséget, szorzatot hányadost!

Konstansok • const float PI =3. 1415; • PI =3. 1415926535 // HIBA fordítási

Konstansok • const float PI =3. 1415; • PI =3. 1415926535 // HIBA fordítási

Összetett kifejezések • z=x=y=a+b; 1. Írjunk programot ami beolvassa a, b-t kiszámolja a kifejezést.

Összetett kifejezések • z=x=y=a+b; 1. Írjunk programot ami beolvassa a, b-t kiszámolja a kifejezést. Írjuk ki x, y, z értékét • X++, ++x , x--, --x óvatosan mert a kiértékelés nem biztos hogy jó sorrendben megy

Elágazás • int x, y, z; x=0; • if (x==0) • • • {std:

Elágazás • int x, y, z; x=0; • if (x==0) • • • {std: : cout << "x nullan"; } else {std: : cout << "nem nullan"; } x=0; • if (23) • std: : cout << "x nem nullan"; • else • std: : cout << "x nullan";

Elágazás • • • if (feltétel) {} else {} a<b, >, ==, != Feltétel

Elágazás • • • if (feltétel) {} else {} a<b, >, ==, != Feltétel

Kifejezések 1 folyt • x=1; • y=++x; • std: : cout << "x= "

Kifejezések 1 folyt • x=1; • y=++x; • std: : cout << "x= " << x << " y = ++x" <<y <<std: : endl; • x=1; • y=x++; • std: : cout << "x =" << x <<" y =x++ utan y= " <<y <<std: : endl; • getchar(); return 0;

Bonyolult kifejezés • c = ++a+--b+c++-a*-c--+--a;

Bonyolult kifejezés • c = ++a+--b+c++-a*-c--+--a;

Függvények 2 (folyt ) • int _tmain(int argc, _TCHAR* argv[]) • { • int

Függvények 2 (folyt ) • int _tmain(int argc, _TCHAR* argv[]) • { • int x=0, y=1; • cout << " csere elott x = " << x << " y= " << y<< endl; • csere(x, y); • • cout << " csere utan x = " << x << " y= " << y; getchar(); return 0; }

Változók mérete • std: : cout << "short int merete t" << sizeof(short) <<

Változók mérete • std: : cout << "short int merete t" << sizeof(short) << "byte"<<std: : endl; • std: : cout << "int merete tt" << sizeof(int)<< "byten"; • std: : cout << "long int merete t" << sizeof(long)<< "byten"; • • std: : cout << "float merete tt" << sizeof(float)<< "byten"; std: : cout << "double merete tt" << sizeof(double)<< "byten"; std: : cout << "char merete tt" << sizeof(char)<< "byten"; std: : cout << "bool merete tt" << sizeof(bool)<< "byten"; • getchar();

Kifejezések 1 • #include <math. h> • const float PI =3. 1415; • •

Kifejezések 1 • #include <math. h> • const float PI =3. 1415; • • • const int MAX =100; 3. 2; int a=10 int b =20 int x, y, z; • z=x=y=a+b; • std: : cout << "x= " << x<< " y= " <<y <<" z = " <<z <<std: : endl;

hibák • • • int a=1; if (a=13) FONTOS (a==13) lett volna a helyes

hibák • • • int a=1; if (a=13) FONTOS (a==13) lett volna a helyes std: : cout << " igaz"; else std: : cout << " hamis";

Reláció helyes kódolása • • • if (13=a) // ezért már szól (13==a) lett

Reláció helyes kódolása • • • if (13=a) // ezért már szól (13==a) lett volna a helyes std: : cout << " igaz"; else std: : cout << " hamis"; //masodik gyak eddig

Függvények 1 • int Add(int x, int y) • { return x+y ; }

Függvények 1 • int Add(int x, int y) • { return x+y ; } • int _tmain(int argc, _TCHAR* argv[]) • { int a, b; • std: : cin >>a; • std: : cin >>b; • std: : cin. sync(); • getchar(); • std: : cout << a << " + " << b << " az egyenlo "<< Add(a, b); • getchar(); return 0; • }

Függvények 2 • using namespace std; • void csere( int& x, int&y) • {

Függvények 2 • using namespace std; • void csere( int& x, int&y) • { int z =x; • x=y; • y=z; • }

Logikai operátorok • • Logikai kifejezések összekapcsolása ÉS && if ((x==10) && (y>100) )

Logikai operátorok • • Logikai kifejezések összekapcsolása ÉS && if ((x==10) && (y>100) ) {} • Vagy || (alt w)

Ciklusok • while • do while • for()

Ciklusok • while • do while • for()

while ciklus • • while (felt) { utasitások } int i=0; while ( i<10)

while ciklus • • while (felt) { utasitások } int i=0; while ( i<10) {i++; std: : cout << i; }

do while ciklus • • • do while (felt) int j =0; do {

do while ciklus • • • do while (felt) int j =0; do { j++; std: : cout << j; } while (j <20); Feladat: 147 től -342 ig 13 asával kiírni a számokat

For ciklus • for(inicializáció; feltételvizsgálat; léptetés) • { • } • for (int i

For ciklus • for(inicializáció; feltételvizsgálat; léptetés) • { • } • for (int i =1; i<10; i++) • { std: : cout << i << ” ”; • }

Continue, break • Continue : ugorj vissza a ciklusfejhez • Break : azonnal hagyd

Continue, break • Continue : ugorj vissza a ciklusfejhez • Break : azonnal hagyd el a ciklust

Összetett for, continue val • • for (int i =1, k=10; i<10; i++, k=k+2)

Összetett for, continue val • • for (int i =1, k=10; i<10; i++, k=k+2) { if ( (i+k) % 2==0 ) continue; std: : cout << i << " " << k; }

While (1) break-el • • float S =210; while (1) {s =s/3. 21; std:

While (1) break-el • • float S =210; while (1) {s =s/3. 21; std: : cout << s << " " ; if (s < 1) break; };

Összetett ciklusok • && • || használata • for (int i =1, k=10; i<10;

Összetett ciklusok • && • || használata • for (int i =1, k=10; i<10; i++, k=k+2) • { std: : cout << i << " " << k; • }

Tömbök • • Azonos típusú elemek összessége int A[100]; // 0. . 99 indexelesi

Tömbök • • Azonos típusú elemek összessége int A[100]; // 0. . 99 indexelesi tartomány const int MAX =10; float A[MAX]={1, 2, 3, 2, 12};

Tömb beolvasás • void tomb. Beolvas(float A[MAX], int N) • { std: : cout

Tömb beolvasás • void tomb. Beolvas(float A[MAX], int N) • { std: : cout << "Kerem a tomb elemeit" <<std: : endl; • for(int i=0; i<N; i++) • { std: : cout << "Kérem az " << i <<"edik elemet"; • std: : cin >>A[i]; • } • getchar(); • }

Tömb kiírás • void tomb. Kiir(float a[MAX], int N) • { std: : cout

Tömb kiírás • void tomb. Kiir(float a[MAX], int N) • { std: : cout << std: : endl << "A tomb elemei" << std: : endl; • for (int i=0; i<N; i++) • { std: : cout << a[i] << " "; • } • std: : cout << std: : endl; • }

 • _tmain() • • float A[MAX] ; • tomb. Beolvas(A, 3); • tomb.

• _tmain() • • float A[MAX] ; • tomb. Beolvas(A, 3); • tomb. Kiir(A, 3); • std: : cout << " az A tomb maximalis eleme " << tomb. Max(A, 3) <<std: : endl;

Tömb maximális eleme • float tomb. Max(float a[MAX], int N) • {float s=a[0]; •

Tömb maximális eleme • float tomb. Max(float a[MAX], int N) • {float s=a[0]; • for (int i=1; i<N; i++){ • if (a[i]>s){ • s=a[i]; • } • return s; • }

Tömb elemeinek összege • float tomb. Osszeg(float A[MAX], int N) • { float s=0;

Tömb elemeinek összege • float tomb. Osszeg(float A[MAX], int N) • { float s=0; • for(int i=0; i<N; i++){ • s=s+A[i]; } • return s; • }

Tömb elemeinek duplázása • void tomb. Dup(float a[MAX], float b[MAX], int N) • {

Tömb elemeinek duplázása • void tomb. Dup(float a[MAX], float b[MAX], int N) • { for (int i=0; i<N; i++){ • b [i]= a[i]*2; • }

Többirányú elágazás • • • { int szam=0; std: : cout << " kerem

Többirányú elágazás • • • { int szam=0; std: : cout << " kerem a szamot " << std: : endl; std: : cin >> szam; getchar(); switch (szam) { case 1 : std: : cout << " egy"; break; case 2 : std: : cout << "ketto”; break; default: std: : cout << "mas szam"; }

Matematikai függvények • • <math. h> <cmath> double f(double) formátumú mind abs, fabs –

Matematikai függvények • • <math. h> <cmath> double f(double) formátumú mind abs, fabs – abszolút érték ceil –d-nél nem kisebb egész floor – d nél nem nagyobb legkisebb egész sqrt – négyzetgyök pow(alap, kitevo ) - hatványozás

Matematikai függvények • • exp(double) // e alapú exponenciális log() // e alapú logaritmus

Matematikai függvények • • exp(double) // e alapú exponenciális log() // e alapú logaritmus log 10() 10 es alapú logaritmus double modf(double d, double* p)

Matematikai függvények 2 • • • Trigonometria sin, cos, tan, acos, asin, atan 2(x,

Matematikai függvények 2 • • • Trigonometria sin, cos, tan, acos, asin, atan 2(x, y) = atan(x/y) sinh, cosh(), tanh() 11 16 EDDIG

Sztringek 1 • • #include <string> string s 1, s 2, s 3; Cin

Sztringek 1 • • #include <string> string s 1, s 2, s 3; Cin >> s 1; // ekkor az elso space-ig getline(cin, s 1); // teljes sor beolvasas int n=s 1. length(); // hossz resz sztring s 2=s 1. substr(honnan, hanyat) helyettesites s 2= s 1. replace (honnan, mennyit, "mivel") nem kell hogy ugyanannyi legyen a helyettesitett szoveg

 • C stilusu sztringet s. c_str() el lehet belole csinalni

• C stilusu sztringet s. c_str() el lehet belole csinalni

Osztályok • Típus =kategória, pl állat, autó, gyümölcs • Narancs->citrusféle->gyümölcs->növény>élőlény • Osztályok létrehozásával tudunk

Osztályok • Típus =kategória, pl állat, autó, gyümölcs • Narancs->citrusféle->gyümölcs->növény>élőlény • Osztályok létrehozásával tudunk új típusokat létrehozni. • Osztály =változók+függvények

Fogalmak (Osztályok) • Egységbezárás: egy dologgal kapcsolatos információk és a dolog képességeinek egy osztályba

Fogalmak (Osztályok) • Egységbezárás: egy dologgal kapcsolatos információk és a dolog képességeinek egy osztályba történő összegyűjtése • Az egységbezárás eredménye – Minden egy helyen van – Működési elv ismerete nélkül használható az osztály

Osztály deklarálás • • class Macska {public: int kora; int sulya; ); void Nyavog(void

Osztály deklarálás • • class Macska {public: int kora; int sulya; ); void Nyavog(void }; void Macska: : Nyavog(void) {cout << "nya nya"; }

Osztály láthatóság class osztaly_neve {private: // ide az osztály magánügyeit tesszük public: // itt

Osztály láthatóság class osztaly_neve {private: // ide az osztály magánügyeit tesszük public: // itt tesszük a dolgait a külvilág számára elérhetővé • }; • • •

 • • • class Macska { private: int kora; int sulya; int Macska.

• • • class Macska { private: int kora; int sulya; int Macska. X; int Macska. Y; • • • public: void Adatbeallitas( int s_kor, int s_sulya, int s_x, int s_y); void Nyavogj(void); void Mozdulj(int x, int y); void Hol. Vagy. Cica(void); };

Osztály metódus kezeli a belső adatokat • void Macska: : Adatbeallitas( int s_kor, int

Osztály metódus kezeli a belső adatokat • void Macska: : Adatbeallitas( int s_kor, int s_sulya, int s_x, int s_y) • { kora =s_kor; • sulya =s_sulya; • Macska. X =s_x; • Macska. Y =s_y; • }

Meghívás • Macska Cicicica; // letrehoztunk egy peldanyt, egy konkret macskat • Cicicica. Adatbeallitas(5,

Meghívás • Macska Cicicica; // letrehoztunk egy peldanyt, egy konkret macskat • Cicicica. Adatbeallitas(5, 8, 0, 0); • Cicicica. Nyavogj(); // megkerjuk hogy nyavogjon • Cicicica. Mozdulj(10, 6); • Cicicica. Hol. Vagy. Cica(); •

 • • class Macska { public: int kora; int sulya; void Nyavogj(void); };

• • class Macska { public: int kora; int sulya; void Nyavogj(void); }; void Macska: : Nyavogj(void) { std: : cout << "nya nya"; } • • • int _tmain(int argc, _TCHAR* argv[]) {int r; Macska Cicicica; // letrehoztunk egy peldanyt, egy konkret macskat Cicicica. kora=5; // beallitottuk a korat Cicicica. sulya=8; // beallitottok a sulyat Cicicica. Nyavogj(); // megkerjuk hogy nyavogjon

 • • • class Macska { public: int kora; int sulya; int Macska.

• • • class Macska { public: int kora; int sulya; int Macska. X; int Macska. Y; void Nyavogj(void); void Mozdulj(int x, int y); void Hol. Vagy. Cica(void); }; void Macska: : Nyavogj(void) { std: : cout << "nya nya"; } • • • void Macska: : Mozdulj(int x, int y) { Macska. X =Macska. X +x; Macska. Y =Macska. Y +y; } • • void Macska: : Hol. Vagy. Cica(void) {std: : cout << "X = " <<Macska. X << " Y= " << Macska. Y<< std: : endl; };

Osztály, konstruktor, destruktor • Class osztaly_neve • {osztaly_neve() // konstruktor ua a neve mint

Osztály, konstruktor, destruktor • Class osztaly_neve • {osztaly_neve() // konstruktor ua a neve mint az osztalynak, 1 szer fut le amikor példányt létrehozol • osztaly_neve() // destruktor} • Az osztályok példányosításakor lefut egy speciális függvény->konstruktor • Forditva a destruktor, nincs bemenő paramétere, visszatérési értéke se

Konstruktor • class Macska • { private: • int kor; • int suly; •

Konstruktor • class Macska • { private: • int kor; • int suly; • public: • Macska(int s_kor, int s_suly); //ez a konstruktor • };

Konstruktor megvalósítása • • • Macska: : Macska(int s_kor, int s_suly) { kor =s_kor;

Konstruktor megvalósítása • • • Macska: : Macska(int s_kor, int s_suly) { kor =s_kor; suly=s_suly; } !! Nincs visszatérési érték

Konstruktor meghívása • Macska Cirmos. Cica(1, 3); // létrehoztunk egy macskát akinek Cirmos. Cica

Konstruktor meghívása • Macska Cirmos. Cica(1, 3); // létrehoztunk egy macskát akinek Cirmos. Cica a neve, 1 éves és 3 kilós • Típus • Osztály Példány Értékadás Objektum Konstruktor