info cls a9a-pe scurt

21
[size="4"]Introducerea in limbajul C++[/size] In limbajul C++ lucram cu mai multe tipuri de date: 1. Date de tip int (numere intregi, ca de ex. -5, -3, 1, 2, 3, 25, 665, 12345) 2. Date de tip unsigned int (numere intregi fara semn inainte, asadar naturale) 3. Date de tip float (numere reale cu maxim 4 cifre dupa virgula, ca de ex. -5.2 , -3.5, 1.2, 52.6, 32.423, -234.4) 4. Date de tip unsigned float (numere reale cu maxim 4 cifre dupa virgula si fara semn inainte, asadar naturale) 5. Date de tip double (numere reale cu maxim 15 cifre dupa virgula, de ex, 251.241251251261, -123.4215166272) Obs: double se foloseste intotdeauna singur... nu exista unsigned double, float double etc... 6. Date de tip short sau long: -Ambele se folosesc deobicei cu signed si unsigned pentru a avea urmatoarele valori:

Upload: dumitrescu-ovidiu

Post on 29-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Info Cls a9a-Pe Scurt

[size="4"]Introducerea in limbajul C++[/size]

In limbajul C++ lucram cu mai multe tipuri de date: 

1. Date de tip int (numere intregi, ca de ex. -5, -3, 1, 2, 3, 25, 665, 12345)

2. Date de tip unsigned int (numere intregi fara semn inainte, asadar naturale)

3. Date de tip float (numere reale cu maxim 4 cifre dupa virgula, ca de ex. -5.2 , -3.5, 1.2, 52.6, 32.423, -234.4)

4. Date de tip unsigned float (numere reale cu maxim 4 cifre dupa virgula si fara semn inainte, asadar naturale)

5. Date de tip double (numere reale cu maxim 15 cifre dupa virgula, de ex, 251.241251251261, -123.4215166272)

Obs: double se foloseste intotdeauna singur... nu exista unsigned double, float double etc...

6. Date de tip short sau long:

-Ambele se folosesc deobicei cu signed si unsigned pentru a avea urmatoarele valori:

signed short: Valori intre -32767 si 32767

unsigned short: Valori intre 0 si 65535

Page 2: Info Cls a9a-Pe Scurt

signed long: Valori intre -2147483647 si 2147483647

7. Date de tip char (siruri de caractere, ca de ex. "Studiez informatica", "I got a viruS")

Obs: Sirurile pot avea intre 0 si 255 de caractere.

Operatorii limbajului C++

I. Operatori aritmetici

II. Operatori relationali

III. Operatori logici.

Si vor mai veni si alti mai tarziu pe parcursul acestui tutorial.

[size="4"]I. Operatori aritmetici [/size]

1. Operatorul adunare, +

int a=5,b=7;

a+b asadar 5+7;

2. Operatorul diferenta, -

int a=5;

float d=3.34;

a-d asadar 5-3.34;

3. Operatorul inmultire, *

Page 3: Info Cls a9a-Pe Scurt

int a=5,b=7,c=3;

a*b*c asadar 5*7*3;

4. Operatorul impartire, /

int a=5,c=3;

float b=7;

a/c asadar 5/3=1 De ce 1 si nu 1.6666? Deoarece a si c sunt variabile de tip intreg (adica numere naturale)

b/c asadar 7/3=2.3333 Aici avem o variabila float si o variabila int, asadar rezultatul va fi cu virgula.

5. Operatorul pentru restul impartirii a doua numere intregi, %

int x=11,z=3;

x%z asadar 11%3=2 3 merge in 11 de 3 ori... si ramane rest 2.

[size="4"]II. Operatori relationali

[/size]

-Sunt folositi pentru a stabili daca relatia intre doua variabile este adevarata

1. Operatorul egalitate, ==

int a=7,b=2;

(a==b)=0 Asadar fals!

Page 4: Info Cls a9a-Pe Scurt

2. Operatorul diferit, !

int a=7,b=2;

(a!=b)=1 Asadar adevarat! (a este diferit de b)

3. Operatorul mai mare, >

int a=7,b=2;

a>b =1 Asadar adevarat!

4. Operatorul mai mare sau egal, >=

int a=7,b=2,c=2

a>=b =1

b>=c =1 Ambele sunt adevarate.

5. Operatorul mai mic, <

int a=7,b=2;

a<b =0 Fals.

6. Operatorul mai mic sau egal, <=

int a=7,b=2,c=2;

a<=b =1

c<=b =1 Ambele sunt adevarate.

Page 5: Info Cls a9a-Pe Scurt

Haideti sa va arat cateva exemple de exercitii cu operatorii relationali:

A.Code: (Select All)int a=2,b=5,c=3,d=0;          

    (a!=b)>=(d==c)

a este diferit de b, asadar 1; iar d nu este egal cu c, asadar 0

