Programarea calculatoarelor si limbaje de programare

64
! " #$ %&' ( )%%* + + + REPROGRAFIA UNIVERSITĂŢII "TRANSILVANIA" DIN BRAŞOV

Transcript of Programarea calculatoarelor si limbaje de programare

REPROGRAFIA UNIVERSITĂŢII "TRANSILVANIA" DIN BRAŞOV

user
Rectangle
user
Rectangle

Programarea calculatoarelor în limbajul C++

-2-

Programarea calculatoarelor în limbajul C++

-3-

Programarea calculatoarelor în limbajul C++

-4-

Programarea calculatoarelor în limbajul C++

-5-

Programarea calculatoarelor în limbajul C++

-6-

Programarea calculatoarelor în limbajul C++

-7-

Programarea calculatoarelor în limbajul C++

-8-

Programarea calculatoarelor în limbajul C++

-9-

Programarea calculatoarelor în limbajul C++

-10-

Programarea calculatoarelor în limbajul C++

-11-

Programarea calculatoarelor în limbajul C++

-12-

Programarea calculatoarelor în limbajul C++

-13-

Programarea calculatoarelor în limbajul C++

-14-

Programarea calculatoarelor în limbajul C++

-15-

Programarea calculatoarelor în limbajul C++

-16-

Programarea calculatoarelor în limbajul C++

-17-

Programarea calculatoarelor în limbajul C++

-18-

// primul program in C++

#include <iostream.h>

using namespace std;

int main ()

{

cout << "Bun venit in lumea C++!";

return 0;

}

Programarea calculatoarelor în limbajul C++

-19-

// primul program in C++

#include <iostream.h>

using namespace std;

int main ()

cout << "Bun venit in lumea C++!";

Programarea calculatoarelor în limbajul C++

-20-

return 0;

int main () { cout << "Bun venit in lumea C++!"; return0; }

Programarea calculatoarelor în limbajul C++

-21-

int i,j;

float a,b;

//declararea variabilelor

float a,b;

//afisarea unui mesaj pentru introducerea unui numar:

cout << "Introduceti un numar real: ";

//instructiunea pentru citirea numarului scris latastatura:

cin >> a;

a = a+b;

//adunare - rezultatul este stocat în variabila a

a += b;

//adunare - acelasi efect ca în instructiunea de mai

Programarea calculatoarelor în limbajul C++

-22-

sus

b = b-a;

//scadere - rezultatul este stocat în variabila b

b -= a;

//scadere - acelasi efect ca în instructiunea de maisus

c = a*b;

//înmultire

c = a/b;

//împartire

a = a+b/(b+1);

//efectul executiei instructiunii de mai sus estesimilar cu secventa:

c = b+1;

b = b/c;

a = a+b;

asm, auto, bool, break, case, catch, char, class,const, const_cast, continue, default, delete, do,double, dynamic_cast, else, enum, explicit, export,extern, false, float, for, friend, goto, if, inline,

Programarea calculatoarelor în limbajul C++

-23-

int, long, mutable, namespace, new, operator, private,protected, public, register, reinterpret_cast, return,short, signed, sizeof, static, static_cast, struct,switch, template, this, throw, true, try, typedef,typeid, typename, union, unsigned, using, virtual,void, volatile, wchar_t, while

and, and_eq, bitand, bitor, compl, not, not_eq, or,or_eq, xor, xor_eq

Programarea calculatoarelor în limbajul C++

-24-

#include <iostream.h>

//variabile globale

int a, b;

char c;

char sir[20];

int read_vars()

{

//citirea valorilor variabilelor a si b

cout << "a="; cin >> a;

cout << "b="; cin >> b;

}

int main ()

{

//variabile locale

int result;

//citirea variabilelor

read_vars();

// procesare:

Programarea calculatoarelor în limbajul C++

-25-

result = a - b;

// afisarea rezultatului:

cout << result;

}

int a = 0;

int a (0);

// initializarea variabilelor

#include <iostream.h>

int main ()

{

int a=5;

// valoarea initiala = 5

int b(2);

// valoarea initiala = 2

Programarea calculatoarelor în limbajul C++

-26-

int result;

// valoarea initiala nedeterminata

a = a + 3;

result = a - b;

cout << result;

}

//primul exemplu cu siruri

#include <iostream.h>

#include <string>

using namespace std;

int main ()

{

string mystring = "Acesta este un sir";

cout << mystring;

return 0;

}

Programarea calculatoarelor în limbajul C++

-27-

string mystring = "Acesta este un sir";

string mystring("Acesta este un sir");

Programarea calculatoarelor în limbajul C++

-28-

a = 5;

75

// zecimal

0113

// octal

0x4b

// hexazecimal

Programarea calculatoarelor în limbajul C++

-29-

75

// int

75u

// unsigned int

75l

// long

75ul

// unsigned long

3.14159

6.02e23

1.6e-19

3.0

3.14159L

// long double

6.02e23f

// float

Programarea calculatoarelor în limbajul C++

-30-

'z'

'p'

"Hello world"

"Introduceti o valoare:"

