Documente Academic
Documente Profesional
Documente Cultură
Obs.: C++ este limbaj “case sensitive”, literele mici sunt diferite de
literele mari corespunzatoare.
Ex.:
int diferit de Int diferit de INT
Ex.: int a = 3;
NU trebuie confundate cu
float b = 5.78;
char c = ‘v’;
! notiunea de variabila constanta
𝑒 𝑓 /𝐹
[±]ParteIntreaga.ParteFractionala ± 𝐸𝑥𝑝𝑜𝑛𝑒𝑛𝑡
𝐸 𝑙 /𝐿
Obs.: Implicit (fara specificator de tip) constantele reale sunt de tip double.
C. Constante caracter
Constanta multi-caracter (caractere speciale, caractere de
control, secvente de escape):
- caractere speciale: ‘\n’ = new line
‘\t’ = tab
‘\a’ = sunet
‘\\’ = caracterul \
‘\’’ = caracterul ‘
‘\”’ = caracterul ”
- caractere de control, specificate prin cod ASCII:
‘\nn’ = caracter cu cod ASCII in format zecimal
‘\0nnn’= caracter cu cod ASCII in format octal
‘\xnn’= caracter cu cod ASCII in format hexazecimal
Ex.: struct s;
- - - - - - - - - - -
struct s; // corect, redeclarare
int a;
- - - - - - - - - - - -
int a; // incorect, eroare, variabila redefinita
Domeniu de definitie (scope)
void fct()
{ int i=100;
int a;
void fct()
{ int b=1;
static int c=2;
a++,b++,c++;
Obs.:
Tipul long float este corect (sintactic), insa este echivalent
cu double
Constanta simbolica
Se poate defini o constanta prin directiva de preprocesare:
#define nume valoare
Ex.: #define a2 54
! Fara ;
Constanta simbolica
Ex.: #define a2 54
#define or 39
. . . . . . . . .
a2 = 10;
for(i=0;i<10;i++)
. . . . . . . . .
Operatori
Operatori de atribuire
Operatorul simplu (standard) =
Operatori relationali
Exemplu:
(x+3)<5 dacă x=1 valoarea întoarsă este adevărat (true)
dacă x=4 valoarea întoarsă este fals (false)
Tema:
Sa se evalueze: x + 3 < 5
Opertatori. Operatori de egalitate
Operatoratori logici
Exemplu: ((x+5)<3)||(x>3)
dacă x=3 răspunsul este fals (false)
dacă x=5 răspunsul este adevărat (true)
dacă x=-4 răspunsul este adevărat (true)
Tema:
int a=5,b=7;
boole t;
t = ((a+=7)&3)||(b==8);
cout << a << b << t << endl;
Opertatori. Operatori logici
Exemplu: ((x+5)<3)&&(x<3)
dacă x=3 răspunsul este fals (false)
dacă x=-3 răspunsul este adevărat (true)
dacă x=-4 răspunsul este adevărat (true)
Tema:
int a=5,b=7;
boole t;
t = ((a^=7)&3)&&(!(b+8))||(a=9);
cout << a << b << t << endl;
Opertatori. Operatori logici
Mai exact:
• pentru && evaluarea se face până la prima expresie care are valoare
fals => răspunsul final fiind automat fals.
• pentru || evaluarea se face până la primul rezultat adevarat, =>
rezultatul final luând valoarea adevarat.
Opertatori. Operatori logici
Exemplu:
int a,b,c;
a=b=10;
c=(a=0)&&(b=1)&&(a=2);
cout<<a<<b<<c<<endl;
Opertatori. Operatori de incrementare/decrementare
Operatori de incrementare/decrementare
Operatori de incrementare/decrementare
Mod de prelucrare
operaţie postfixata (sufixate):
• valoarea operandului este mai întâi folosită în prelucrare (cu
valoarea curenta),
• iar apoi este incrementată / decrementată.
Exemplu:
int a=10,x;
x=a++; /* echivalent cu:
x=a;
a=a+1; */
cout<<a<<x<<endl;
Opertatori. Operatori de incrementare/decrementare
Operatori de incrementare/decrementare
Mod de prelucrare
operaţie prefixata:
• valoarea operandului este mai întâi incrementată / decrementată,
• iar apoi este folosită în prelucrare (cu noua valoarea).
Exemplu:
int a=10,x;
x=--a; /* echivalent cu:
a=a-1;
x=a; */
cout<<a<<x<<endl;
Opertatori. Operatori de incrementare/decrementare
Operatori de incrementare/decrementare
Tema 1:
int a=10;
cout<<a++<<endl;
cout<<++a<<endl;
Tema 2:
int x,a=10;
x= ++a--;
cout<<a<<endl<<x<<end;
Opertatori. Operatorul conditional
Operatorul conditional ?:
Sintaxa:
expresie_condiţie ? expresie_1 : expresie_2;
Echivalent:
dacă expresie_condiţie este adevărată
atunci
execută expresia_1
altfel
execută expresia_2
Opertatori. Operatorul conditional
Operatorul conditional ?:
Exemplu:
Operatorul virgula ,
Sintaxa:
expresie_conditie ? expresie1[, expresie2]:expresie4[, expresie5]
int a=5, b;
b = a>0?a,a++:-a,a--;
Opertatori. Operatorul sizeof
Operatorul sizeof
Exemplu:
int a=5;
cout<<”Dim. var. a este:” << sizeof(a) << endl;
cout <<”Dim. float:” << sizeof(float) << endl;
Opertatori. Operatorul cast
Operatorul cast
Dimensiune
Sensul de promovare
double
float
unsigned long long
long long
unsigned long
long
unsigned int
int
Dacă tipul din stânga este mai larg decât cel din dreapta, atunci în
procesul de atribuire NU se obţin erori.
În caz contrar, se obţine o pierdere de informaţie (trunchiere).