Documente Academic
Documente Profesional
Documente Cultură
Precedenţa operatorilor determină ordinea de evaluare a operaţiilor dintr-o expresie. În funcţie de precedenţă,
operatorii sunt împărţiţi în urmatoarele categorii prezentate în tabelul următor :
Cei din prima categorie au prioritatea maximă. Precedenţa descreşte cu cât creşte numărul categoriei din
care face parte operatorul. Operatorii din aceeaşi categorie au acelaşi grad de precedenţă. Ordinea de evaluare a
operaţiilor este de la stânga la dreapta, cu excepţia operatorilor unari (categoria 2) şi a operatorilor de atribuire
(categoria 9) care au ordinea de evaluare de la dreapta la stânga.
Totuşi ordinea de efectuare a operaţiilor nu este întotdeauna perfect determinată. Se poate face o
reorganizare a expresiilor pentru a obţine un cod mai eficient, dar ordinea de efectuare a operaţiilor nu este strict
definită.
Acest operator (=) realizează memorarea valorii unei expresii într-o variabilă. Are sintaxa :
variabila=expresie;
Efectul este stocarea valorii expresiei din membrul drept la adresa variabilei scrise în membrul stâng.
În plus, atribuirea însăşi are o valoare, şi anume valoarea variabilei din stânga după memorarea conţinutului valorii
expresiei. Datorită acestui efect, rezultă în final o valoare a expresiei de atribuire care poate fi folosită direct într-o altă
atribuire.
Operatorii aritmetici pot folosi, mai puţin operatorul modulo care poate lucra numai cu numere întregi, atât
numere întregi cât şi numere reale.
Exemplul 1 : Folosirea operatorilor aritmetici .
Informatică clasa a IX-a 2
i,j,n (intregi)
x(real)
n=10*4-7 /* n=33 */
i=[9/2] /* i=4 ca rezultatul împărţirii a două numere întregi */
j=n%i /* j=1 ca restul împărţirii a două numere întregi */
x=n /* x=33.00 - ca număr real*/
x=x%i /* se obţine eroare operatorul % fiind definit numai pt. numere întregi*/
Operatorii relaţionali pot fi folosiţi pentru date de tip aritmetic şi pointeri. Rezultatul este 0 dacă relaţia nu este
îndeplinită şi 1 dacă este îndeplinită.
Convenţie : adevărat=1 , fals=0.
Exemplul 1 :
egal,x,y (intreg)
x=17;
y=2*x-1;
egal=x /* egal=17 */
Exemplul 2:
Presupunemn că avem declaraţiile: Expresie Expresie echivalenta Valoare
i=1,j=2,k=3 (intreg)
i<j-k i<(j-k) 0
x=5.5,y=7.7 (real)
-i+5*j>=k+1 ((-i)+(5*j))>=(k+1) 1
Atunci :
x-y<=j-k-1 (x-y)<=((j-k)-1) 1
X+k+7<y/k ((x+k)+7)<(y/k) 0
Exemplul 3:
Presupunem că avem declaraţiile:
i=1,j=2,k=3(intreg) Expresie Expresie echivalenta Valoare
Atunci : i=j j=i 0
I<>j J<>i 1
i+j+k=-2*-k ((i+j)+k)=((-2)*(-k)) 1
Operatorii logici admit operanzi de orice tip scalar (simplu) pe care îi interpretează conform comparaţiei cu 0.
Dacă valoarea este 0, expresia este considerată falsă, iar dacă valoarea este nenulă, expresia se consideră
adevărată. Rezultatul unei expresii logice este de tip întreg şi se bazează pe convenţiile : adevărat=1 , fals=0.
Exemplul 3:
Presupunem că avem declaraţiile: Expresie Expresie echivalenta Valoare
i=7,j=7(intreg) !(i-j)+1 (!(i-j))+1 2
x=0.0,y=999.9(real) !i-j+1 ((!i)-j)+1 -6
Atunci: !!(x+3.3) !(!(x+3.3)) 1
!x*!!y (!x)*(!(!y)) 1
Exemplul 4:
Presupunem că avem declaraţiile: Expresie Expresie echivalenta Valoare
i=3,j=3,k=3(intreg) I and j and k (I and j)and k 1
x=0.0,y=2.3(real) x||i&&j-3 x||(i&&(j-3)) 0
Atunci: i<j&&x<y (i<j)&&(x<y) 0
i<j||x<y (i<j)||(x<y) 1
Probleme propuse:
3. Se dau datele logice a=adevărat, b=fals şi c= adevărat. Evaluează următoarele expresii logice:
a. (a and b) and not(a and c) c. ((c and b) or a) or (a and b)
b. (not a) or (not (b or c)) d. not b and (not (a and c))
4. Evaluati expresiile:
a=((b<3)+(2=8))-2;
b=((2<=3)>=(7!=8))+2;
c=((2<3)*(2=8))<2;
d=(2=3)=(2=8);
5. Fie o expresie care conţine operatori aritmetici, relaţionali şi de atribuire şi nu conţine paranteze. Să se precizeze,
care va fi ordinea de evaluare a operatorilor ?
a) de atribuire, relaţionali, aritmetici
b) aritmetici,relaţionali, de atribuire
c) de atribuire, aritmetici, relaţionali
6. Fie expresia de mai jos :
(x>-1) and Not(x>1)or(x>=5)
Intervalul selectat este :
a) x (-1,1] [5, ∞)
b) x (-∞ ,-1) [1,∞ )
c) x (- ∞,-1) (1,5)
d) x [-1,1] [5,∞ )
7. Care este intervalul descris de expresia logică de mai jos ?
(x<=-2)or(x>-1)and not(x>=1)||(x>5)
a) x (-∞ , -2] (-1,1] [5, ∞ )
b) x (-∞ ,-2] [-1,1] (5, ∞ )
c) x(-∞ ,-2] (-1,1] [5, ∞ )
d) x (-∞ ,-2] (-1,1) (5, ∞ )