Documente Academic
Documente Profesional
Documente Cultură
TEMA:
1. Date, operatori, expresii.
NOŢIUNI TEORETICE
1. Date în limbajele C/C++
Într-un program datele (obiecte informaţionale de bază) apar sub formă de:
Constante (valori cunoscute anticipat, care nu se modifică);
Variabile (nume simbolice utilizate pentru memorarea valorilor introduse pentru datele de
intrare sau a rezultatelor).
Tipuri de bază:
char un singur octet (1 byte = 8 biţi), capabil să conţină codul unui caracter
(un număr) din setul local de caractere; este folosit pentru caracterele ASCII
(din mai vechiul stil C sau pentru obiectele std::string)
wchar_t doi octeți, la compilatoarele mai noi, memorează codul caracterului în format
UNICODE (UTF-16 în Windows, eventual diferit în alte sisteme de operare).
Este un tip de caracter folosit în șiruri de tip std::wstring, utile în
internaționalizarea aplicațiilor, deoarece permir codificarea unui număr mai
mare de caractere, folosite în diverse limbi
bool un octet care memorează valoarea logică/booleană true sau false (la
compilatoarele mai noi)
int număr întreg, reflectă în mod tipic mărimea naturală din calculatorul utilizat;
float număr real, în virgulă mobilă, simplă precizie;
double număr real, în virgulă mobilă, dublă precizie.
Tipuri derivate, obţinute prin folosirea calificatorilor short, long, signed şi unsigned,
alături de tipurile de bază.
1.1. Constante
Constante numerice întregi (literali numerici, compuşi din cifre, fără punct zecimal).
Constante întregi în baza 10 (Ex. 56, -98), 8 (Ex. 0476) sau 16 (Ex. 0x458, 0X4Abc).
1.2. Variabile
Variabilele sunt nume simbolice utilizate pentru memorarea valorilor introduse pentru datele
de intrare sau a rezultatelor. Dacă la o constantă ne puteam referi folosind caracterele
componente, la o variabilă ne vom referi prin numele ei.
Modul general de declarare a variabilelor este:
<tip_variabile> <listă_nume_variabile>;
Modul general de declarare a variabilelor şi iniţializarea acestora în momentul declarării:
<tip_var> <nume_var1>=<expr1>[,<nume_var2>=<expr2>, …];
2. Operaţii de intrare/ieşire
3. Operatori
Datele (constante sau variabile) legate prin operatori (simboluri pentru operaţii), formează
expresii (figura 2.4). Operatorii care pot fi aplicaţi datelor (operanzilor) depind de tipul
Autor: Diana Ştefănescu 2
REFERAT DE LABORATOR Nr.2, 3 (din 14) 2021
operanzilor, datorită faptului că tipul unei date constă într-o mulţime de valori pentru care s-a
adoptat un anumit mod de reprezentare în memoria calculatorului şi o mulţime de operatori
care pot fi aplicaţi acestor valori. În funcţie de numărul operanzilor necesari, operatorii pot fi:
unari (necesită un singur operand);
binari (necesită doi operanzi);
ternari (trei operanzi).
2. Expresii
Prin combinarea operanzilor şi a operatorilor se obţin expresii. O expresie este o combinaţie
corectă din punct de vedere sintactic, formată din operanzi şi operatori. Expresiile, ca şi
operanzii, au tip şi valoare. Tipul unei expresii este dat de tipul rezultatului obţinut în urma
evaluării acesteia. La evaluarea unei expresii se aplică regulile de prioritate şi asociativitate a
operatorilor care apar în expresie. Ordinea de aplicare a operatorilor poate fi schimbată prin
folosirea parantezelor. La alcătuirea expresiilor, este indicată evitarea expresiilor în care
acelaşi operand apare de mai multe ori.
Operatorii din limbajul C sunt prezentaţi în tabelul 3.1., împreună cu regulile de prioritate şi
asociativitate.
3. Conversii de tip
Tabelul 3.1.
Nr. Clasă de operatori Operatori Asociativitate
1. Primari () [] . -> :: de la stânga la dreapta
2. Unari ! ~ ++ -- sizeof (tip) de la dreapta la stânga
-(unar) *(deferenţiere)
&(referenţiere)
3. Multiplicativi * / % de la stânga la dreapta
4. Aditivi + - de la stânga la dreapta
5. Deplasare pe bit << >> de la stânga la dreapta
6. Relaţionali < <= > >= de la stânga la dreapta
7. De egalitate == != de la stânga la dreapta
8. Operatori logici & (ŞI logic pe bit) de la stânga la dreapta
9. ^ (XOR pe bit) de la stânga la dreapta
10. | (SAU logic pe bit) de la stânga la dreapta
11. && de la stânga la dreapta
12. || de la stânga la dreapta
13. Condiţional ?: de la dreapta la stânga
14. De atribuire, aritm. = += -= *= %= de la dreapta la stânga
compuşi, logici pe &= ^= |= <<= >>=
bit compuşi
15. Virgulă , de la stânga la dreapta
13. Rescrieţi expresiile de mai jos astfel încât ele să fie valide în C++. Scrieți apoi un
program în care să folosiţi aceste expresii şi verificaţi rezultatele expresiilor.
1. x, y şi z sunt mai mari decât 0
2. x nu este egal nici cu y nici cu z
3. x este egal cu y şi cu z
4. x este mai mic decât y, iar y este mai mic sau egal cu z