Sunteți pe pagina 1din 21

Limbaje de programare

inginereti
Tema 5
C++: date, operatori i
expresii

Programe n limbajul C++


Un program scris n limbajul C (sau C++) este compus din unul sau mai multe
fiiere surs.
Un fiier surs este un fiier text care conine codul surs (n limbajul C) al unui
program.
Fiecare fiier surs conine una sau mai multe funcii i eventual, referine ctre
unul sau mai multe fiiere header.
Program

Fiiere header

Fiier surs
Fiier surs

Funcii

main

Biblioteci C++

Funcii din bibliotec

Programe n limbajul C++


Funcia principal a unui program este numit main. Execuia programului ncepe cu
execuia acestei funcii, care poate apela, la rndul ei, alte funcii.
Toate funciile folosite n program trebuie descrise n fiierele surs (cele scrise de
ctre programator), n fiiere header (funciile predefinite, existente n limbaj), sau n
biblioteci de funcii.
Un fiier header este un fiier aflat n sistem sau creat de ctre programator, care
conine declaraii i definiii de funcii i variabile.
Aciunile din fiecare funcie sunt codificate prin instruciuni. O instruciune este
orice expresie valid (de obicei, o atribuire sau un apel de funcie), urmat de
simbolul ;

Preprocesorul

n faza de compilare a fiierului surs este invocat nti preprocesorul. Acesta trateaz
directivele speciale - numite directive preprocesor - pe care le gsete n fiierul surs.
Directivele preprocesor sunt identificate prin simbolul #, care trebuie s fie primul
caracter, diferit de spaiu, dintr-o linie.
Directivele preprocesor sunt utilizate la:
includerea fiierelor header
definirea numelor constantelor simbolice
definirea macro-urilor
realizarea altor funcii (de exemplu, compilarea condiionat).

Preprocesorul

Exemple
#include <iostream.h>

fisier header sistem

#include headerul_meu.h

fisier header utilizator

#include "c:\\bc\\headerul_meu.h
#define TRUE

#define FALSE

#define NEGATIV(x)

definirea numelor a doua constante simbolice

-(x)

macrodefiniie

VOCABULARUL
n scrierea programelor n limbajul C/C++ pot fi folosite doar anumite simboluri care
alctuiesc alfabetul limbajului. Acesta cuprinde:
Literele mari sau mici de la A la Z (a-z);
Caracterul subliniere ( _ underscore), folosit, de obicei, ca element de legtura ntre
cuvintele compuse;
Cifrele zecimale (0-9);
Simboluri speciale:
Caractere:
operatori (Exemple: +, *, !=);
delimitatori (Exemple: spaiu, tab \t, newline \n, cu rolul de a
separa cuvintele);
Grupuri (perechi de caractere).
Grupurile de caractere, numire adesea separatori, pot fi:
()
- ncadreaz lista de argumente ale unei funcii sau sunt folosite n expresii pentru
schimbarea ordinii de efectuare a operaiilor (n ultimul caz, fiind operator);
{ } - ncadreaz instruciunile compuse;
//
- Indic nceputul unui comentariu care se poate ntinde pn la sfritul liniei;
/* */ - Indic nceputul i sfritul unui comentariu care poate cuprinde mai multe linii;
" " - ncadreaz o constant ir (un ir de caractere);
''
- ncadreaz o constant caracter (un caracter imprimabil sau o secven escape).

UNITILE LEXICALE
Unitile lexicale (cuvintele) limbajului C/C++ reprezint grupuri de caractere cu o semnificaie de
sine stttoare. Acestea sunt:
Identificatori;
Cuvinte cheie ale limbajului;
Identificatorii reprezint numele unor date (constante sau variabile), sau ale unor funcii.
Identificatorul este format dintr-un ir de litere, cifre sau caracterul de subliniere (underscore),
trebuie s nceap cu o liter sau cu caracterul de subliniere i s fie sugestivi.
Exemple: vitez, greutate_net, Viteza, Viteza1, GreutateNet
Identificatorii pot conine litere mici sau mari, dar limbajul C++ este senzitiv la majuscule i
minuscule (case-sensitive). Astfel, identificatorii viteza i Viteza sunt diferii.
Nu pot fi folosii ca identificatori cuvintele cheie. Identificatorii pot fi standard (ca de exemplu
numele unor funcii predefinite: scanf, clear, etc.) sau alei de utilizator.
Cuvintele cheie sunt cuvinte ale limbajului, mprumutate din limba englez, crora programatorul
nu le poate da o alt utilizare. Cuvintele cheie se scriu cu litere mici i pot reprezenta:
Tipuri de date (Exemple: int, char, double);
Clase de memorare (Exemple: extern, static, register);
Instruciuni (Exemple: if, for, while);
Operatori (Exemplu: sizeof).

TIPURI DE DATE

