Sunteți pe pagina 1din 15

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

limbajului C/C++
1.Setul de caractere
Setul de caractere utilizat pentru scrierea programelor C/C++ este setul de caractere al
codului ASCII (American Standard Code for Information Interchange).
Fiecare caracter din mulimea caracterelor ASCII are asociat un numr cuprins ntre 0 i 127,
denumit codul ASCII al caracterului respectiv.
Ulterior, pentru reprezentarea unor simboluri suplimentare (caractere specifice altor limbi,
simboluri matematice, simboluri grafice), codul ASCII a fost extins. Codul ASCII extins permite
codificarea a 256 simboluri distincte, prin asocierea unui numr natural cuprins ntre 0 i 255.

Literele mici din alfabetul englez au coduri consecutive ncepnd cu 97 (codul caracterului 'a')
pn la 122 (codul caracterului 'z').
Literele mari din alfabetul englez au coduri consecutive ncepnd cu 65 (codul caracterului
'A') pn la 90 (codul caracterului 'Z').
Cifrele au coduri consecutive ncepnd cu 48 (codul caracterului '0') pn la 57 (codul
caracterului '9').
Caracterul spaiu (' ') are codul ASCII 32.
Consultnd codul ASCII, identificai codurile caracterelor de pe tabl.
Tastai codul caracterului n cmpul text din dreapta sa. Pentru a trece la cmpul urmtor,
tastai Enter, sau sgeat-jos. Pentru a reveni la caracterul precedent, tastai sgeat-sus.
Analiznd codul ASCII, asociai fiecrui caracter codul corespunztor.
n acest scop, executai un click pe creta galben, apoi trasai o linie de la caracter la codul
su ASCII.

2.Identificatori
Identificatorii, ntlnii i sub denumirea nume, au rolul de a denumi elemente ale programului:
constante, tipuri de date, variabile, etc.
Din punct de vedere sintactic, un identificator este constituit dintr-o succesiune de litere, cifre
sau caracterul '_' (liniua de subliniere underscore), primul caracter fiind obligatoriu liter
sau liniua de subliniere.

- Un identificator poate avea orice lungime, dar sunt luate n considerare numai primele 31 de
caractere.
- Este recomandat s utilizai identificatori sugestivi, astfel nct s nu fie necesar, pe ct
posibil, s apelai la declaraii sau comentarii pentru a nelege scopul n care este folosit un
identificator.
- Este util s construim identificatorii prin compunerea mai multor cuvinte sau rdcini ale
acestora. n acest caz, iniiala fiecrui cuvnt care intr n compunerea identificatorului poate
fi majuscul (de exemplu, NrMaxCuvinte, NrTelefon).
- Atenie!!! Limbajul C/C++ este case-sensitive, adic se face diferena ntre literele mici i
literele mari. Prin urmare identificatorii NMx i Nmx sunt diferii!
Exemple de identificatori coreci sintactic
Program
_unu
A1b2
Nume_Prenume_elev1
Exemple de identificatori incoreci sintactic
Nume Prenume (conine caracterul spaiu)
a+b (conine caracterul +)
2b (ncepe cu o cifr)
Care dintre urmtoarele variante reprezint identificatori din limbajul C/C++, coreci din punct
de vedere sintactic?
Selectai variantele corecte, executnd un click n csua din stnga variantei.
Aeaz fiecare element din lista din partea de sus a tablei sub afirmaia corespunztoare,
deplasndu-l prin procedeul drag-and-drop.

3.Cuvinte rezervate
Cuvintele rezervate, denumite uneori i cuvinte cheie (keywords) sunt identificatori speciali,
cu neles predefinit, care pot fi utilizai numai n construciile sintactice n care sunt specificai.
n limbajul C/C++ toate cuvintele rezervate se scriu numai cu litere mici.
if cuvnt cheie care descrie nceputul unei instruciuni alternative;
while cuvnt cheie care descrie nceputul unei instruciuni repetitive.
char cuvnt cheie care denumete un tip de date;
sizeof cuvnt cheie care denumete un operator;
unsigned cuvnt cheie care denumete un modificator de tip;
break cuvnt cheie care denumete o instruciune;

