vineri, 9 noiembrie 2012

Tutorial C++: Structura unui program C++

#include <iostream>
using namespace std;

int main()
{
    // Afiseaza pe ecran Hello World
    cout << "Hello World";
    return 0;
}

Directivele preprocesor

#include <iostream>
Această linie se numeşte directivă preprocesor sau simplu directivă. Se deosebeşte de celelalte linii de cod prin faptul că începe cu #.
Rolul acestor linii este multiplu. Aici, directiva #include are rolul de a preciza compilatorului faptul că vom folosi în program entităţile (funcţii, clase, constante, etc.) din fişierul iostream (cout este un obiect definit în namespace-ul std din iostream).
În acest mod putem scrie programe pornind de la altele existente, fără a rescrie conţinutul lor în noul program. E un mod de a salva timp, spaţiu şi bani.
Fişierul iostream face parte din standardul C++ (compilatorul ştie unde se află, de aceea nu trebuie să precizăm întreg path-ul).
Directivele nu se termină cu punct şi virgulă (Reţineţi asta!).
Următoarea linie using namespace std; spune că vom folosi toate numele (denumirile entităţilor) din secţiunea (această secţiune se numeşte de fapt namespace; veţi afla mai târziu ce este acesta) std din iostream.
Majoritatea programelor C++ vor începe cu aceste două linii. Fără ele nu veţi putea afişa pe ecran şi nu veţi putea citi date de la user.

Funcţia main

Un program C++ constă practic doar din funcţia main. Atunci când rulaţi programul, sistemul de operare invocă automat funcţia numită main.
Funcţiile - alte denumiri pentru conceptul de funcţie sunt: procedură, subprogram, metodă (în OOP) - sunt entităţi ce grupează sub un singur nume o porţiune de cod din program.
Funcţiile pot fi apelate (invocate) precizând numele acestora. Atunci când o funcţie este invocată, codul funcţiei - se află între acolade - va fi executat.
Observaţi că o funcţie permite executarea aceluiaşi cod de mai multe ori fără a scrie respectivul cod de mai multe ori în program.
Main este entry-pointul (punctul de intrare) programului. Aproape toate limbajele de programare necesită definirea unei funcţii main. Fiecare program trebuie să aibă un punct de start, iar acest punct este funcţia main.
Linia int main() se numeşte antetul sau header-ul funcţiei. În antet apar: tipul valorii returnate de funcţie (aici int), numele funcţiei (aici main), parametrii între paranteze (dacă există).
Corpul funcţiei (function body) constă din cele două acolade şi codul definit între ele.
Instrucţiunea return 0; returnează valoarea 0 şi totodată opreşte execuţia funcţiei. Deoarece sistemul de operare a apelat funcţia, tot el este acela care va primi valoarea returnată de main. Codul 0 semnifică faptul că programul a rulat fără probleme.

Instrucţiuni şi comentarii

Instrucţiunile (statements) reprezintă comenzi către calculator; sarcinile pe care acesta trebuie să le îndeplinească.
Toate instrucţiunile trebuie să se termine cu punct şi virgulă ; (Reţineţi asta!).
Puteţi avea mai multe instrucţiuni pe aceeaşi linie atâta timp cât le separaţi prin punct şi virgulă.
În programul de mai sus, instrucţiuni sunt:

using namespace std;
cout << "Hello World";
return 0;
Directivele sunt instrucţiuni - speciale - pentru preprocesor. Preprocesorul este executat de compilator înainte ca procesul de compilare să aibă loc.
Linia // Afiseaza pe ecran Hello World reprezintă un comentariu (comment). Comentariile nu fac nimic (nu sunt instrucţiuni). Sunt de 2 feluri:
- comentariile întinse pe un rând (încep cu //);
- comentariile întinse pe mai multe rânduri (încep cu /* şi se termină cu */). Exemplu:
/* Grumpy wizards make toxic brew 
for the evil Queen and Jack. */
Comentariile sunt ignorate de compilator. Comentariile sunt folosite, în general, pentru a explica anumite părţi ale programului.
Instrucţiunea cout << "Hello World"; afişează pe ecran textul Hello World.

Instrucţiunile din program sunt executate secvenţial (una după alta) de la început până la sfârşit. După ce toate instrucţiunile au fost executate, programul îşi încetează execuţia.
Şi compilatorul scanează secvenţial codul sursă atunci când îl translatează în cod maşină.
Motivul pentru care browserul - pe care-l folosiţi acum - nu se opreşte este că acesta aşteaptă comenzi de la user. Dacă userul apasă pe X, atunci browserul se va opri, deoarece comanda de terminare va fi ultima de îndeplinit.
Este posibil să alterăm execuţia secvenţială a programului folosind structurile de control (for, if, while, etc.). Acestea modifică flow-ul execuţiei programului în funcţie de anumite condiţii. Voi discuta despre aceste lucruri mai târziu.

Niciun comentariu:

Trimiteți un comentariu

Rețineți: Numai membrii acestui blog pot posta comentarii.