Sunteți pe pagina 1din 5

2.

Elemente de baz ale limbajului de programare C/C++


1. Vocabularul limbajului Setul de caractere al limbajului C / C++ conine: litere ( mari i mici ale alfabetului englez; C / C++ este case-sensitive ) cifre arabe ( de la 0 la 9 ) caractere speciale ( + * / = ^ < > ( ) { } [ ] . , : ; # $ @ _ i spaiu ) simboluri negrafice ( /n newline, /t tab, /b backspace, /r carriage return ) ntre oricare dou uniti lexicale admise de limbaj pot exista unul sau mai muli separatori: spaiul, caracterul ; i caracterul de sfrit de linie. Nu este permis prezena separatorilor n interiorul identificatorilor, numerelor sau simbolurilor speciale. Comentariile pot s apar oriunde n program ( nu n identificatori i numere ), ncadrate de caracterele /* */. Textul comentat este ignorat n faza de compilare a programului. Pot exista comentarii care ncep cu //, cu condiia s se termine pe rndul pe care au nceput. Constantele sunt o categorie de date cu care lucreaz un program, care nu i pot modifica valoarea n timpul execuiei programului. Se folosesc n calculul unor expresii sau n interiorul unor mesaje de afiat. Ele pot fi: constante ntregi Corespund mulimii numerelor ntregi ce pot fi reprezentate n memoria calculatorului. Pot fi scrise n baza 10, 8 sau n baza 16. Exemplu: 22 constant n baza 10 022 constant n baza 8 ( se preced de caracterul 0 ) 0x24 constant n baza 16 ( se preced de caracterele 0x ) constante reale Corespund unei submulimi a mulimii numerelor reale. Pot apare n notaie zecimal ( 2.75, 8.5 ) sau exponenial ( 2.4e5, 5,75E3 ). constante ir de caractere Reprezint o succesiune de caractere, inclus ntre ghilimele ( "alfa" ). Caracterele irului se pstreaz ntr-o zon contigu de memorie, prin codurile lor ASCII. Dup ultimul caracter se pstreaz caracterul NULL ( cu valoarea 0 ), care reprezint marcajul de sfrit de ir. constante simbolice Sunt constante care au asociat un nume n program. Pot fi orice ir de caractere, introdus prin construcia #define. Exemplu: #define max 7 #define min 100 Un identificator este o succesiune de litere, cifre sau caracterul _ ( primul caracter al identificatorului trebuie s fie o liter sau caracterul _ ), prin care se asociaz nume constantelor, tipurilor, variabilelor i funciilor. Lungimea unui identificator nu este limitat, varianta de implementare a limbajului impunnd numrul de caractere semnificative. Exemplu: a1, n, _alfa, a23 ( corecte ) a&b, 2a, a+b ( incorecte ) O categorie special de identificatori o constituie cuvintele cheie ale limbajului ( case, const, else, if, for, while etc ), care nu pot fi redefinite de utilizator, fiind utilizate doar n scopul n care au fost definite n limbaj.

2. Noiunea de tip de dat. Operatori aritmetici, logici, relaionali Prin tip de dat se nelege mulimea valorilor pe care le poate avea o dat ( constant sau variabil ). Tipul restricioneaz funciile i operatorii ce se pot aplica datelor de tipul respectiv. Tipuri de date standard Tipurile ntregi de date permit reprezentarea, memorarea i prelucrarea numerelor ntregi. Numerele ntregi se scriu ca o secven de cifre zecimale, precedat eventual de semnul ( ex: 126, 6382 ). n limbajul C este predefinit tipul ntreg int ( reprezint ntregi cu semn pe 2 octei, valoarea maxim admis 215 1 = 32767 ). Tipul int poate fi modificat folosind "modificatori de tip" signed, unsigned, short i long, rezultnd tipurile : short int ( ntregi cu semn, se reprezint pe 2 octei ) signed short int ( ntregi cu semn, se reprezint pe 2 octei ) unsigned int ( ntregi fr semn, se reprezint pe 2 octei, valoarea maxim admis este 2 16 1 = 65535 ) unsigned short int ( ntregi fr semn, se reprezint pe 2 octei ) long int ( ntregi cu semn, se reprezint pe 4 octei, valoarea maxim admis este 2 31 1 ) signed long int ( ntregi cu semn, se reprezint pe 4 octei ) unsigned long int ( ntregi fr semn, se reprezint pe 4 octei, valoarea maxim admis este 2 32 1 ). Operatorii ce pot fi folosii mpreun cu date de tip ntreg sunt: 1. aritmetici: + , , * , / , % ( restul mpririi a dou numere ntregi ) 2. relaionali: < , > , != ( diferit ) , = = ( egal ) , <= , >= 3. de atribuire: = 4. de incrementare / decrementare: ++ , ( i = i + 1 i ++ i + = 1 ) 5. logici: ! ( not ) , || ( or ) , && ( and ) 6. logici pe bii: ~ ( complement fa de 1 ), << ( deplasare la stnga; o1 << o2 = o1 * 2 o2 ), >> ( deplasare la dreapta; o1 >> o2 = o1 div 2 o2 ), & ( and ), | ( or ), ^ ( xor ) Cu excepia operatorului !, ceilali operatori logici sunt binari. Se aplic n forma o1 operator o2. Operatorii |, & i ^ funcioneaz conform urmtoarelor regului: | 0 1 & 0 1 ^ 0 1 0 0 1 0 0 0 0 0 1 1 1 1 1 0 1 1 1 0 Tipurile reale de date se folosesc pentru reprezentarea unei submulimi a numerelor raionale, ce sunt aproximaii ale numerelor reale. Reprezentarea numerelor reale este limitat n calculator prin mrime i precizie. Numerele reale pot fi scrise n notaie zecimal ( 3.67 ) sau tiinific ( exponenial 3e05 ). Tipuri reale n C sunt: 1. float reprezentat pe 6 octei 2. double reprezentat pe 8 octei Modificatorul long se poate aplica tipului double. Datele de tip long double se reprezint pe 10 octei. Operatorii ce se pot aplica datelor de tip real sunt: 1. aritmetici: ,+,*,/

2. relaionali: < , > , != ( diferit ) , = = ( egal ) , <= , >= Tipul char permite reprezentarea mulimii caracterelor. Un caracter se reprezint pe 1 octet. La un moment dat o dat de tip caracter conine codul ASCII al unui caracter sau un ntreg n sine. Pentru atribuirea unei valori unei variabile de tip char se pot folosi constante ntregi sau constante de tip caracter ( exemplu: c='A' sau c=65). Operatorii ce se pot aplica datelor de tip char sunt: 1. relaionali ( ordonarea e dat de codurile ASCII ale caracterelor 0<9<A<Z<a<z ) 2. aritmetici + , Tipul void are n funcie de context semnificaia "nimic" sau "orice". El permite construcia tipurilor generice ( liste cu orice tip de informaie, arbori etc ). De exemplu: int f ( void ) este antetul unei funcii fr parametrii; void f ( ) este antetul unei funcii care nu returneaz nici un rezultat. Tipuri ordinale definite de utilizator Tipul enumerat este un tip de date ordinal. Se definete prin enumerarea identificatorilor ce reprezint valorile tipului. Identificatorii din definiia unui tip enumerat nu se pot folosi n definiia altui tip enumerat din acelai bloc de program. Utilizarea tipului enumerat confer programelor claritate i apropiere de limbajul natural. n reprezentarea intern, valorile de tip enumerat apar ca ntregul corespunztor numrului de ordine dat de poziia identificatorului n lista de definiie a enumerrii respective. Un tip enumerat se poate defini n forma: enum nume { nume0 , nume1 , , numen } var1 , var2 , , varn enum luna { ileg , ian , feb , mar , apr }, l1 , l2 ; Definirea tipurilor de date Definirea tipurilor se face n C++ printr-o declaraie de forma typedef < descriere_tip > < nume > ; O declaraie de tip definete de fapt mulimea valorilor pe care le poate lua o variabil de tipul respectiv. Un tip de dat poate fi definit pe baza unui tip standard sau utilizator, definit nainte. Exemplu : #include<iostream.h> typedef unsigned int natural; void main() { int x; natural y; cin>>x>>y; cout<<x+y; } Variabile. Declararea variabilelor Variabilele sunt o categorie de date a cror valoare se poate modifica pe parcursul execuiei unui program. Fiecare variabil are asociat un identificator, prin intermediul cruia i se poate modifica valoarea. Asocierea identificatorului se face ntr-o declaraie, care are forma general tip identificator;

La declarare, identificatorii variabilelor de acelai tip se separ prin virgul. tip poate fi un identificator de tip definit anterior sau un identificator de tip standard. Declaraia stabilete tipul variabilei. El nu poate fi modificat prin program i definete mulimea valorilor pe care le poate lua variabila, operatorii ce i se pot aplica etc. De tipul variabilei depinde dimensiunea zonei de memorie care se aloc variabilei la compilarea programului. La un moment dat o variabil conine o singur valoare. Modificarea acestei valori se poate face printr-o citire sau printr-o atribuire. Valoarea rmne nemodificat att timp ct programul nu acioneaz asupra variabilei sau pn cnd variabila respectiv este desfiinat ( se ncheie execuia blocului de program n care a fost declarat variabila ). nainte de utilizare toate variabilele trebuie s fie declarate, pentru a le specifica tipul i numele i pentru a le rezerva spaiul de memorie necesar memorrii valorilor lor. Abaterea de la aceast regul produce erori la compilare. Exemplu : int i,j; float x,y,z; char a,b; 3. Definirea constantelor Constantele sunt o categorie de date a cror valoare nu se poate modifica pe parcursul execuiei unui program. Fiecare constant are asociat un identificator i o valoare. Definirea unei constante se face respectnd sintaxa : #define identificator valoare Apariia n program a identificatorului unei constante este echivalent cu apariia valorii ei. Reciproca nu este adevrat. Exemplu : #define a 8 4. Structura programelor Un program C++ este alctuit din una sau mai multe funcii, din care una este principal. Funcia principal nu poate lipsi i execuia programului ncepe automat cu ea. Aceasta se numete main. Un program C++ poate conine : seciune de declaraii ( opional ) ; seciune de program ( obligatorie ). Seciunea de declaraii este structurat astfel : definiii de constante constante globale ; definiii de tipuri tipuri globale ; declaraii de variabile variabile globale ; declaraii funcii ( subprograme ). Seciunea de program funcia main cuprinde : definiii de constante locale ; definiii de tipuri locale ; declaraii de variabile locale ; instruciunile executabile ale programului.

Expresii Conin operanzi ( variabile, constante, funcii ) i operatori, grupai dup aceleai reguli ca n matematic. O expresie se evalueaz de la stnga la dreapta, innd cont de prioritatea operatorilor. Prioritile pot fi modificate prin folosirea parantezelor. Operatorii folosii n limbajul C / C++ au urmtoarele prioriti: 1. + , , & , * , ++ , , ! , ~ ( operatori unari ) cel mai mare nivel de prioritate 2. * , / , % ( binari ) 3. + , ( binari ) 4. << , >> 5. < , <= , > , >= 6. = = , != 7. & ( binar ) 8. ^ 9. | 10. && 11. || 12. ?,: 13. = , <<= , >>= , += , = , *= , /= , %= , &= , ^= , |= 5. Citirea / scrierea datelor n varianta C++, pentru citirea / afiarea datelor se folosesc obiectele cin, cout. Aceste obiecte se iniializeaz prin includerea fiierului iostream.h. Ieirea standard se poate face folosind operaturul <<. Exemplu : cout<<i ; afieaz valoarea i cout<<"\n"; afieaz newline cout<<"i="<<i<<"\n"; cout.width(5); cout<<i; afieaz valoarea i pe un cmp de lungime 5; cout.precision(3); cout<<i; afieaz i cu 3 zecimale; Intrarea standard se poate face folosind operaturul >>. Exemplu : cin>>i ; citete valoarea i cin>>a>>b; citete dou valori a i b char v[100]; cin>>t; citete irul de caractere t; Citirea (scanf) i scrierea (printf) cu format n limbajul C folosete biblioteca stdio.h. Exemple: 1.Dac avem: int a,b; scanf(%d%d,&a,&b); printf(%d%d,a,b); Dac se introduce: 123 456, se afieaz 123 456. 2. Dac avem: char a[60]; scanf(%s,a); printf(%s,a); Dac se introduce irul de caractere: primul capitol, se afieaz primul.

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