Sunteți pe pagina 1din 4

Ana Intuneric

Limbajul C++
Unităţile lexicale sunt construcţiile elementare ale limbajului. Acestea sunt simboluri, formate din unul sau mai
multe caractere, care au o anumită semnificaţie în limbaj. După rolul îndeplinit, unităţile lexicale sunt:
 identificatori
 cuvinte cheie
 literali
 separatori
 operatori
 comentarii şi spaţii

Identificatori
Numele date programelor sau componentelor acestora (clase, variabile, functii etc.) se numesc identificatori.
Identificatorii se aleg de către programator, respectând anumite reguli. Identificatorii pot fi formaţi numai din litere,
cifre şi caracterul _ (underscore), cu restricţia că primul caracter nu poate fi o cifră. Lungimea maximă a unui
identificator depinde de compilator.
Exemple de identificatori valabili: p123, v15XB7, marca1, pret_de_vanzare
Este de preferat ca identificatorii să aibă nume sugestive, amintim însă că, pentru compilator, identificatorii nu au nicio
altă semnificaţie, deci, din acest punct de vedere, toate exemplele de identificatori date aici sunt la fel de bune.

Cuvinte cheie
În orice limbaj de programare, există un set de cuvinte, numite cuvinte cheie, care sunt considerate simboluri
sintactice şi nu pot fi folosite în program ca identificatori. De exemplu: for, while, pentru că acestea sunt nume de
instrucţiuni.

Literali (constante)
Literalii sunt reprezentările în fisierele sursa ale valorilor constante.
Exemple de literali:
 caractere: 'n', 'A', '+', '=', '5';
 şiruri de caractere: "sir de caractere", "abc!79.28#^z", “01234”;
 numere întregi: 14726, -25413;
 numere reale: 12.7389, -0.05673, 2.3075E12, -1.4237E-5;

Separatori
Separatorul este un caracter care delimitează formele sintactice sau le separă între ele. În limbajul C++ se folosesc
următorii separatori: spaţiul, caracterul CR, sfârşit de linie sau ';'.

Comentariile
Comentariile sunt texte care pot fi introduse în programul sursă, dar nu sunt luate în consideraţie de compilator şi
deci nu au efect în timpul executării programului. Comentariile sunt utile pentru o mai bună înţelegere a programului de
către om.
În programele C++, se pot utiliza două tipuri de comentarii:
a) comentarii care se pot extinde pe una sau mai multe linii şi au forma /* <comentariu> */
b) comentarii de sfârşit de linie, care încep cu simbolul // şi continua până la sfârşitul liniei respective, deci au forma
// <comentariu>

Tipuri de date
Un tip de date este precizat prin:
- o mulţime finită de valori corespunzătoare tipului (constantele tipului)
- o mulţime de operatori prin care se prelucrează valorile tipului
- o multime de restricţii de utilizare a operatorilor.
De exemplu tipul întreg (int) este definit prin:
- mulţimea valorilor reprezentând numere întregi
- mulţimea operatorilor : +, -, *, /, %

1
Ana Intuneric

- mulţimea restricţiilor: pentru operatorul / împărţitorul nu poate fi 0, etc.


