# Primul program în C++

> Pagina: https://bacalaurescu.ro/informatica/lectii/elemente-de-baza-cpp/primul-program
> Markdown: https://bacalaurescu.ro/informatica/lectii/elemente-de-baza-cpp/primul-program.md
> Sursa: Bacalaurescu (bacalaurescu.ro), conținut gratuit pentru BAC 2027.

Materia: [Informatică](https://bacalaurescu.ro/informatica)

Capitolul: [Limbajul C++: elemente de bază](https://bacalaurescu.ro/informatica/lectii/elemente-de-baza-cpp)
Actualizat: 2026-11-01

Structura unui program C++, funcția main și afișarea unui mesaj.

## Pe scurt pentru BAC

- `#include <iostream>` aduce biblioteca pentru citire și afișare, iar `using namespace std;` te lasă să scrii `cout` în loc de `std::cout`.
- `int main()` este funcția principală a programului: de aici începe execuția.
- `return 0;` anunță sistemul că programul s-a terminat cu succes.
- Blocurile de cod stau între acolade `{ }`, iar o expresie fără ghilimele se evaluează înainte de afișare.

## Structura unui program C++

Orice program C++ pentru BAC are scheletul:

~~~cpp
#include <iostream>
using namespace std;

int main() {
    cout << "Salut, BAC!";
    return 0;
}
~~~

1. `#include <iostream>` aduce biblioteca pentru citire și afișare.
2. `using namespace std;` ne lasă să scriem `cout` în loc de `std::cout`.
3. `int main()` este funcția principală: de aici începe execuția.
4. `return 0;` anunță sistemul că programul s-a terminat cu succes.

## Instrucțiuni și punct și virgulă

Fiecare instrucțiune se termină cu `;`. Blocurile de cod stau între acolade `{ }`.

## Exemplu rezolvat

Ce afișează programul?

~~~cpp
int main() {
    cout << 2 + 3;
    return 0;
}
~~~

Expresia `2 + 3` se evaluează întâi, deci pe ecran apare `5`, nu textul "2 + 3". Textul apare doar între ghilimele.

> [!RETINE]
> Scheletul complet: `#include <iostream>`, `using namespace std;`, apoi `int main() { ... return 0; }`. Fiecare instrucțiune se termină cu `;`. `cout << 2 + 3` afișează `5`, iar `cout << "2 + 3"` afișează textul dintre ghilimele.

## Greșeli frecvente

1. Lipsa `;` după instrucțiuni: cea mai comună eroare de compilare.
2. `cout << "2 + 3"` afișează textul exact `2 + 3`, pe când `cout << 2 + 3` afișează `5`.
3. `main` fără `int` sau fără `return 0` poate merge pe unele compilatoare, dar la BAC scrie forma completă.
