Sari la conținut
EduCamp

Tematică științifică · 2.2

Elementele de bază ale limbajului

Vocabularul limbajului, tipurile de date simple, constantele, variabilele, operatorii și expresiile, cu exemplele date în C++, limbajul de examen, și în Python.

∗ Și la proba practică — Titularizare

Un limbaj de programare este caracterizat prin sintaxă, semantică și vocabular. Sintaxa cuprinde regulile după care se scriu corect programele, semantica arată ce înseamnă construcțiile corecte sintactic, iar vocabularul este format din cuvintele care pot fi folosite într-un program.

Exemplele de mai jos sunt date în C++, limbaj care se poate folosi la proba scrisă, și în Python, cel studiat la clasa a IX-a din 2025. Comutatorul de la începutul lecției schimbă limbajul: se schimbă și explicația, nu doar codul, fiindcă cele două limbaje nu se deosebesc numai prin felul în care se scrie același lucru.

Vocabularul limbajului

Vocabularul este format din:

  • setul de caractere;
  • identificatori;
  • cuvinte cheie;
  • comentarii;
  • separatori;
  • operatori;
  • tipuri de date.

Setul de caractere folosit la scrierea programelor în C++ este cel al codului ASCII: literele mari și mici ale alfabetului latin, cifrele sistemului zecimal și caracterele speciale. În Python, textul sursă folosește setul de caractere Unicode, codificat în UTF-8, deci identificatorii, șirurile de caractere și comentariile pot conține și litere cu diacritice.

Identificatorii denumesc elementele programului: constante, variabile, funcții.

Amândouă limbajele deosebesc literele mari de cele mici: A1 și a1 sunt identificatori diferiți.

CorectGreșitDe ce
sumasuma 1conține spațiu
Suma1sumaîncepe cu cifră
suma1suma+1conține un operator
suma_1suma&nrconține un caracter nepermis
_sumasuma$conține un caracter nepermis

În C++

Sunt cuvinte cheie, între altele: bool, break, case, char, const, default, do, double, else, float, for, if, int, long, return, struct, switch, unsigned, void, while.

Standardul limbajului nu impune o lungime maximă a identificatorului. Unele compilatoare vechi luau în considerare numai primele 31 de caractere, iar compilatoarele actuale, de exemplu GCC, deosebesc identificatorii după toate caracterele lor.

Se recomandă ca numele de variabile să înceapă cu literă mică, iar numele de constante să se scrie cu majuscule. Un nume nu se începe cu două liniuțe de subliniere: identificatorii care încep așa sunt folosiți de bibliotecile limbajului.

În Python

Sunt cuvinte cheie, între altele: and, break, class, def, elif, else, False, for, if, import, in, is, None, not, or, return, True, while.

Lungimea identificatorului nu este limitată.

Se recomandă ca numele de variabile să se scrie cu litere mici, cu cuvintele legate prin liniuță de subliniere (numar_maxim), iar numele constantelor cu majuscule.

În C++

// comentariu pe un singur rând

/* comentariu
   pe mai multe rânduri */

În Python

# comentariu pe un singur rând

# pe mai multe rânduri se scrie
# câte un diez la începutul fiecăruia

În C++

Spațiul și tabulatorul separă cuvintele. Punctul și virgula, ;, separă instrucțiunile. Virgula separă elementele unei liste. Trecerea la rândul următor nu are valoare de separator: o instrucțiune se poate întinde pe mai multe rânduri.

În Python

Spațiul separă cuvintele, iar virgula separă elementele unei liste. Instrucțiunile nu se încheie cu punct și virgulă: fiecare se scrie pe rândul ei, iar trecerea la rândul următor le desparte.

Spațiul de la începutul rândului nu mai este liber, ca în C++: indentarea arată blocul din care face parte fiecare instrucțiune. Un rând indentat greșit schimbă înțelesul programului sau dă eroare.

Tipurile de date

În C++

Tipurile standard, numite și tipuri de bază, sunt:

TipulCe reține
charcaractere
intnumere întregi
float, doublenumere reale
voidtip neprecizat

Tipul datei hotărăște dimensiunea zonei de memorie alocate și, o dată cu ea, domeniul de valori. Dimensiunea depinde de compilator și de sistemul de calcul, în afară de char, care ocupă întotdeauna un octet. La compilatoarele vechi, pentru sisteme pe 16 biți, int ocupa 2 octeți. La compilatoarele actuale, de exemplu GCC, folosit în Code::Blocks, pe sisteme de calcul pe 32 sau pe 64 de biți, int ocupă 4 octeți.