Tipul unei date const ntr-o mulime de valori pentru care s-a adoptat un anumit mod
de reprezentare n memoria calculatorului i o mulime de operatori care pot fi aplicai
acestor valori. Tipul unei date determin lungimea zonei de memorie ocupat de acea
dat. n general, lungimea zonei de memorare este dependent de calculatorul pe care
s-a implementat compilatorul.
Tipurile de baz sunt:
char un singur octet (1 byte=8 bii), capabil s conin codul unui caracter din
setul local de caractere;
int
numr ntreg, reflect n mod tipic mrimea natural din calculatorul utilizat;
float numr real, n virgul mobil, simpl precizie;
double numr real, n virgul mobil, dubl precizie.
n completare exist un numr de calificatori, care se pot aplica tipurilor de baz char,
int, float sau double: short, long, signed i unsigned. Astfel, se obin tipurile derivate
de date.

CONSTANTE

O constant este un literal (o form extern de reprezentare) numeric,


caracter sau ir de caractere.
Numele i valoarea unei constante sunt identice.
Valoarea unei constante nu poate fi schimbat n timpul execuiei
programului n care a fost utilizat.
Tipul i valoarea ei sunt determinate n mod automat, de ctre compilator,
pe baza caracterelor care compun literalul.

CONSTANTE NUMERICE
Constante ntregi
Constantele ntregi sunt literali numerici (compui din cifre), fr punct zecimal, n
baza 10, 8 sau 16
45
-78 // constante ntregi decimale (n baza 10), tip int
056
077 // constante ntregi octale, tip int
0x45
0x3A
0Xbc // constante ntregi hexagesimale, tip int
Constante numerice, reale
Dac o constant numeric conine punctul zecimal, ea este de tipul double.
3.1459
//tip double
Constante reale n format tiinific
Numrul poate fi urmat de caracterul e sau E i de un numr ntreg, cu sau fr semn. n
acest caz, constanta este n notaie tiinific.
1.5e-2
//tip double, n notaie tiinific, valoare 1.5x10-2

