Documente Academic
Documente Profesional
Documente Cultură
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
-12345678
01234
0x1a0
0XFFFF
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.
Selectai, executnd un click n csua din stnga, variantele care reprezint caracterul 0
(zero)?
7.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.
8.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;
9. 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.
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.
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++)++
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.
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.
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).
n variabila S
de bani depus
tiind c
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.
17.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.
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).
sizeof (expresie)
sizeof (tip)