Selectai cuvintele rezervate din lista de pe tabl, executnd un click n csua din stnga
acestora.

4.Constantele ntregi
Constantele sunt date care nu i modific valoarea pe parcursul execuiei programului.
n funcie de natura lor, constantele pot fi:
- constante ntregi
- constante reale
- constante caracter
- constante ir de caractere
Constantele ntregi sunt numere ntregi dintr-un interval finit.
Ele pot fi precizate n baza 10 (folosind notaia uzual), n baza 8 (n acest caz constanta este
precedat de un 0 nesemnificativ) sau n baza 16 (caz n care constanta are prefixul 0x sau
0X).
123

constant specificat n baza 10

-12345678

constant specificat n baza 10

01234

constant specificat n baza 8

0x1a0

constant specificat n baza 16

0XFFFF

constant specificat n baza 16

Selectai, executnd un click n csua din stnga fiecrei variante, constantele ntregi corecte
din punct de vedere sintactic.

5.Constantele reale
Constantele reale care se pot reprezenta n memoria calculatorului sunt numere raionale
dintr-un interval finit.
Constantele reale pot fi specificate n dou moduri:
1. n notaia uzual la matematic, preciznd partea ntreag i partea fracionar a
numrului, separate prin caracterul '.' (punct), conform cu notaia anglo-saxon:
parte_ntreag.parte_fracionar
2. n format exponenial (tiinific), preciznd partea ntreag i partea fracionar a
numrului, separate prin caracterul '.' (punct), urmate de litera e sau E i de un numr ntreg,
reprezentnd exponentul puterii lui 10 cu care trebuie nmulit numrul real precedent.
Dac partea ntreag a unui numr real este 0, aceasta poate s nu fie specificat.

De asemenea, dac partea fracionar a numrului real este 0, aceasta poate s nu fie
specificat.
Dar nu pot lipsi att partea ntreag, ct i partea fracionar din specificarea unui numr real.
n cazul n care numrul este specificat n format exponenial, iar partea fracionar lipsete,
specificarea punctului zecimal nu este obligatorie.
-12.3
3.14
1.2e-10
-2.67E+8
2.e+4
.25E-5

(n format uzual
(n format uzual
(n format uzual
(n format uzual

0.00000000012)
-267000000)
20000)
0.0000025)

Selectai din lista de pe tabl constantele reale corecte din punct de vedere sintactic.
n acest scop, executai un click n csuele din stnga variantelor care reprezint constante
reale corecte.

6. Constantele character
Constantele grafice (caractere care au asociat un simbol existent pe tastatur) au coduri
ASCII cuprinse ntre 32 i 127 i pot fi specificate ncadrnd caracterul respectiv ntre
apostrofuri.
Caracterele negrafice (dar i cele grafice, dac dorim) se pot specifica ncadrnd ntre
apostrofuri o secven de evitare (secven escape). Secvenele escape sunt formate din
caracterul \ (backslash), urmat de codul ASCII al caracterului (exprimat n baza 8 sau
exprimat n baza 16, precedat de x).
Unele caractere negrafice, mai des utilizate, au asociate secvene escape speciale,
constituite din \ (backslash) i un caracter grafic sugestiv.

Specificai litera A utiliznd o secven escape.


Tastai secvena escape care reprezint litera A deasupra liniei de pe tabl.

Selectai, executnd un click n csua din stnga, variantele care reprezint caracterul 0
(zero)?

