operatori si expresii

10
Operatori si expresii

Upload: chelariu-mihai

Post on 12-May-2015

1.987 views

Category:

Education


2 download

DESCRIPTION

expression operators C/C++ language

TRANSCRIPT

Page 1: Operatori si expresii

Operatori si expresii

Page 2: Operatori si expresii

ExpresiiValorile variabilelor interactioneaza intre ele prin operatii.

Simbolurile prin care reprezentam aceste operatii se numesc operatori. Combinatiile care apar in urma folosirii operatorilor si variabilelor/constantelor se numesc expresii.

O expresie poate fi:• o constanta/variabila • o combinatie de tipul operator expresie (cazul operatorilor

unari: – a) • o combinatie de tipul expresie operator expresie (cazul

operatorilor binari: a+b ) Operatorii folositi in C/C++ sunt: aritmetici, logici, relationali,

de lucru pe biti.

Page 3: Operatori si expresii

Operatori aritmetici

• A/B reprezinta catul impartirii lui A la B (valoare intreaga)

• A%B reprezinta restul impartirii lui A la B – A%10 reprezinta ultima cifra a lui A – A%2 va avea valoarea zero daca A este par si 1

daca A este impar– A%B va avea valoarea 0 daca A se divide cu B

• operatorii +,- si * au semnificatiile cunoscute de la matematica.

Page 4: Operatori si expresii

Operatori relationali• Operatorii relationali sunt < (mai mic), > (mai mare), <=(mai

mic-egal), >= (mai mare-egal), == (egalitate?), != (diferit?).• Orice expresie exp1 op_rel exp2 va avea ca rezultat valori

de adevar ADEVARAT/FALS (in C ADEVARAT se reprezinta cu 0 si FALS cu 1).

• O expresie de tipul exp1 == exp2 va avea valoarea 1 (ADEVARAT) daca, dupa calculul expresiilor se va observa ca se obtine aceeasi valoare. In caz contrar, valoarea obtinuta este 0 (FALS).

• O expresie de tipul exp1 != exp2 va avea valoarea 1 (ADEVARAT) daca, dupa calculul expresiilor 1 si 2 se va observa ca se obtin valori diferite. In caz contrar, valoarea obtinuta este 0 (FALS).

Page 5: Operatori si expresii

Operatori logici

• Operatorii logici sunt && (si logic), || (sau logic), si ! (operatorul de negare) si au aceeasi semnificatie si se supun acelorasi reguli ca in logica matematica.

• Ca si in logica matematica, limbajul C lucreaza cu valori de adevar ADEVARAT (pe care o noteaza cu 1) si FALS (pe care o noteaza cu 0).

Page 6: Operatori si expresii

Operatorul logic && (SI)exp1 && exp2 0 1

0 0 0

1 0 1

Exemplu1: Imi plac fetele blonde SI cu ochi albastri. Conform afirmatiei, o actrita precum Catherin Zeta Jones (bruneta, ochi negri) nu imi place. Analog, Uma Thurman (blonda, ochi verzi) nu imi place. Conform operatorului SI imi plac (obtin valoare de adevar 1) NUMAI fetele blonde si cu ochi albastri.

Exemplu2: Cum stabilesc daca valoarea unei variabile X se gaseste in intervalul [A, B]? Conform axei numerelor X se gaseste intre A si B. Astfel, expresia va fi (X>=A)&&(x<=B).

Page 7: Operatori si expresii

Operatorul logic || (SAU)exp1 || exp2 0 1

0 0 1

1 1 1

Exemplu1: Imi plac fetele blonde SAU cu ochi albastri. Conform afirmatiei, o actrita precum Catherin Zeta Jones (bruneta, ochi negri) nu imi place (nu e nici blonda, nici cu ochi albastri). Analog, Uma Thurman (blonda, ochi verzi) imi place. Conform operatorului SAU imi plac (obtin valoare de adevar 1) ORICE fata blonda SAU ORICE fata cu ochi albastri.Exemplu2: Cum stabilesc daca valoarea unei variabile X NU se gaseste in intervalul [A, B]? Conform axei numerelor X va trebui sa fie inainte de A SAU dupa B. Astfel, expresia va fi (X<A)||(X>B).

Page 8: Operatori si expresii

Operatorul logic ! (negarea)

• Operatorul logic ! (negare) - operator unar.Schimba valoarea de adevar a unei expresii din adevarat (1) in fals (0) sau din fals in adevarat.

• ! (exp1)= 0 daca exp1 este adevarata (1).• ! (exp1)= 1 daca exp1 este falsa.

Page 9: Operatori si expresii

Regulile lui De Morgan

!(exp1 && exp2) = !exp1 || !exp2

!(exp1 || exp2) = !exp1 && !exp2

Page 10: Operatori si expresii

Prioritatea operatorilorOPERATOR Asociativitate

<< >> stg la drp

< <= > >= stg la drp

== != stg la drp

& stg la drp

^ stg la drp

| stg la drp

&& stg la drp

|| stg la drp

?: drp la stg

| stg la drp

&& stg la drp

|| stg la drp

?: drp la stg