1>=0

Rezultat final 1, relatia de mai sus este adevarata;

B.Code: (Select All)int a=1,b=2,c=1,d=3;

   (a!=c)>((d-b)<=c)

a nu este diferit de c, asadar 0; iar d-b, 3-2 este mai mic sau egal cu c , asadar 1

0>1

Rezultat final 0, relatia de mai sus este falsa;

[size="4"]

III. Operatori logici[/size]

-au valoarea logica doar 0 sau 1, in functie de valoarea de adevar.

1. Operatorul de negatie NOT, !

a | !a

Page 6: Info Cls a9a-Pe Scurt

1 | 0 Diferitul lui a=1, este 0.

0 | 1 Diferitul lui a=0, este 1.

2. Operatorul SI sau AND, &&

a | b | a&&b

1 | 1 | 1 

0 | 0 | 0 

1 | 0 | 0 

0 | 1 | 0 

a=1 SI b=1 rezulta valoarea de adevar 1

a=0 SI b=0 rezulta valoarea de fals, 0 (offtopic: rezulta valoarea de fals... suna aiurea, e corect macar?)

a=1 SI b=0 rezulta valoarea de fals, 0

a=0 SI b=1 rezulta valoarea de fals, 0

3. Operatorul SAU sau OR, ||

a | b | a||b

1 | 1 | 1

0 | 0 | 0

1 | 0 | 1

0 | 1 | 1

a=1 SI b=1 rezulta valoarea de adevar 1.

Page 7: Info Cls a9a-Pe Scurt

a=0 SI b=0 rezulta valoarea de fals 0.

a=1 SI b=0 rezulta valoarea de adevar 1.

a=0 SI b=1 rezulta valoarea de adevar 1.

[size="4"]Structura programelor[/size]

Code: (Select All)#include<iostream.h>                    //Am folosit comanda #include , pt a include baza de date iostream.h    

void main()                  {

       //Partea de declarat a variabilelor

       //Opratiile cu variabilele respective

}

Partea de declarat a variabilelor:

Code: (Select All)int a=3,b,c;

float d;

Partea de citire a variabilelor:

Code: (Select All)

int n;

cout<<"Mesajul in care dau o valoare variabilei n de la tastatura:"               cin>>n;                

Operatiile cu variabilele respective si partea de afisare a rezultatelor finale:

Page 8: Info Cls a9a-Pe Scurt

Code: (Select All)int rezultat

a+b+c+d=rezultat;

cout<<"Rezultatul final al sumei celor 4 variabile este:"<<rezultat<<endl;              

Ce am scris mai sus se mai poate scrie si asa:

cout<<"Rezultatul final al sumei celor 4 variabile este:"<<a+b+c+d<<endl;                  

Code: (Select All)#include<iostream.h>            

void main()                          

{

      int a=3,b,c;

      float d;

      cout<<"b=";

      cin>>b;

      cout<<"c=";

      cin>>c;

      cout<<"d=";

      cin>>d;

      int rezultat;

      rezultat=a+b+c+d;

      cout<<"Rezultatul sumei celor 4 variabile este:"<<rezultat<<endl;

}

1. Operatorul de negatie, ~

Page 9: Info Cls a9a-Pe Scurt

a | ~a

1 | 0 

0 | 1 

2. Operatorul SI (AND), &

a | b | a&b

1 | 1 | 1 

0 | 0 | 0 

1 | 0 | 0 

0 | 1 | 0 

3. Operatorul SAU (ori), |

a | b | a|b

1 | 1 | 1

0 | 0 | 0

1 | 0 | 1

0 | 1 | 1

4. Operatorul SAU-Exclusiv, ^

a | b | a^b

1 | 1 | 0

0 | 0 | 0

Page 10: Info Cls a9a-Pe Scurt

1 | 0 | 1

0 | 1 | 1

Daca valorile nu sunt egale, rezultatul va fi adevarat, asadar 1.

Bun... acestia sunt cei 4 operatori, acuma sa aflam cum se afla biti unui numar in baza doi.

int a=13,b=19;

Numarul se imparte la 2, pana da rezultatul 0.

13/2=6 rest 1; 19/2=9 rest 1;

6/2=3 rest 0; 9/2=4 rest 1;

3/2=1 rest 1; 4/2=2 rest 0;

1/2=0 rest 1; 2/2=1 rest 0;

................... 1/2=0 rest 1;

13 in baza 2 = 00001101

19 in baza 2 = 00010011

Asa se folosesc operatorii logici pe biti in baza 2:

Code: (Select All)7   6   5   4   3   2   1   0   

        a | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 13= 2 la 0 + 2 la 2 + 2 la 3 = 1 + 4 + 8        

        b | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 19= 2 la 0 + 2 la 1 + 2 la 4 = 1 + 2 + 16