13.Expresii
O expresie este constituit dintr-o succesiune de operanzi, conectai prin operatori.
Un operand poate fi o constant, o variabil, un apel de funcie sau o expresie ncadrat ntre
paranteze rotunde.
Operatorii desemneaz operaiile care se execut asupra operanzilor. De exemplu +
reprezint operatorul pentru adunare, - reprezint operatorul de scdere, * reprezint
operatorul pentru nmulire, iar / operatorul pentru mprire.
Operatorii pot fi grupai pe categorii, n funcie de tipul operaiilor desemnate.
Din punctul de vedere al prioritii, operatorii pot fi grupai n 16 clase de prioritate,
numerotate de la 1 la 16, 1 fiind prioritatea maxim.
Operatorii limbajului C/C++ sunt unari (se aplic unui singur operand) sau binari (necesit doi
operanzi).
Toi operatorii unari au clasa de prioritate 2.
5
Expresia este format dintr-un singur operand (constanta 5).
alfa
Expresia este format dintr-un singur operand (variabila alfa)
a+2
Expresia conine doi operanzi (variabila a i constanta 2) i operatorul binar +.
a*(b+1)
Expresia conine doi operanzi (variabila a i expresia ncadrat de paranteze rotunde (b+1) )
conectai prin operatorul aritmetic binar *.
Utiliznd buretele, tergei din lista de pe tabl expresiile incorecte.
Activai buretele executnd un click pe burete. Apoi executai un click pe expresiile incorecte,
buretele fiind activ. Dezactivarea buretelui se realizeaz printr-un dublu-click.

14.Evaluarea expresiilor
Evaluarea unei expresii presupune calculul valorii expresiei, prin nlocuirea n expresie a
fiecrei variabile cu valoarea ei i a fiecrei funcii cu valoarea returnat de funcia respectiv
i efectuarea operaiilor specificate de operatori. n timpul evalurii expresiei se ine cont de
existena parantezelor, de asociativitate i de prioritatea operatorilor:
se evalueaz n primul rnd expresiile din paranteze, ncepnd cu parantezele cele mai
interioare;

n cadrul unei expresii fr paranteze, se efectueaz operaiile n ordinea prioritii


operatorilor;
dac ntr-o expresie apare o succesiune de operatori cu prioriti egale, se ine cont de
asociativitatea operatorilor.
ex: S considerm urmtoarele declaraii de variabile:
int a=6,b=9;
a+sqrt(b)
Expresia a+sqrt(b) are valoarea 9 (se adun valoarea variabilei a cu valoarea radicalului
variabilei b).
a+b*c
Expresia a+b*c are valoarea 6 (deoarece nmulirea are prioritate mai mare dect adunarea,
se efectueaz produsul b*c i obinem rezultatul 0, apoi adunm rezultatul cu valoarea
variabilei a i obinem 6).
b-a/3*2
Expresia b-a/3*2 are valoarea 5. nmulirea i mprirea au aceeai prioritate, mai mare dect
a scderii. Prin urmare se execut operaiile cu prioritatea cea mai mare n ordinea de la
stnga la dreapta (se mparte a la 3 apoi rezultatul se nmulete cu 2). Apoi se execut
scderea.
b-a/(3*2)
Expresia b-a/(3*2) are valoarea 8. Se execut n primul rnd operaiile din paranteze, apoi se
mparte valoarea variabilei a la 6, apoi se execut scderea.
Exercitii:
Considernd declaraia de variabile din partea de sus a tablei, s se evalueze fiecare
expresie i apoi s se scrie n dreptul fiecrei expresii valoarea acesteia.

15. Tipul expresiilor


Dac toi operanzii care intervin ntr-o expresie au acelai tip, tipul expresiei coincide cu tipul
operanzilor.
n cazul n care operanzii nu au acelai tip, pe parcursul evalurii expresiei se realizeaz
automat o serie de conversii implicite.
Regula general pe care se bazeaz conversiile implicite este: operandul care are un
domeniu de valori mai restrns este convertit la tipul operandului care are mulimea valorilor
mai ampl.
ex:
Toi operanzii de tip char se convertesc la int.
Dac unul dintre operanzi este long double, cellalt va fi convertit de asemenea la long
double.

Dac unul dintre operanzi este long, iar cellalt este de tip unsigned sau int, el va fi convertit
automat la long.
Dac un operand este de tip int, iar cellalt este de tip unsigned conversia se face ctre
unsigned.

