Operator i
-
Upload
chebacalexandru -
Category
Documents
-
view
219 -
download
4
description
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