Documente Academic
Documente Profesional
Documente Cultură
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
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.
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.
2
Ana Intuneric
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