Exercitii:
Se consider declaraiile de variabile din partea de sus a tablei.
S se determine tipul fiecrei expresii din lista de pe tabl.
Selectai creta galben, apoi trasai o linie de la expresie la tipul corespunztor, executnd un
click pe expresie, apoi un click pe tip.

16. Operatori aritmetici


Operatorii aritmetici desemneaz operaii aritmetice uzuale, cum sunt:
* (nmulirea)
/ (mprirea)
% (restul mpririi ntregi)
+ (adunarea)
(scderea)
semnul algebric (operatorii unari +, )

Operatorul % nu poate fi aplicat dect operanzilor ntregi.


Operatorul / poate fi aplicat att operanzilor ntregi, ct i operanzilor reali, dar funcioneaz
diferit pentru operanzi ntregi, fa de operanzii reali. Dac cei doi operanzi sunt numere
ntregi, operatorul / furnizeaz ctul mpririi ntregi. Dac cel puin unul dintre cei doi
operanzi este un numr real, operatorul furnizeaz rezultatul mpririi reale.
Prin aplicarea operanzilor aritmetici unor variabile de tip char sau unsigned char se obine o
expresie de tip int.

ex: S considerm urmtoarele declaraii de variabile:


int a=3, b=5;
float x=7.5;

Exercitii:
Bodo a descoperit o substan cu nH atomi de hidrogen, nC atomi de carbon i nO atomi de
oxigen. Scriei o expresie care s reprezinte masa molecular a substanei. Masa atomului de
H este 1, a atomului de C este 12, iar a atomului de O este 16.
n variabilele reale a, b i c sunt memorate notele obinute de Bodo la cele 3 probe de
examen de admitere la Facultate.
Care dintre expresiile de pe tabl reprezint media sa general? Media general va fi
aritmetic a celor 3 note.
tergei cu buretele expresiile eronate.
Numrul de bomboane pe care Bodo i fratele su vor s le mpart, este memorat n
variabila ntreag x. Scriei pe tabl o expresie care s utilizeze numai operatori aritmetici i
care s aib valoarea diferit de 0 dac i numai dac cei doi copii nu pot mpri
bomboanele n mod egal.
S se evalueze expresiile specificate pe tabl, considernd declaraiile de variabile de pe
tabla.

17. Operatori de incrementare/decrementare


Operatorul de incrementare este ++.
Operatorul de decrementare este --.
Operatorii de incrementare/decrementare sunt operatori unari i pot fi aplicai numai
variabilelor simple.
Efectul lor const n mrirea (respectiv micorarea) valorii operandului cu 1.
Aceti operatori se pot utiliza n form prefixat (naintea operandului), caz n care se
efectueaz mai nti incrementarea/decrementarea i apoi se utilizeaz valoarea operandului,
sau n form postfixat (dup operand), caz n care se utilizeaz mai nti valoarea
operandului i apoi se efectueaz incrementarea/decrementarea.
ex: S considerm urmtoarele declaraii de variabile:
int a=3, b=5, c;
float x=2.5;

Exercitii:
Considernd declaraia de variabile de pe tabl, selectai varianta care reprezint valorile
variabilelor a, b i c dup declarare.
Considernd declaraia de variabile de pe tabl, selectai varianta care reprezint rezultatul
evalurii expresiei (a+b++)++

18. Operatori relaionali


Operatorii relaionali sunt operatori binari i desemneaz relaia de ordine n care se gsesc
cei doi operanzi: < (mai mic), >(mai mare), <= (mai mic sau egal), >= (mai mare sau egal).
Rezultatul aplicrii unui operator relaional este 1 dac cei doi operanzi sunt n relaia indicat
de operator i 0, altfel.
Grupa de prioritate a operatorilor relaionali este 7.

Preul unei ngheate este memorat n variabila de tip intP, iar suma de bani pe care o are
Bodo este memorat n variabila de tip int S. Scriei pe tabl o expresie de lungime minim
care s aib valoarea 1 dac i numai dac Bodo i poate cumpra ngheat.

19. Operatori de egalitate


