Documente Academic
Documente Profesional
Documente Cultură
PCLP4 - 1 PCLP4 - 2
PCLP4 - 3 PCLP4 - 4
1
Operatori de atribuire (3) Operatorul conditional (1)
Exemplu: Sa se calculeze valorile expresiilor 2x2+3x si expresie1 ? expresie2 : expresie3
2x2+3x-10 pentru x citit de la consola. - expresie1 este o conditie
#include <stdio.h> ex. int a = 9, b = 14;
void main() b = (b>a)?(a+1):(a-1);
{ double x, y; Exemplul 1: Afisarea valorii absolute a unui numar.
printf(″introduceti numarul:″); #include <stdio.h>
scanf(″%lf″, &x); void main()
printf(″x=%lf, y=2*x*x+3*x=%lf\n″, x, y=2*x*x+3*x ); { int a;
y -= 10; scanf(″%d″, &a);
printf(″x=%lf, y=2*x*x+3*x-10=%lf\n″, x, y); printf(″a=%d\tabs(a)=%d\n″, a, a<0 ? –a : a);
} }
PCLP4 - 5 PCLP4 - 6
2
Operatorul dimensiune Operatorul de fortare a tipului (1)
- operator unar cu precedenta mare - operator unar cu precedenta mare
sizeof data (tip) operand
sizeof (tip) Exemplul 1: Calculeaza radacina patrata a unui
ex.1 int x, y; numar intreg citit de la consola.
y 2
printf(″y = %d\n″, y = sizeof x); #include <stdio.h>
#include <math.h>
ex.2 double x[8];
a 8
void main()
int a, b; double sqrt(double);
{ long int nr;
a = sizeof x[4];
b 64 printf(″introduceti numarul:″);
b = sizeof x;
scanf(″%ld″, &nr);
ex.3 a = sizeof (char); a 1 printf(″nr=%ld, sqrt(nr)=%lf\n″, nr, sqrt((double)nr);
PCLP4 - 9
} PCLP4 - 10
3
Operatorii paranteza Alti operatori
(expresie) • operatorul adresa (de referentiere) – &
- au prioritatea cea mai mare • operatorul de indirectare (de dereferentiere) – *
- impun ordinea efectuarii operatiilor • operatorii de accesare a componentelor unei
- nu se aplica operatorilor de incrementare/decrementare structuri – . si ->
si operatorului adresa: • operatorii unari + si -
(a+10)++; --(x+y); &(i+j); b= +a; b = -a
ex.: int x, *pa, a[10];
[expresie]
pa = &a[7];
- utilizate pentru indicii tablourilor (op. de indexare) x = *pa;
ex.: a[7]; a[2*i+j] *&x;
PCLP4 - 13 PCLP4 - 14