Operator i

11
Operatori. Operaţii.Operanzi Expresii = operatori + operanzi Operatori=semnele care se pun intre operanzi ca sa se efectuieze operatii. I.Instrucţiunea de calcul este alcătuită din: nume var = expresie unde: - nume var este numele variabilei a cărei valoare se modifică - expresie este formată din unul sau mai mulţi operanzi legaţi între ei din punct de vedere logic de diferiţi operatori. - caracterul = reprezintă operatorul de atribuire şi semnifică transferul informaţiei calculate în locaţia de memorie atribuită variabilei reprezentate prin identificatorul din stânga seninului =. Obs. Orice expresie are o valoare şi un tip în concordanţă cu tipul operanzilor care alcătuiesc expresia. Ex 1. II. Operanzi Aceştia pot fi: - constante; - variabile; - tablouri; - numele unei funcţii; Ex. 2 int p; float eps; char t,tablou[10]; p = 5; eps = p/3; t = tablou [0];

description

Operator i

Transcript of Operator i

Operatori

Operatori. Operaii.Operanzi

Expresii = operatori + operanzi

Operatori=semnele care se pun intre operanzi ca sa se efectuieze operatii.

I.Instruciunea de calcul este alctuit din:nume var = expresieunde:- nume var este numele variabilei a crei valoare se modific- expresie este format din unul sau mai muli operanzi legai ntre ei din punct de vedere logic de diferii operatori.- caracterul = reprezint operatorul de atribuire i semnific transferul informaiei calculate n locaia de memorie atribuit variabilei reprezentate prin identificatorul din stnga seninului =.Obs.Orice expresie are o valoare i un tip n concordan cu tipul operanzilor care alctuiesc expresia.Ex 1.

II. OperanziAcetia pot fi:- constante;- variabile;- tablouri;- numele unei funcii;Ex. 2

int p;

float eps;

char t,tablou[10];p = 5;

eps = p/3;

t = tablou [0];Efectuarea instruciunilor de calcul presupune:- operanzii s fie cunoscui anterior;- efectuarea calculelor se va face n funcie de prioritile specifice respectivilor operatoriIII. OperatoriTipuri de operatori:a) - aritmetici,b) - de atribuire,c) - de incrementare/ decrementare,d) - relaionali,e) - de egalitate,f) - logici,Prioritile operatorilor sunt exemplificai astfel:- n expresii aritmetice,- n expresii relaionale;a) Operatori aritmetici:n funcie de numrul operanzilor cu care se folosesc acetia pot fi de diferite tipuri:- unari (+, -, &, *)- binari (+, -, *, /, %)Operatorii unari au prioritatea mai mare dect a celor binari. De aceea la evaluarea unei expresii, SC va ine seama mai nti de semnul variabilelor, iar mai apoi de operaiile care se execut cu acele variabile). Pentru operatori ordinul de prioritate este aceeai ca i operaiile din matematica clasic (, /, +, -).ATENIE:Operatorul % poate fi aplicat numai n expresii care conin variabile de tip ntreg.Ex.3int a,b,c;float x,y,,z;

a= 17;X= 3.14;

b = 39;Y= 1.4142;

c = a/b;Z

c = a-b;Z = (-x)*(-y)

c = a%b;Z= (-y);

c = a*(-b);

b) Operatorul de atribuire

Operatorul de atribuire este folosit pentru a atribui unei variabile valoarea unei constante sau a unei expresii.Operatorul de atribuire are prioritatea cea mai mic fa de ceilali operatori.ATENIE:Limbajul C/C++ permite alctuirea de instruciuni complexe de forma: x1=x2=x3=constant;Operatorul de atribuire care contribuie la alctuirea unei expresii se asociaz de la dreapta la stnga. Pentru efectuarea corect a expresiei este necesar ca n prealabil valoarea expresiei din partea dreapt a iniializrii s fie cunoscut.Exist i posibilitatea folosirii expresiilor de forma:variabil +=(expresie)Ex. 4 int i = 0;i + = 5; //se va efectua i = (i+5)Efectuarea acestui tip de expresie se realizeaz astfel:- se adun 5 la vechea valoare a variabilei i,- se atribuie lui i noua valoare.c) Operatori de incrementare/ decrementareAcetia sunt: 1) ++(op. de incrementare)2) -- (op. de decrementare)Operatorii de incrementare/ decrementare sunt operatori de tip unari.- operatorul de incrementare crete valoarea expresiei asupra creia se aplic cu o unitate.Ex. 5int a; a = 3;a++; // aceasta este echivalent cu: a = (a+1) rezult a = 4- operatorul de decrementare scade valoarea expresiei asupra creia se aplic cu o unitate.Ex. 6

int a;

a = 3;a--; //a = (a-l)rezult a = 2;Aceti operatori pot fi folosii n dou moduri:

- prefixai: (++var)Ex. 7 int c;for(c=0;clongdoubleRegulele descresctoare a conversiilor implicite sunt:a) dac unul dintre operanzi este de tip long double rezult c i cel de-al doilea operand va fi convertit la tipul long double.b) dac unul dintre operanzi este de tip double rezult c i cel de-al doilea operand va fi convertit la tipul double.c) dac unul dintre operanzi este de tip float rezult c i cel de-al doilea operand va fi convertit la tipul float.Obs. Tipul char este reprezentat intern ca un ntreg (codul ASCII al caracterului respectiv).n expresii care conin operatori de tipuri diferite, conversia de tip se aplic succesiv pentru operatorii care au acelai grad de prioritate.Ex. 16

float p;p= 6/5 + 5.0 + 3/4Va fi interpretat astfel:- ntruct cei doi operatori sunt de tip ntreg expresia 6/5 va fi evaluat ca fiind de tip ntreg, deci 6/5 = 1;- ntruct cei doi operatori sunt de tip ntreg expresia 3/4 va fi evaluat ca fiind de tip ntreg, deci 3/4 = 0;- ntruct operatorul 5.0 este de tip float rezult c rezultatele obinute de la cele dou mpriri (6/5 i 3/4) sunt convertite la tipul real.- deci p va avea valoarea 6.0, ceea ce evident nu este corect.g) Operatorul de conversie explicit (operatorul cast)Pentru evitarea erorilor este util s se foreze schimbarea tipului unui operand sau a unei expresii. Pentru aceasta se folosete operatorul cast. Acesta este de forma:(tip conversie) variabilOperatorul cast este un operator de tip unar. Se definete prin menionarea ntre paranteze a tipului de dat spre care se foreaz. Acest operator are aceeai prioritate ca i ceilali operatori unari.Ex. 17

Ex.18

int x;

int x;float z; float z;x = 5; x = 5;z = ; z = (float) ;Pentru exemplul considerat lipsa conversiei cast float (n primul caz) va conduce la atribuirea valorii 2 pentru variabila z n loc de 2.5. Aceasta deoarece operandul x are tipul int i deci rezultatul mpririi va fi convertit la tipul int (dispare partea zecimal). n final valoarea ntreag 2 va fi convertit la realul 2.0 (n conformitate cu tipul variabilei z).Pentru evitarea acestei erori s-a folosit operatorul (float) - ex. 18, dei operatorii mpririi sunt ntregi, mprirea se va face n numere reale._1231505100.unknown

_1231505116.unknown

_1231504794.unknown