CONSTANTE CARACTER
Constantele caracter sunt ncadrate ntre apostroafe.
Exemplu:
'a'
//tip char
O constant caracter are ca valoare codul ASCII al caracterului pe care l reprezint.
Constante caracter corespunztoare caracterelor imprimabile
O constant caracter corespunztoare unui caracter imprimabil se reprezint prin
caracterul respectiv inclus ntre apostroafe.
Exemplu:
Constant caracter
Valoare
A
65
a
97
0
48
*
42
Excepii de la regula de mai sus le constituie caracterele imprimabile apostrof (') i
backslash (\).
Caracterul backslash se reprezint:
'\\'
Caracterul apostrof se reprezint:
'\''

CONSTANTE CARACTER
Constante caracter corespunztoare caracterelor neimprimabile
Pentru caracterele neimprimabile, se folosesc secvene escape. O secven escape
furnizeaz un mecanism general i extensibil pentru reprezentarea caracterelor
invizibile sau greu de obinut.
Constant
caracter

Valoare
(Cod
ASCII)

Denumire
a
caracterul
ui

Utilizare

\n

10

LF

rnd nou (Line Feed)

\t

HT

tabulator orizontal

\r

13

CR

poziioneaz cursorul n coloana 1 din rndul


curent

\f

12

FF

salt de pagin la imprimant (Form Feed)

\a

BEL

activare sunet

CONSTANTE IR DE CARACTERE
Constanta ir este o succesiune de zero sau mai multe caractere, ncadrate de ghilimele.
n componena unui ir de caractere, poate intra orice caracter, deci i caracterele
escape. Lungimea unui ir este practic nelimitat.
Dac se dorete continuarea unui ir pe rndul urmtor, se folosete caracterul
backslash.

Exemple:
Acesta este un ir de caractere
ir de caractere continuat\
pe rndul urmtor!
ir \t cu secvene escape\n

VARIABILE

Variabilele sunt date (obiecte informaionale) ale cror valori se pot modifica n
timpul execuiei programului.
Variabilele sunt caracterizate de atributele nume, tip, valoare i clas de memorare.
Dac o dat nu are legturi cu alte date (de exemplu, relaia de ordine), vom spune c
este o dat izolat. O dat izolat este o variabil simpl.
Dac datele se grupeaz ntr-un anumit mod (n tablouri - vectori, matrici - sau
structuri), variabilele sunt compuse (structurate).
Este necesar specificarea tipului fiecrei variabile la declararea acesteia. Toate
variabilele care vor fi folosite n program, trebuie declarate nainte de utilizare.

Declararea variabilelor
Modul general de declarare a variabilelor este:
tip_variabile list_nume_variabile;
Se specific tipul variabilei(lor) i o list format din unul sau mai muli identificatori ai
variabilelor de tipul respectiv.
Declaraiile de variabile pot apare n orice loc n programul surs.
Exemple:
int i, j;
char c;
float lungime;

/*declararea var. simple i, j, de tip int.*/


/* declararea variabilei simple c, de tip char. */
/* declararea variabilei simple lungime.*/

n momentul declarrii unei variabile, acesteia i se poate atribui o anumit valoare.


Forma unei declaraii de variabile cu atribuire este:
tip_variabil nume_variabil=expresie;
Exemple:
char backslash=\\;
int a=7*9+2;
float radiani, pi=3.14
short int z=3;
char d=\011;
char LinieNoua=\n;

Operaii de intrare/ieire
n limbajul C++ sunt predefinite urmtoarele dispozitive logice de intrare/ieire:
cin - console input - dispozitivul de intrare (tastatura);
cout - console output - dispozitivul de ieire (monitorul).
Transferul informaiei se realizeaz cu operatorul >> pentru intrare i operatorul <<
pentru ieire.
Exemple:
cout << var;
/* afieaz valoarea variabilei var pe monitor*/
cin >> var;
/* citete valoarea variabilei var de la tasatatur */
cout << var1 << var2 << var3;
cin >> var1 >> var2 >> var3;
Operanzii operatorului extractor (>>) pot fi doar nume de variabile.
Operanzii operatorului insertor (<<) pot fi nume de variabile (caz n care se afieaz
valoarea variabilei), constante sau expresii.
Utilizarea dispozitivelor i operatorilor de intrare/ieire n C++ impune includerea
fiierului iostream.h.

OPERATORI I EXPRESII
Datele (constante sau variabile) legate prin operatori, formeaz expresii.
Operatorii pot fi:
unari (necesit un singur operand);
binari (necesit doi operanzi);
ternari (trei operanzi).
Operatorul de atribuire (de asignare) este un operator binar care se aplic tuturor
tipurilor de variabile. Este folosit sub formele urmtoare:
nume_variabil=expresie;
expresie1=expresie2;
Dac tipurile membrilor stng i drept difer, se pot realiza anumite conversii

Operatori aritmetici unari:


Operator
Semnificaie
Minus unar
++
Operator de incrementare
(adun 1 la valoarea operandului)
-Operator de decrementare
(scade 1 din valoarea operandului)
y=++x
y=x++
y=--x
y=x--

este echivalent cu: x=x+1;


y=x;
este echivalent cu: y=x;
x=x+1;
este echivalent cu: x=x-1;
y=x;
este echivalent cu: y=x;
x=x-1;

Exemple
-a
a++
sau
++a
a-sau
--a

Operatori aritmetici binari:


Operator
Semnificaie
Exemple
+
Adunarea celor doi operanzi
a+b
Scderea celor doi operanzi
a-b
*
nmulirea celor doi operanzi
a*b
/
mprirea celor doi operanzi
a/b
%
Operatorul modulo (operatorul rest)
a%b
(furnizeaz restul mpririi operatorului stng la operatorul drept).
Operatori aritmetici binari compui
Operator
Semnificaie
+=
a=a+b
-=
a=a+b
*=
a=a*b
/=
a=a/b
%=
a=a%b

Exemple
a+=b
a-=b
a*=b
a/=b
a%=b

Operatori relaionali binari


Operator
==
!=
<
<=
>
>=

Semnificaie
Egal cu
Diferit de
Mai mic dect
Mai mic sau egal
Mai mare dect
Mai mare sau egal

Clas de operatori
Unari

Operatori
-

(unar)
*

Multiplicativi

-/

Aditivi

Asociativitate

++

de la dreapta la stnga

de la stnga la dreapta

de la stnga la dreapta

Atribuire
<

Relaionali
De egalitate
Atribuire i aritmetici binari

Exemple
a==b
a!=b
a<b
a<=b
a>b
a>=b

de la dreapta la stnga

<=

>

==

!=

*=
+=

/=
-=

>=

de la stnga la dreapta
de la stnga la dreapta

%=

de la dreapta la stnga

Operatori logici pe cuvnt


Operator
Semnificaie
!
Not (negaie logic)
&&
And (conjuncie, i logic)
||
Or (disjuncie, sau logic)

Exemple
!(a==b)
(a>b) && (b>c)
(a>b) || (b>c)

Operatorul condiional
Este un operator ternar (necesit 3 operanzi), utilizat n construcii de forma:
expresie1?expresie2:expresie3
Se evalueaz expresia1, care trebuie s fie o expresie logic. Dac aceasta este
adevrat, atunci tipul i valoarea ntregii expresii vor fi aceleai cu tipul i valoarea
expresiei2. Altfel (dac expresie1 este fals), tipul i valoarea ntregii expresii vor fi
aceleai cu tipul i valoarea expresiei3.
Acest lucru este echivalent cu:
Dac expresie1
Atunci evalueaz expresie2
Altfel evalueaz expresie3
Exemplu:
int semn=(x<0)?-1:1
Dac x<0, atunci semn=-1, altfel semn=1.

S-ar putea să vă placă și