Operatorii de egalitate sunt operatori binari i desemneaz relaia de egalitate (==) sau
inegalitate (!=) n care se gsesc cei doi operanzi.
Rezultatul aplicrii unui operator de egalitate este 1 dac cei doi operanzi sunt n relaia
indicat de operator i 0, altfel.
Grupa de prioritate a operatorilor de egalitate este 8.

S se evalueze expresiile de pe tabl,


considernd declaraiile de variabile din
partea de sus a tablei.

20. Operatori logici globali


Operatorii logici globali desemneaz operaiile logice binecunoscute de la matematic:
negaia logic
disjuncia logic
conjuncia logic
Exist trei operatori logici globali, corespunztori acestor trei operaii:

n limbajul C/C++ valoarea logic fals este asociat valorii 0, orice valoare diferit de 0 avnd
semnificaia adevrat.
Prin urmare, efectul operatorilor logici globali, dup cum tim de la logic matematic, este:
ex:

Exercitii:
Care dintre expresiile de pe tabl au
valoarea 1 dac i numai dac anul
memorat n variabila an este bisect?
tergei cu buretele expresiile incorecte.
nlimile celor 3 copii sunt memorate n variabilele x, y i z.
Care dintre expresiile din lista de pe tabl au valoarea diferit de 0 dac i numai dac cei 3
copii au aceeai nlime?
Lungimile laturilor triunghiului sunt memorate n variabilele reale a, b i c.
Care din expresiile de pe tabl au valoarea 1 dac i numai dac triunghiul este isoscel (dar
nu echilateral)?
tergei cu buretele expresiile incorecte.
Considernd declaraia de variabile de pe tabl, s se evalueze expresiile din lista de pe
tabl. Tastai n dreptul fiecrei expresii valoarea acesteia.

21. Operatori logici pe bii


Operatorii logici pe bii se aplic numai operanzilor ntregi i au ca efect aplicarea operaiilor
logice cunoscute (negaie, conjuncie, disjuncie i disjuncie exclusiv) bit cu bit. Operatorii
logici pe bii sunt:

Efectul operatorilor pe bii este:

Operatorii de deplasare au ca efect deplasarea reprezentrii binare a primului operand spre


stnga (<<) sau spre dreapta (>>). Numrul de poziii cu care se realizeaz deplasarea este
specificat de cel de-al doilea operand. La deplasarea la stnga, poziiile rmase libere n
dreapta se completeaz cu 0. La deplasarea la dreapta, poziiile rmase libere n stnga se
completeaz cu 0 (dac operandul stng este un ntreg pozitiv) sau cu 1 (dac operandul
este ntreg negativ).

S considerm urmtoarele declaraii de variabile:


int n=3, a=0X1F8A, b=0XF0F5;
Pentru a determina cu uurin reprezentrile n memorie ale variabilelor a i b, am exprimat
valorile lor n baza 16. Reprezentarea n memorie a acestor variabile este:

Dac a ar fi fost declarat de tip unsigned, prin deplasare la dreapta, s-ar obine acelai
rezultat, deoarece valoarea lui a este pozitiv (bitul semn este 0). Valoarea lui b este negativ
(bitul 15 bitul semn este 1), prin deplasare la dreapta se propag semnul, deci se
completeaz cu 1.

Scriei o expresie care s utilizeze numai operatori logici pe bii care s aib ca valoare
numrul de iraguri distincte formate din n (0<n<15) mrgele roii i negre pe care Bodo le
poate construi.
S se evalueze expresiile din lista de pe tabl, n condiiile declaraiilor de variabile din partea
de sus a tablei.
Tastai n dreptul fiecrei expresii valoarea acesteia, exprimat n baza 10.

Selectai expresiile de pe tabl care au valoarea diferit de 0dac i numai dac al n-lea bit
din reprezentarea intern a variabilei de tip int x este 1 (0n15, biii fiind numerotai de la 0
ncepnd cu cel mai puin semnificativ).

22. Operatori de atribuire