x

'x'

Programarea calculatoarelor în limbajul C++

-31-

"sir scris pe \

doua linii de cod"

"aceste subsiruri" "formeaza" "un singur" "sir decaractere"

L"Acesta este un sir format din caractere wide"

#define identificator valoare

#define PI 3.14159265

Programarea calculatoarelor în limbajul C++

-32-

#define NEWLINE '\n'

// constante definite: calculul circumferintei

#include <iostream>

using namespace std;

#define PI 3.14159

#define NEWLINE '\n';

int main ()

{

double r=5.0; // raza

double circle;

circle = 2 * PI * r;

cout << circle;

cout << NEWLINE;

return 0;

}

const int width = 100;

const char tabulator = '\t';

const zipcode = 12440;

Programarea calculatoarelor în limbajul C++

-33-

a = 5;

a = b;

// operatorul de asignare

#include <iostream>

using namespace std;

int main ()

{

int a, b;

// a:?, b:?

a = 10;

// a:10, b:?

b = 4;

Programarea calculatoarelor în limbajul C++

-34-

// a:10, b:4

a = b;

// a:4, b:4

b = 7;

// a:4, b:7

cout << "a:";

cout << a;

cout << " b:";

cout << b;

return 0;

}

a = 2 + (b = 5);

b = 5;

a = 2 + b;

a = b = c = 5;

Programarea calculatoarelor în limbajul C++

-35-

a = 11 % 3;

// asignarea compusa

#include <iostream>

using namespace std;

int main ()

{

int a, b=3;

a = b;

a+=2;

// echivalent cu a=a+2

cout<< a;

return 0;

}

a++;

Programarea calculatoarelor în limbajul C++

-36-

a+=1;

a=a+1;

b=3;

a=++b;

//a contine 4, b contine 4

b=3;

a=b++;

//a contine 3, b contine 4

a=++a;

a=a++;

Programarea calculatoarelor în limbajul C++

-37-

(7 == 5)

// evaluat ca false

(5 > 4)

// true

(3 != 2)

// true

(6 >= 6)

// true

(5 < 5)

// false

a=2; b=3; c=6;

(a == 5)

// evaluat ca false deoarece a nu este egal cu 5

(a*b >= c)

// true deoarece (2*3 >= 6) este adev#rat

(b+4 > a*c)

// false deoarece (3+4 > 2*6) este fals

((b=2) == a)

// true

!(5 == 5)

// evaluat ca false deoarece expresia din dreapta (5 ==5) este true

!(6 <= 4)

Programarea calculatoarelor în limbajul C++

-38-

// evaluat ca true deoarece (6 <= 4) are ca rezultatfalse

!true

// false

!false

// true

( (5 == 5) && (3 > 6) )

// evaluat ca false ( true && false )

( (5 == 5) || (3 > 6) )

// evaluat ca true ( true || false )

conditie ? rezultat1 : rezultat2

Programarea calculatoarelor în limbajul C++

-39-

7==5 ? 4 : 3

// întoarce 3, deoarece 7 nu este egal cu 5

7==5+2 ? 4 : 3

// întoarce 4, deoarece 7 este egal cu 5+2

5>3 ? a : b

// întoarce valoarea lui a, deoarece 5 este mai maredecât 3

a>b ? a : b

// întoarce valoarea cea mai mare, a sau b

// operatorul conditional

#include <iostream.h>

using namespace std;

int main ()

{

int a,b,c;

a=2;

b=7;

c = (a>b) ? a : b;

cout << c;

return 0;

}

Programarea calculatoarelor în limbajul C++

-40-

cout << "Text";

// afiseaza "Text"

cout << Text;

// afiseaza continutul variabilei Text

cout << "Text: "<< Text << "\n";

int a;

cin >> a;

Programarea calculatoarelor în limbajul C++

-41-

// exemplu I/O

#include <iostream.h>

using namespace std;

int main ()

{int i;

cout << "Introduceti un numar intreg: ";

cin >> i;

cout << "Valoarea introdusa este " << i;

cout >> " iar dublul acesteia este " << i*2 <<".\n";

return 0;

}

cin >> a >> b;

cin >> a;

cin >> b;

Programarea calculatoarelor în limbajul C++

-42-

if (conditie) instructiune;

if (x == 100)

cout << "x este 100";

if (x == 100)

{cout << "x este ";

cout << x;

}

if (conditie) instructiune1 else instructiune2

Programarea calculatoarelor în limbajul C++

-43-

if (x == 100)cout << "x este 100";

elsecout << "x nu este 100";

if (x > 0)cout << "x este pozitiv";

else if (x < 0)cout << "x este negativ";

elsecout << "x este 0";

switch (expresie)

{case constanta1:grup de instructiuni 1;

break;

case constanta2:grup de instructiuni 2;

break;

. . .

default:grup de instructiuni pentru executie implicita;

}

Programarea calculatoarelor în limbajul C++

-44-

//exemplu switch

switch (x)

{case 1:cout << "x este 1";

break;

case 2:cout << "x este 2";

break;

default:cout << "valoare necunoscuta";

}

