Structura unui program C++
Orice program C++ respectă o anumită organizare. Chiar dacă nu toate componentele sunt obligatorii, este important să le recunoaștem și să știm ce rol au. Structura generală arată astfel:
#include <librarie> // 1. directive de preprocesare
using namespace std; // 2. spatiul de nume standard
// 3. declaratii globale
// 4. subprograme (functii)
int main() { // 5. functia principala
// 6. declaratii locale
// 7. blocul de instructiuni
return 0; // 8. incheierea programului
}
Să vedem, pe rând, ce înseamnă fiecare parte.
Directivele de preprocesare
Liniile care încep cu # sunt directive de preprocesare: ele sunt prelucrate înaintea compilării propriu-zise. Cea mai folosită este #include, care adaugă în program o bibliotecă, adică un set de funcții deja scrise, gata de folosit:
#include <iostream> // citire si afisare (cin, cout)
#include <fstream> // lucrul cu fisiere
#include <cmath> // functii matematice
#include <cstring> // siruri de caractere
Tot o directivă de preprocesare este și #define, prin care dăm un nume unei valori fixe. Este explicată mai pe larg într-un articol ulterior: declararea constantelor.
Spațiul de nume standard
Linia using namespace std; îi spune compilatorului să caute în spațiul de nume standard construcțiile pe care le folosim, cum ar fi cin și cout. La nivel de liceu, această linie va fi prezentă în aproape toate programele noastre.
Funcția principală și blocul de instrucțiuni
Execuția oricărui program începe din funcția principală, int main(). Instrucțiunile dintre acoladele ei se execută în ordinea în care sunt scrise. La nivel de liceu, parantezele rotunde ale funcției main rămân goale.
În interiorul funcției găsim, de obicei, mai întâi declarațiile locale (variabilele folosite), apoi blocul de instrucțiuni care rezolvă efectiv problema. Înaintea funcției principale putem avea declarații globale, vizibile peste tot (vezi variabilele globale), și definiții de subprograme.
Ultima instrucțiune, return 0;, marchează încheierea cu succes a programului: valoarea 0 comunică sistemului de operare că totul a decurs normal.
Acoladele delimitează un bloc de instrucțiuni. Le vom regăsi nu doar la funcția principală, ci și la structurile de control și la subprograme, peste tot unde grupăm mai multe instrucțiuni la un loc.
Exemplu
Enunț. Se citesc două numere naturale
așib, lungimea și lățimea unui dreptunghi. Să se afișeze perimetrul acestuia.
#include <iostream>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
cout << 2 * (a + b);
return 0;
}
Recunoaștem toate componentele discutate: directiva #include <iostream> aduce citirea și afișarea, using namespace std; ne dă acces la cin și cout, declarăm local cele două variabile, le citim, calculăm și afișăm perimetrul, apoi încheiem cu return 0;.