7/22/2019 Prez Cap2 2009 Protejat
1/33
PROGRAMAREA IN
LIMBAJELE C/C++
Note de curs
7/22/2019 Prez Cap2 2009 Protejat
2/33
CUPRINS1.
NOIUNI INTRODUCTIVE2. DATE, OPERATORI I EXPRESII
3. IMPLEMENTAREA STRUCTURILOR DE CONTROL
4. TABLOURI5. POINTERI
6. FUNCII
7. TIPURI DE DATE DEFINITE DE UTILIZATOR8. FISIERE
7/22/2019 Prez Cap2 2009 Protejat
3/33
CAPITOLUL 2
DATE, OPERATORI SI
EXPRESII
7/22/2019 Prez Cap2 2009 Protejat
4/33
CAP.2. DATE, OPERATORI SIEXPRESII
1. Programe in C/C++
2. Preprocesorul
3. Elemente de baza ale limbajului1. Vocabularul
2. Unitatile lexicale
4. Date in limbajele C/C++1. Tipuri de date
2. Constante3. Variabile
5. Operatori si expresii1. Operatori
2. Expresii
6. Conversii ale tipului operanzilor
7/22/2019 Prez Cap2 2009 Protejat
5/33DATE, OPERATORI SI EXPRESII 5
1.Programe in limbajul C/C++
7/22/2019 Prez Cap2 2009 Protejat
6/33DATE, OPERATORI SI EXPRESII 6
Programe in limbajul C/C++ (cont)
7/22/2019 Prez Cap2 2009 Protejat
7/33DATE, OPERATORI SI EXPRESII 7
Programe in limbajul C/C++ (cont)
7/22/2019 Prez Cap2 2009 Protejat
8/33DATE, OPERATORI SI EXPRESII 8
Programe in limbajul C/C++ (cont)
7/22/2019 Prez Cap2 2009 Protejat
9/33
DATE, OPERATORI SI EXPRESII 9
2.Preprocesorul
Directive preprocesor pentru:Includerea fiierelor header n codul surs#include
#include "headerul_meu.h"
#include "c:\\bc\\head\\headerul_meu.h"
Asignarea de nume simbolice constantelor
#define TRUE 1
#define FALSE 0
Macrodefiniii#define NEGATIV(x) -(x)
7/22/2019 Prez Cap2 2009 Protejat
10/33
DATE, OPERATORI SI EXPRESII 10
3.Elemente de baza ale limbajului VOCABULARUL - Alfabetul:
Literele mari sau mici de la A la Z (a-z) Caracterul de subliniere (_underscore)
Cifrele zecimale (0-9)
Simbolurispeciale: Caracterecare reprezint:
operatori(+, *, !=)
delimitatori(blank (spaiu), tab \t, newline \n)
Grupuri de caractere
( ){ }
//
/* */
" "
' '
7/22/2019 Prez Cap2 2009 Protejat
11/33
DATE, OPERATORI SI EXPRESII 11
Elemente de baza ale lbj-ului (cont)
Unitatile lexicale (cuvintele): Identificatori
viteza, greutate_net,Viteza,Viteza1, GreutateNet
Cuvinte cheie: Tipuri de date
int, char, double
Clase de memorare
extern, static, register Instruciuni
if, for, while
Operatorisizeof
7/22/2019 Prez Cap2 2009 Protejat
12/33
DATE, OPERATORI SI EXPRESII 12
4.Date in limbajul C/C++
Datele obiectele informationale de baza
prelucrate prin program (constante sau variabile) Atributele datelor:
nume tip
valoare
clasa de memorare
7/22/2019 Prez Cap2 2009 Protejat
13/33
DATE, OPERATORI SI EXPRESII 13
Tipuri de date
Tipul unei date = mulime de valori(pentru care
s-a adoptat un anumit mod de reprezentare nmemoria calculatorului) + mulime de operatori
Tipuri de baza: char int
float
double
Tipuri derivate: tip de baza + short, long, signed, unsigned
long int, unsigned int, long double
7/22/2019 Prez Cap2 2009 Protejat
14/33
DATE, OPERATORI SI EXPRESII 14
Tipuri de date
7/22/2019 Prez Cap2 2009 Protejat
15/33
DATE, OPERATORI SI EXPRESII 15
Constante
Constanta = literal
Nume si valoare identice
Tipul determinat automat de catre compilator
Constante: Numerice intregi
in diferite baze de numeratie
intregi derivate
Numerice reale
Caracter
Sir de caractere
7/22/2019 Prez Cap2 2009 Protejat
16/33
DATE, OPERATORI SI EXPRESII 16
Constante numerice intregi
Intregi: 234, -897, 78 //tip int, baza 10
Intregi in diferite baze de numeratie: in baza 8: 034, 077
in baza 16: 0x345, 0X67, 0x4a45, 0XFFa3 Intregi, derivate
tip long int: 14566L, -5668l
tip unsigned int: 1476u, 567767U tip unsigned long int:
234uL, 78865Ul, 5234UL
7/22/2019 Prez Cap2 2009 Protejat
17/33
DATE, OPERATORI SI EXPRESII 17
Constante numerice reale
234.56, -89.75, 78.8898 //tip double
234.56f, -89.75F, 78.8898F //tip float
Derivate
tip long double: 145.66L, -56.68l
7/22/2019 Prez Cap2 2009 Protejat
18/33
DATE, OPERATORI SI EXPRESII 18
Constante caracter
Fiecare caracter - codASCII (American
Standard Code for Information Interchange) Constante caractercorespunztoare caracterelor
imprimabile:
Exceptii: \\, \ Constante caractercorespunztoare caracterelor
neimprimabile(secvente escape)
\n , \t, \v
7/22/2019 Prez Cap2 2009 Protejat
19/33
DATE, OPERATORI SI EXPRESII 19
Constante sir de caractere
7/22/2019 Prez Cap2 2009 Protejat
20/33
DATE, OPERATORI SI EXPRESII 20
Variabile
Variabila = nume simbolic dat unor locatii de
memorie Declarare:
int i;
double a, b, c; char x;
long double A, B;
long X;
7/22/2019 Prez Cap2 2009 Protejat
21/33
DATE, OPERATORI SI EXPRESII 21
Variabile
Variabila = nume simbolic dat unor locatii de
memorie Declarare si intializare:
char backslash=\\;
int a=3*6+9;
float radiani, pi=3.14;
double x=9.56, k, l;
7/22/2019 Prez Cap2 2009 Protejat
22/33
DATE, OPERATORI SI EXPRESII 22
Folosirea calificatorilor ladeclararea variabilelor
Calificatori:
const
volatile
char backslash=\\;
const int a=3*6+9; a=34; //atribuire nepermisa!!!
float radiani, pi=3.14;double x=9.56, k, l; x=4; //permis
7/22/2019 Prez Cap2 2009 Protejat
23/33
DATE, OPERATORI SI EXPRESII 23
Operatii de intrare/iesire Limbajul C functii de I/O (in )
scanf, printf Limbajul C++:
cin - console input disp. de intrare (tastatura) si operatorul
>>; cout - console output disp. de ieire (monitorul) si
operatorul var2 >> var3;
7/22/2019 Prez Cap2 2009 Protejat
24/33
DATE, OPERATORI SI EXPRESII 24
Operatii de intrare/iesirechar c;
cout
7/22/2019 Prez Cap2 2009 Protejat
25/33
DATE, OPERATORI SI EXPRESII 25
5. Operatori si expresii Datele (constante sau variabile) legate prin
operatori (simboluri pentru operaii), formeazexpresii.
O expresie este o combinaie corect din punct
de vedere sintactic, format din operanzi ioperatori. Expresiile, ca i operanzii, au tipivaloare.
Operatori: unari
binari
ternari
7/22/2019 Prez Cap2 2009 Protejat
26/33
DATE, OPERATORI SI EXPRESII 26
Operatorul unar adres& (de refereniere)
int a;cout
7/22/2019 Prez Cap2 2009 Protejat
27/33
DATE, OPERATORI SI EXPRESII 27
Operatori aritmetici Operatori aritmetici unari
- Minus unar -a ++ Operator de incrementare a++ sau ++a
-- Operator de decrementare a-- sau --a
(forma postfixata sau prefixata)
Operatori aritmetici binari simpli
*, /, %, +, -
Operatori aritmetici binari compusi
*=, /=, %=, +=, -=
7/22/2019 Prez Cap2 2009 Protejat
28/33
DATE, OPERATORI SI EXPRESII 28
Operatori relationali binari De egalitate:
== Egal cu a==b != Diferit de a!=b
< Mai mic dect a= Mai mare sau egal cu a>=b
Diferenta intr = si ==
7/22/2019 Prez Cap2 2009 Protejat
29/33
DATE, OPERATORI SI EXPRESII 29
Operatori logici pe cuvnt Op. Semnificaie Exemple
! Not (negaie logic) !(a==b) && And (conjuncie, i logic (a>b)&&(b>c)
|| Or (disjuncie, sau logic) (a>b)||(b>c)
7/22/2019 Prez Cap2 2009 Protejat
30/33
DATE, OPERATORI SI EXPRESII 30
Operatori logici la nivel de bit SIMPLI:
Op. Semnificaie Exemple ~ Negaie (cod complementar fa de unu) ~a
& AND (Conjuncie, i logic pe bit a&0377
| OR (Disjuncie, sau logic pe bit) a|0377
^ XOR (Sau exclusiv logic pe bit) a^b
>2
COMPUSI:
&=, ^=, |=, =
7/22/2019 Prez Cap2 2009 Protejat
31/33
DATE, OPERATORI SI EXPRESII 31
Alti operatori Operatorul conditional
?: Operatorul virgula
, [, , . . . ]
Operatorul sizeof Operatorul (tip)
Operatorul unar * (de defereniere)
Operatorul ( ) (apel de functie) Operatorul de indexare [ ]
Operatori de acces la membrii struct.: ::, ., ->, .*, ->*
7/22/2019 Prez Cap2 2009 Protejat
32/33
DATE, OPERATORI SI EXPRESII 32
Prioritate si asociativitate
7/22/2019 Prez Cap2 2009 Protejat
33/33
DATE, OPERATORI SI EXPRESII 33
6. Expresii si conversii ale tipului
operanzilor
Conversiile automatechar, short int-> int
Conversiile cerute de evaluarea expresiilor
Conversiile explicite (cerute de programator)