De ce contează?
Gândește-te la o scrisoare oficială. Are mereu aceeași structură: antetul sus, formula de adresare, conținutul propriu-zis, apoi semnătura la final. Nu poți să sari peste semnătură și nici să pui conținutul înaintea antetului — cititorul (și poștașul) se așteaptă la o ordine. Un program C++ este la fel: are părți fixe, în aceeași ordine, iar calculatorul refuză să-l „citească” dacă lipsește una.
Ce este
Un program C++ este un fișier text scris după niște reguli stricte (sintaxa), pe care un program numit compilator îl transformă într-un fișier executabil. Calculatorul nu înțelege C++ direct: tu scrii cod într-un limbaj pe care îl pricepi tu, iar compilatorul îl traduce în limbajul mașinii (zerouri și unu). De aici regula de aur a începătorului: sunt mereu doi pași — întâi compilezi (traduci), apoi rulezi (execuți rezultatul). Dacă ai greșit o virgulă, compilatorul se oprește și-ți arată unde; programul nici nu apucă să pornească.
Chiar și cel mai mic program util are trei piese obligatorii:
- Directive
#include— îi spun compilatorului ce „unelte” gata făcute să aducă (de exemplu, cele pentru citire și afișare). - Funcția
int main()— punctul de pornire. Când rulezi programul, calculatorul cautămainși începe de acolo, de la prima linie din interiorul ei. return 0;— semnătura de final: îi spune sistemului de operare „m-am terminat, totul a mers bine”.
main nu este un nume oarecare pe care l-ai ales tu — este un cuvânt pe care compilatorul îl caută special. Poți avea zeci de funcții cu orice nume vrei, dar execuția începe MEREU din main. Fără ea, ai cod corect din punct de vedere al regulilor, dar niciun loc din care să pornească, ca o scrisoare fără adresă.
Cum arată
Hai să luăm cel mai mic program complet și să-l citim linie cu linie. Fiecare linie are un rol exact — nimic nu este „de decor”.
#include <iostream> // aduce uneltele pentru citire (cin) si afisare (cout)
using namespace std; // ne lasa sa scriem cout in loc de std::cout
int main() { // aici incepe executia programului
cout << "Salut!"; // afiseaza textul pe ecran
return 0; // anunta ca programul s-a terminat cu succes
} // acolada inchide functia mainCitește harta liniilor de mai sus:
| Linia | Ce face | De ce ai nevoie de ea |
|---|---|---|
#include <iostream> | Aduce biblioteca de intrare/ieșire | Fără ea, cout și cin nu există — compilatorul nu știe ce sunt |
using namespace std; | Scurtează numele uneltelor standard | Ca să scrii cout, nu std::cout, de fiecare dată |
int main() { | Deschide funcția principală | Este locul de unde pornește execuția |
cout << ...; | Trimite text/numere spre ecran | Așa „vorbește” programul cu tine |
return 0; | Întoarce codul de succes | Semnalează că totul a decurs corect |
} | Închide funcția | Orice acoladă deschisă trebuie închisă |
Observă două detalii care par mărunte, dar nu sunt: fiecare instrucțiune se termină cu punct și virgulă (;), iar tot ce este în interiorul funcției stă între acolade { }, indentat cu 4 spații. Punctul și virgula îi spune compilatorului „aici se termină o instrucțiune” — exact ca punctul la capătul unei propoziții.
Implementare C++
Acum un program puțin mai bogat: citește un număr de la tastatură și îl afișează înmulțit cu 2. Are toate piesele de mai sus, plus o variabilă și o citire cu cin.
#include <iostream>
using namespace std;
int main() {
int numar; // declaram o variabila intreaga
cin >> numar; // citim o valoare de la tastatura in numar
cout << numar * 2; // afisam dublul numarului citit
return 0; // gata, totul a mers bine
}Dacă la rulare introduci 21, programul afișează 42. Citește fluxul: cin >> numar ia ce ai tastat și-l pune în numar; cout << numar * 2 calculează dublul și-l trimite pe ecran; return 0 închide. Săgețile chiar „arată” direcția datelor — >> aduce date în program, << trimite date afară.
Cele trei capcane ale primei tale zile cu C++:
- Uiți
;la capătul unei instrucțiuni. Compilatorul îți arată eroarea de obicei pe linia URMĂTOARE, nu pe cea vinovată — așa că verifică și linia de deasupra mesajului. - Uiți
#include <iostream>și apoi te miri căcout„nu există”. Fără include, uneltele de afișare pur și simplu nu au fost aduse. - Uiți
return 0;sau o acoladă}. Programul fie nu compilează (acoladă lipsă), fie compilează cu un avertisment. Pune-le din reflex: deschiziint main() {, scrii imediatreturn 0;și}, apoi completezi între ele.