//echivalent if-else

if (x == 1)

{cout << "x este 1";

} else

if (x == 2)

{cout << "x este 2";

}

else

{cout << "valoare necunoscuta";

}

Programarea calculatoarelor în limbajul C++

-45-

while (conditie) instructiune

// numaratoare inversa cu while

#include <iostream.h>

using namespace std;

int main ()

{int n;

cout << "Enter the starting number > ";

cin >> n;

while (n>0) {cout << n << ", ";

--n;

}

cout << "GO!";

return 0;

}

Programarea calculatoarelor în limbajul C++

-46-

do instructiune while (conditie);

#include <iostream.h>

using namespace std;

int main ()

{unsigned long n;

do {cout << "Introduceti un numar (0 pentru încheiereaprogramului): ";

cin >> n;

cout << "Ati introdus numarul: " << n << "\n";

} while (n != 0);

return 0;

}

for (initializare; conditie; incrementare)instructiune;

Programarea calculatoarelor în limbajul C++

-47-

// numaratoare inversa într-o bucla for:

#include <iostream.h>

using namespace std;

int main ()

{for (int n=10; n>0; n--) {cout << n << ", ";

}

cout << "GO!";

return 0;

}

for ( n=0, i=100 ; n!=i ; n++, i-- )

Programarea calculatoarelor în limbajul C++

-48-

{// instructiuni...

}

// exemplu de întrerupere a unei bucle

#include <iostream.h>

using namespace std;

int main ()

{int n;

for (n=10; n>0; n--)

{cout << n << ", ";

if (n==3)

{cout << "numaratoarea inversa intrerupta!";

break;

}

}

return 0;

}

Programarea calculatoarelor în limbajul C++

-49-

// exemplu de salt peste un pas al buclei

#include <iostream.h>

using namespace std;

int main ()

{for (int n=10; n>0; n--) {if (n==5) continue;

cout << n << ", ";

}

cout << "GO!";

return 0;

}

// exemplu de utilizare a instructiunii goto

#include <iostream.h>

using namespace std;

int main ()

{int n=10;

loop:

cout << n << ", ";

n--;

if (n>0) goto loop;

cout << "GATA!"; return 0;

}

Programarea calculatoarelor în limbajul C++

-50-

void exit (int exitcode);

Programarea calculatoarelor în limbajul C++

-51-

tip nume ( parametru1, parametru2, ...) { instruc#iuni}

#include <iostream.h>

using namespace std;

int suma (int a, int b)

{int r;

r=a+b;

return (r);

}

int main ()

{int z;

z = suma (5,3);

cout << "Rezultatul este " << z;

return 0;

}

Programarea calculatoarelor în limbajul C++

-52-

// exemplu de utilizare a functiilor

#include <iostream.h>

using namespace std;

int diferenta (int a, int b) {int r;

r=a-b;

return (r);

}

int main ()

{int x=5, y=3, z;

z = diferenta (7,2);

cout << "Primul rezultat este " << z << '\n';

cout << "Al doilea rezultat este " << diferenta(7,2) << '\n';

cout << "Al treilea rezultat este " << diferenta(x,y) << '\n';

z= 4 + diferenta (x,y);

cout << "Al patrulea rezultat este " << z << '\n';

return 0;

}

Programarea calculatoarelor în limbajul C++

-53-

tip nume ( parametru1, parametru2, ...) { instruc#iuni}

// exemplu de functie void

#include <iostream>

using namespace std;

void afisare_mesaj ()

{cout << "Exemplu functie";

}

int main ()

{afisare_mesaj ();

return 0;

}

void afisare_mesaj (void)

{cout << "Exemplu functie";

}

Programarea calculatoarelor în limbajul C++

-54-

afisare_mesaj ();

afisare_mesaj;

int x=5, y=3, z;

z = addition ( x , y );

// transmiterea parametrilor prin referinte

#include <iostream.h>

using namespace std;

void duplicate (int& a, int& b, int& c)

{a*=2;

b*=2;

c*=2;

}

int main ()

{

Programarea calculatoarelor în limbajul C++

-55-

int x=1, y=3, z=7;

duplicate (x, y, z);

cout << "x=" << x<< ", y=" << y << ", z=" << z;

return 0;

}

Programarea calculatoarelor în limbajul C++

-56-

tip nume [elemente];

char sir [20];

Programarea calculatoarelor în limbajul C++

-57-

struct nume_structura {tip_membru1 nume_membru1;

tip_membru2 nume_membru2;

tip_membru3 nume_membru3;

.

.

} nume_obiecte;

Programarea calculatoarelor în limbajul C++

-58-

class nume_clas# {specificator_acces_1:membru_1;

specificator_acces_2:membru_2;

...

} nume_obiecte;

Programarea calculatoarelor în limbajul C++

-59-

Programarea calculatoarelor în limbajul C++

-60-

Programarea calculatoarelor în limbajul C++

-61-

Programarea calculatoarelor în limbajul C++

-62-

Programarea calculatoarelor în limbajul C++

-63-