Modificatorii de tip schimbă domeniul de valori și memoria ocupată: signed, unsigned, short, long. La compilatoarele actuale:

TipulDimensiuneaDomeniul de valori
char8 biți−128 … 127
unsigned char8 biți0 … 255
short16 biți−32 768 … 32 767
unsigned short16 biți0 … 65 535
int32 biți−2 147 483 648 … 2 147 483 647
unsigned int32 biți0 … 4 294 967 295
long32 biți sub Windows, 64 biți sub Linux pe 64 de bițica int, respectiv ca long long
long long64 biți−9 223 372 036 854 775 808 … 9 223 372 036 854 775 807
unsigned long long64 biți0 … 18 446 744 073 709 551 615
float32 biți±1,2·10⁻³⁸ … ±3,4·10³⁸, cu 6–7 cifre semnificative
double64 biți±2,2·10⁻³⁰⁸ … ±1,7·10³⁰⁸, cu 15–16 cifre semnificative
long double80 biți folosiți, din 12 sau 16 octeți ocupați±3,4·10⁻⁴⁹³² … ±1,1·10⁴⁹³², cu 18–19 cifre semnificative

Cunoașterea domeniului de valori este ceea ce hotărăște alegerea tipului. O valoare întreagă care nu depășește în modul aproximativ 2·10⁹, de exemplu un număr natural cu cel mult nouă cifre, se reține în int. Pentru valori mai mari, de exemplu un număr natural cu zece cifre sau mai multe, cel mult 18, se folosește long long. Tot long long se folosește pentru produsul a două valori de tip int care poate depăși domeniul lui int.

Modificatorii se aplică după câteva reguli:

  • pe int se pot aplica toți, iar cuvântul int poate lipsi: short înseamnă short int, iar unsigned long long înseamnă unsigned long long int;
  • pe char se aplică numai signed și unsigned;
  • pe tipurile reale se aplică numai long, și numai pe double: long double;
  • short ocupă cel puțin 2 octeți, dar nu mai mult decât int, long cel puțin 4 octeți, dar nu mai puțin decât int, iar long long cel puțin 8 octeți.

Tipul logic este bool, cu valorile true și false, reținute ca 1 și 0. Orice valoare numerică se poate folosi și ca valoare logică: 0 înseamnă fals, iar orice altă valoare înseamnă adevărat. O expresie logică dă 1 pentru adevărat și 0 pentru fals.

int r = (5 > 3);     // r primește 1
if (0)               // condiția este falsă
    cout << "nu se afiseaza";

Tipul char reține un caracter prin codul lui ASCII. Pentru calculator, caracterul 'A' și numărul 65 sunt aceeași valoare. De aici urmează:

  • unei variabile char i se poate atribui un caracter sau un cod: char c = 'A'; și char c = 65; au același efect;
  • într-o expresie aritmetică se folosește codul: 'A' + 1 dă 66, iar char d = 'A' + 1; reține litera B;
  • la citire se ia un singur caracter, iar la afișarea unei variabile char se scrie caracterul, nu codul; codul se afișează cu o conversie, (int)c.
ExpresiaCe se afișeazăDe ce
'2'2caracterul cifră
'2' + 353codul lui '2' este 50, iar rezultatul adunării este de tip int
(char)('2' + 3)553 este codul caracterului '5'
x + 3, cu char x = 2;5x reține valoarea 2, nu caracterul '2'

Biblioteca <cctype> are funcții pentru caractere:

FuncțiaCe face
isalpha(c)adevărat dacă c este literă
isdigit(c)adevărat dacă c este cifră
isupper(c), islower(c)adevărat dacă c este literă mare, respectiv mică
toupper(c), tolower(c)litera mare, respectiv mică, corespunzătoare lui c

Cifra dintr-un caracter se obține scăzând codul lui '0': '7' - '0' dă 7.

Tipurile reale float și double ocupă 4, respectiv 8 octeți. Numărul de zecimale afișate se stabilește cu setprecision din biblioteca <iomanip>. Singur, setprecision(n) fixează numărul total de cifre semnificative; precedat de fixed, fixează numărul de zecimale.