Tipurile de date pot fi tipuri fundamentale şi tipuri derivate.
Tipurile fundamentale (predefinite sau de bază sunt:
• Tipul boolean (bool)
• Tipul caracter (char)
• Tipuri întregi (int, unsigned int, long long)
• Tipuri reale (float, double)
• Tipul vid (void)
• Tipurile enumerate (enum)
Tipurile boolean, caracter, întreg, real şi tipurile enumerate sunt tipuri aritmetice, deoarece valorile lor pot fi
interpretate ca numere.
Tipurile boolean, caracter, întreg şi enumerările sunt tipuri întregi.
Tipurile derivate sunt construite pornind de la tipurile fundamentale. Tipurile derivate sunt:
• tablourile
• funcţiile
• pointerii
• referinţele
• structurile (sau înregistrările)
• uniunile (înregistrările cu variante)

Operatorii
1. Operatorii aritmetici: +,-,* , / , % .
Operatorul / se comportă diferit în funcţie de tipul operanzilor:
-dacă ambii operanzi sunt numere intregi atunci rezultatul va fi tot număr întreg
-dacă cel puţin unul dintre operanzi este un număr real atunci şi rezultatul va fi tot un număr real
Operatorul % poate fi aplicat numai între operanzi de tip întreg.

2. Operatorii relaţionali: <, <=, > , >= ,== , != .


Expresiile relaţionale sunt evaluate la adevărat (unu) sau fals (zero).

3. Operatorii logici: ! , && , || .


!(a<b && a>=c) ↔ (a>=b || a<c)

4. Operatorii de atribuire: =, += , -= ,*= , /= , %= .


Atribuire simplă: variabila = expresie
Atribuire multiplă: v1=v2=v3=…vn = E;

5. Operatorii prefixati: ++ , — .
a=1;b=++a; → a=2 şi b=2

6. Operatorii postfixati: ++ , — .
a=1;b=a++; → b=1 şi a=2

7. Operatorii conditionali: ? , : .
Maxi=a>b?a:b;
Dacă a>b atunci Maxi primeşte valoarea lui a, altfel Maxi primeşte valoarea lui b.

8. Operatorul de conversie de tip


Se foloseste pentru schimbarea tipului unei expresii. Daca se doreste transformarea unui singur termen parantezele
care incadreaza expresia poate lipsi. ex: (int) 5.7 => 5

2
Ana Intuneric

Datele sunt numere sau coduri numerice, ele pot fi


 constante (valoarea lor este scrisă de programator direct în codul sursă) sau
 variabile, caz în care compilatorul trebuie să aloce spaţiul de memorie necesar păstrării valorilor curente ale
respectivelor variabile.
Orice dată trebuie să aibă un tip declarat în mod explicit de programator astfel încât compilatorul să ştie, în
principal, cum să organizeze memoria alocată acelei date.
Cu instrucţiunea declaraţie:
char lit='C';
declarăm variabila lit ca fiind o dată de tip char şi o iniţializăm cu valoarea 'C'. Cuvântul “lit” este identificatorul care
dă numele variabilei, şi a fost ales de noi, spre deosebire de “char” care este un cuvânt cheie al limbajului (un
identificator rezervat) şi care poate fi folosit numai pentru a desemna tipul de dată “caracter pe un octet”.
Variabila lit fiind declarată de tip char, la întâlnirea instrucţiunii de mai sus compilatorul rezervă un octet de
memorie pentru variabila lit şi scrie în acest octet codul ASCII al literei ‘C’ (şi anume 67).
litera ‘A’ are codul ASCII 65
litera ‘a’ are codul ASCII 97

Tipurile uzuale pentru variabile simple sunt:


char pentru caractere
unsigned int, unsigned long long pentru numere naturale
int, long long pentru numere întregi
3
Ana Intuneric

float, double pentru numere reale în simplă, respectiv dublă precizie


Pentru afişarea valorii unei variabile oarecare, x de exemplu, utilizăm operatorul de scriere , “<<”, aplicat lui cout şi
variabilei pe care dorim să o afişăm, în ordinea cout << x. Dacă dorim să afişăm un anumit mesaj, textul mesajului
trebuie încadrat între ghilimele. De exemplu, instrucţiunea cout << "anna"; va afişa textul anna.
Între secvenţele de cod
int x=123;cout << x;
şi
int x=123; cout << "x";
diferenţa este foarte mare, în primul caz pe monitor va fi afişat numărul 123, valoarea variabilei x, iar în al doilea caz
va apare un text format doar dintr-un singur caracter: x.

Instrucţiunea for este o instrucţiune de ciclare, de repetare a unei acţiuni (descrisă în instrucţiunea corp a for-ului)
cât timp o anumită condiţie este îndeplinită. Sintaxa (forma) acestei instrucţiuni este următoarea:
for ( iniţializare; expresie_test; expresie_de_reciclare) instructiune_corp
Să urmărim ce se întâmplă în program când, de exemplu, nr are valoarea 7 în
for (int i=0; i<nr; i++) cout<<lit;
Execuţia for-ului începe prin executarea instrucţiunii de iniţializare “int i=0”, care alocă variabila i locală for-ului
(adică variabila i este vizibilă numai în interiorul acestui for şi îşi încetează existenţa odată acesta) şi îi atribuie
valoarea iniţială 0, după care este evaluată expresiatest “i<nr” care este adevărată (0<7). In acest caz se trece la
execuţia instrucţiunii corp “cout<<lit;” şi apare un C pe ecran, după care, înainte de reluarea ciclării, este evaluată
expresia de reciclare “i++”, care îl incrementează pe i (îl măreşte cu o unitate). Acum i are valoarea 1 şi se
reia testarea: i<nr ? da, apare încă un C, este incrementat i, şi aşa mai departe până când i atinge valoarea 7. Acum
la evaluarea expresiei test obţinem valoarea logică fals şi execuţia for-ului este încheiată. Pe monitor au apărut
astfel 7 litere C.
Instrucţiuni for atipice:
 for(i=1,j=0; i<=5; ) j=j+2*i++;
 for(; i<=5; i++)
{ s=s+i*i;j++;}
 for(i=1;n<=1000;) {n=n+i*i*i*i;i++;}

Funcţii predefinite
double floor (double x) calculeaza cel mai mare intreg mai mic sau egal cu x, adica functia partea
intreaga din x
double log (double x ) calculeaza logaritm natural din x
double log 10 ( double x ) calculeaza logaritm zecimal din x
double pow ( double x, double y); calculeaza x la puterea y
double sqrt (double x ) calculeaza radical din x
int abs (int x) returneaza valoarea absoluta a numarului intreg x
double fabs (double x) returneaza valoarea absoluta a numarului real x

float x=-1.25;
cout<<floor(x)<<' '<<ceil(x);---------------2 -1

float x=5;
cout<<floor(x)<<' '<<ceil(x); --------------5 5

float x=-5.7;
cout<<(int)x; ---------------5

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