Operatorii de atribuire sunt operatori binari care permit modificarea valorii unei variabile.
Exist un operator de atribuire simplu (=) i 10 operatori de atribuire compui cu ajutorul
operatorului = i al unui alt operator binar (aritmetic sau logic pe bii), dup cum urmeaz:
variabila=expresie
Se evalueaz expresia, apoi se atribuie variabilei valoarea expresiei. Valoarea expresiei de
atribuire este egal cu valoarea atribuit variabilei.
variabilaoperator=expresie
Efectul este echivalent cu al unei atribuiri de Ticul variabila=variabilaoperatorexpresie
Grupa de prioritate a operatorilor de atribuire este 15.
Expresia poate fi la rndul ei o expresie de atribuire, cu alte cuvinte operatorii de atribuire se
pot utiliza nlnuit:
variabila_1=...=variabila_n=expresie
S considerm urmtoarele declaraii de variabile:
int a=10, b;
long c=100001;
float x, y=5;

n variabila S
de bani depus
tiind c

este memorat suma


n banc de Bodo.
dobnda anual este

D%, scriei o expresie de lungime minim care s atribuie variabilei S suma pe care o are n
banc Bodo dup 1 an.

Scriei pe tabl o expresie de lungime minim care s mreasc valoarea variabilei ntregi x
cu valoarea variabilei ntregi y.
S considerm declaraiile de variabile din partea de sus a tablei.
Ce valori vor avea variabilele a i b dup evaluarea (n ordine) a expresiilor scrise pe tabl?
S considerm declaraia de variabile din partea de sus a tablei.
Ce valoare va avea variabila b dup evaluarea fiecreia dintre expresiile scrise pe tabl?
Tastai valoarea variabilei b n dreptul fiecrei expresii. Considerai c expresiile se evalueaz
n ordine, de sus n jos.

23.Operatori condiionali
Operatorii condiionali sunt ? i : i se utilizeaz numai mpreun.
Formatul unei expresii condiionale este:
expresie_1? expresie_2 : expresie_3
Efect:
Se evalueaz expresie_1. Dac expresie_1 are o valoare nenul, atunci valoarea expresiei
condiionale este egal cu valoarea expresiei_2. Dac expresie_1 are valoarea 0, atunci
valoarea expresiei condiionale este egal cu valoarea expresiei_3.
Grupa de prioritate a operatorilor condiionali este 14.

Scriei o expresie de lungime


minim care s atribuie variabilei c de tip char valoarea 'd' dac valoarea variabilei ntregi x
este strict pozitiv, respectiv valoarea 'n' n caz contrar.
Se consider c variabila de tip char.
Care este semnificaia expresiei specificate n partea de sus a tablei?

Care dintre expresiile din lista de pe tabl atribuie variabilei x valoarea absolut (modulul)
numrului memorat n variabila x? tergei cu buretele expresiile incorecte.
Variabila nr conine numrul de ordine al opiunii curente dintr-un meniu. Opiunile din meniu
sunt numerotate de la 1 la n. Selectai expresiile care atribuie variabilei nr numrul urmtoarei
opiuni din meniu. Dac opiunea curent este ultima, urmtoarea opiune va fi opiunea 1
(prima).

24.Operatorul de conversie explicit de tip


Operatorul de conversie de tip (denumit i operatorul cast) este un operator unar care permite
conversia explicit (forat) a tipului unei expresii la un tip specificat:
(tip) expresie
S considerm urmtoarele declaraii de variabile:
int a=10, b=15;

S considerm declaraia de variabil din partea de sus a tablei.


Scriei o expresie de lungime minim care s aib ca valoare caracterul cu codul ASCII cu 50
mai mare dect cel memorat n variabila c.

25.Operatorul de determinare a dimensiunii


Operatorul sizeof de determinare a dimensiunii este un operator unar care determin
dimensiunea exprimat n numr de octei a zonei de memorie necesar pentru stocarea
expresiei specificate ca operand sau a unei date de tipul specificat ca operand:

sizeof (expresie)
sizeof (tip)

S considerm declaraiile de variabile scrise n partea de sus a tablei.


Asociai fiecrei expresii de pe tabl valoarea sa. Trasai o linie cu creta galben de la
expresie la valoarea sa.

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