float x = 1.23456;
cout << setprecision(2) << x;            // 1.2
cout << fixed << setprecision(2) << x;   // 1.23

Tipurile definite de utilizator. Instrucțiunea typedef dă un nume nou unui tip existent. Nu se creează un tip nou: variabilele declarate cu numele nou au aceleași proprietăți ca cele de tipul inițial. Tipul se definește înainte de a fi folosit.

typedef unsigned char octet;
octet a = 200;                 // a este de tip unsigned char

În Python

Tipurile de bază sunt:

  • int, pentru numere întregi;
  • float, pentru numere reale;
  • str, pentru șiruri de caractere;
  • bool, pentru valori logice.

Deosebirile față de C++ nu sunt de scriere, ci de fond:

  • Tipul nu se declară. El se stabilește din valoarea atribuită și se poate schimba pe parcurs.
  • Nu există tip caracter. Un caracter este un șir de lungime 1, adică tot str.
  • Nu există modificatorii signed, unsigned, short, long.
  • int nu are limită de mărime. Nu se pune problema depășirii domeniului: un număr crește cât îngăduie memoria.
  • Există tip logic adevărat, bool, cu valorile True și False.

Tipul unei date se află cu funcția type:

numar = 10
print(type(numar))        # <class 'int'>
print(type(3.14))         # <class 'float'>
print(type('A'))          # <class 'str'>
print(type(5 > 3))        # <class 'bool'>

Codul unui caracter se află cu ord, iar caracterul cu un cod dat se obține cu chr. Un caracter nu se adună cu un număr: 'A' + 1 oprește programul cu TypeError.

print(ord('A'))           # 65
print(chr(ord('A') + 1))  # B
print(ord('7') - ord('0'))  # 7
print(int('7'))           # 7

Pentru caractere, funcțiile din <cctype> au corespondent în metodele șirurilor: c.isalpha(), c.isdigit(), c.isupper(), c.islower(), c.upper(), c.lower().

Numărul de zecimale afișate se stabilește la scriere: print(f"{x:.2f}") scrie valoarea lui x cu două zecimale.

Constantele

Într-un program se folosesc constante literale și constante simbolice.

Constantele întregi se pot scrie în baza 10, în baza 8 și în baza 16 (precedate de 0x sau 0X). În C++, constantele în baza 8 sunt precedate de 0: 012 înseamnă 10. În Python ele se scriu cu prefixul 0o sau 0O, de exemplu 0o12, iar 012 este eroare de sintaxă. Constantele reale se scriu cu punct între partea întreagă și cea fracționară, sau în notație științifică, cu mantisă și exponent despărțite de e sau E: 12.5 se poate scrie și 125E-1.

Materialul acesta se citește pe educamp.ro și nu se tipărește.

Ce cuprinde subcapitolul

  1. Vocabularul limbajului
  2. Tipurile de date
  3. Constantele
  4. Variabilele
  5. Operatorii
  6. Citirea și scrierea datelor

Continuă lectura ca și cursant

Cel puțin un subcapitol din fiecare capitol este disponibil gratuit și integral. Pentru a citi toate celelalte subcapitole ale disciplinei, te înscrii la cursul de pregătire.

Te înscrii, alegi în cont când începe cursul și plătești prima lună prin transfer bancar. Pentru a vedea mai întâi cum este prezentată materia, poți reveni la primul subcapitol al capitolului.

Acces la suportul de curs

25 RON / lună, fără ședințe

Ce cuprinde:

  • Acces la toate lecțiile disponibile
  • Suport de curs pentru tematica științifică și metodică
  • Exemple, explicații și exerciții
  • Acces la materialele noi adăugate pe platformă
  • Posibilitatea de a adresa întrebări

Poți alege și variante cu ședințe online, în grup sau individuale. Le vezi pe pagina cursului.

Ai întrebări sau o problemă? Scrie-mi pe WhatsApp, la 0745 874 576.

Înscrie-te Alte varianteCum plătești Login

Surse (3)
  • Cerchez, E., Șerban, M., „Programarea în limbajul C/C++ pentru liceu”, Editura Polirom, Iași, 2005
  • „Informatică. Manual pentru clasa a XI-a”, Editura Didactică și Pedagogică, București
  • „Tutorialul de Python”, documentația oficială a limbajului Python, https://docs.python.org/ro/3/tutorial/index.html
Actualizat: 20 octombrie 2026