Tema 2 Operatori. Expresii. Precedența operatorilor. Conversii. Operatori limbajului C++
Operatorii sunt caractere speciale care indică
operaţia care se efectuează în cadrul unui program. Clasificarea operatorilor:
operatori aritmetici operatori relaţionali
operatori de egalitate operatori logici operatori de conversie explicită (cast) operatori operatori de logici pe biţi incrementare şi operatori de lungime decrementare sizeof operatorul „ ,‟ (virgulă); operatori de atribuire; operatorul condiţional Operatori aritmetici
În cele mai simple programe se
pot utiliza operaţii matematice cum ar fi adunarea, scăderea, înmulţirea şi împărţirea. Exemplu: Fie două variabile a=30 şi b=2 de tip întreg int (numere întregi) atunci:
Operatie de atribuire Operaţie echivalentă Efect
compusă a += b; a=a+b; a are valoarea 32 a -= b; a=a-b; a are valoarea 28 a *= b; a=a*b; a are valoarea 60 a /= b; a=a/b; a are valoarea 15 a=b*=2; a=b=b*2; a are valoarea 4 a=b=a*b; a=b=60; a şi b au valoarea 60 Exemplu de program #include <iostream> using namespace std; int main() { int secunde_pe_ora; float media; secunde_pe_ora= 60 * 60; media = (5 + 10 + 15 + 20) / 4; cout<<"Numarul de secunde intr-o ora este "; cout<<secunde_pe_ora<<endl; cout<<"Media numerelor 5, 10, 15 si 20 este "; cout<<media<<endl; cout<<"Numarul de secunde in 48 de minute este "<<48 * 60<<endl; return 0; } Operatori relaţionali
În programe, prin aplicarea acestor operatori
relaţionali se pot obţine două valori posibile, la evaluarea expresiilor care îi conţin: 0 – ceea ce înseamnă că expresia este falsă 1 – ceea ce înseamnă că expresia este adevărată Operatori de egalitate
În programe, prin aplicarea acestor operatori de
egalitate se pot obţine două valori posibile, la evaluarea expresiilor care îi conţin: 0 – ceea ce înseamnă că expresia este falsă 1 – ceea ce înseamnă că expresia este adevărată Operatori logici În limbajul C/C++ nu există valori speciale pentru adevărat sau fals şi de aceea valoarea de fals este reprezentată prin zero (0), iar valoarea de adevărat este reprezentată prin orice număr diferit de zero ( 0 ).
Observaţie : Din punct de vedere al priorităţii,
Tabele de adevăr operatorii unari au cea mai mare prioritate şi de ale celor trei operatori logici aceea, în acest caz, operatorul ! are prioritatea cea mai mare, urmat în ordine de operatorul && şi de operatorul ||. Exemplu Operatorul de atribuire “=” Are cea mai mică prioritate după operatorul virgulă şi apare sub forma: Operatori de incrementare ( ++ ) şi decrementare ( -- )
-incrementarea se face înainte de evaluarea expresiei în care apare +
+.
- incrementarea se face după evaluarea expresiei în care apare ++.
-decrementarea se face înainte de evaluarea expresiei în care apare --.
-decrementarea se face după evaluarea expresiei în care apare --.
Exemple Operatorul de conversie explicită (cast)
este un operator unar poate fi şi o expresie
Operatorul de lungime (sizeof) Este un operator cu o prioritate mare, folosit în determinarea lungimii în octeţi a unui operand care poate fi o expresie sau un tip de date. Operatorii condiţionali “?” “:” Se folosesc numai împreună şi funcţionează ca o instrucţiune if. Operatorul de referenţiere (adresa) Este un operator unar care permite determinarea adresei zonei de memorie in care este stocata o variabila: Tabela de priorităţi a operatorilor Expresii O expresie este alcătuită din unul sau mai mulţi operanzi legaţi între ei prin operatori. Operanzii pot fi constante, variabile sau funcţii. Operanzii reprezintă valorile care intră în calcul, iar operatorii desemnează operaţiile care se execută în cadrul expresiei.