Page 11: Info Cls a9a-Pe Scurt

       ~a | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 242      

       ~b | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 136      

      a|b | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 31      

      a&b | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 2      

      a^b | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 30

[size="4"]V. Operatori de incrementare si decrementare[/size]

1. Prefixati

++ pentru incrementare si -- pentru decrementare inaintea unei variabile.

Operatorii prefixati de incrementare maresc mai intai cu 1 si apoi memoreaza.

Operatorii prefixati de decrementare scad mai intai cu 1 si apoi memoreaza.

Exemplu:

Code: (Select All)int a=5;                

a++         unde a incepe sa ia valori de la 5

2. Postfixati

++ pentru incrementare si -- pentru decrementare dupa variabile.

1. Atribuire simpla:

Page 12: Info Cls a9a-Pe Scurt

Ex: int a=4 -> am atribuit variabili a de tip intreg, valoarea 4

float d=12.4 -> am atribuit variabili de tip float, valoarea 12.4

2. Atribuirea multipla:

Ex: int a,b,c;

a=b=c=5

[color="#FFFF00"]3. Atribuirea cu operatorii:[/color]

Operatorul *

int a=5;

a*=7;

a=5*7;

a=35;

Operatorul /

int a=5;

a-=7;

a=5/7;

a=0;

Operatorul %

Page 13: Info Cls a9a-Pe Scurt

int a=5;

a%=7;

a=5%7;

a=5;

[size="4"]VII. Operatorul virgula ,[/size]

-separa doua sau mai multe operatii de atribuire

Ex: int a=5,b=9;

float c=11, d=2;

a+=b-=7,b/=a%2,c/=b%=a*2;

a+=2 ---> a=5+2+7=14;

b%=14 ---> b=2%14=2;

c/=2 ---> c=11/2=5.5;

[size="4"]VIII. Operatorul Conditional[/size]

-evalueaza o expresie in functie de conditie.

Ex:int a=10,b=20,c=30;

cout<<(a>b ? a-=b : b-=a) , asadar se va afisa a-=b, adica -10

Ok! Am terminat operatori din c++. Finaly !

Page 14: Info Cls a9a-Pe Scurt

[size="4"]Structuri de control[/size]

I. Liniara

II. Alternativa

A. Simpla

B. Cu ramura vida

C. Generalizata

III. Repetitiva cu numar cunoscut de pasi

IV. Structura repetitiva cu numar cunoscut de pasi: 

A. Conditionata anterior.

B. Conditionata posterior.

Structura alternativa simpla si cu ramura vida am facut-o mai sus.

Incepem cu cea liniara.

[size="2"]I. Liniara [/size]

-are forma: 

Expresie 1;

Expresie 2;

Page 15: Info Cls a9a-Pe Scurt

...

Expresie n; 

Aceasta structura cuprine toate operatiile de citire, scriere si expresi cu diferite calcule si algoritmi.

[size="4"]II. Alternativa[/size]

[size="2"]C. Generalizata[/size]

-Efectueaza/alege o actiune din mai multe posibile.

Are forma:

Code: (Select All)#include<iostream.h>

void main()

{

      int opt;

      cout<<"Introduceti optiunea:";

      cin>>opt;

      switch(opt)

      {

      case 1: secventa_de_actiune1;              

            break;                                       case 2: secventa_de_actiune2;              

            break;

      default:cout<<"Optiunea aleasa nu exista";        }

Page 16: Info Cls a9a-Pe Scurt

}

[size="4"]III. Structura repetitiva[/size]

Are forma:

for(contor=expresie_initializare; conditie; expresie_incrementare sau expresie_decrementare;

*contor este o variabila care se initializeaza cu 1;

*conditie verifica daca o conditie este adevarata;

Se folosesc urmatoarele variabile: 

1. O variabila de tip int notata cu i;

2. Numarul de valori care se citesc, notate cu n;

3. Valorile care se citesc, notate cu val;

*Suma se noteaza cu int s=0; si produsul cu int p=1;

Exemplu, citirea valorilor:

Code: (Select All)#include<iostream.h>

void main()

{

Page 17: Info Cls a9a-Pe Scurt

      int n,i,val;

      cout<<"n=";

      cin>>n;

      for(i=1;i<=n;i++)                            

      {

            cout<<"val=";                                       cin>>val;

      }

}

Deci... daca n=5 , atunci pentru:

i=1 -> val=a 

i=2 -> val=b

i=3 -> val=c

i=4 -> val=d

i=5 -> val=e

Valorile pot sa aiba aceasi valoare... de exemplu:

i=1 -> val=6 

i=2 -> val=6

i=3 -> val=11

i=4 -> val=36

i=5 -> val=6

Suma va fi atunci 6+6+11+36+6.

Page 18: Info Cls a9a-Pe Scurt

Produsul va fi atunci 6*6*11*36*6.