Introducere în limbajul C++

Hello World

Tradiționalul program "Hello, World!", pe cât de simplu, pe atât de cuprinzător, ca punct de pornire în orice limbaj de programare:

// Programul Hello World!
# include <iostream>
using namespace std;

int main () {
    cout << " Hello, world! \n"; //afișare folosind libraria C++
    return 0;

}

Elemente

Elementele sunt bucata minimă de program care are un înțeles pentru compilator - cele mai minimaliste semne ale limbajului. Codul utilizează toate cele 6 tipuri de elemente prezentate mai jos.

Tipul de element Descriere/Scop Exemple
Keywords/Cuvinte cheie Cuvinte cu înțeles special pentru compilator. int,double,for,auto
Identificatori Nume de obiecte ce nu fac parte din limbaj Litera
Valori Valori constante folosite direct în codul programului "Hello, World", 24.3, 0, 'c'
Operatori Folosiți pentru operații aritmetico-logice +, -, &&, %, <<
Punctuație/Separatori Elemente de structurare a programului { } ( ) , ;
Whitespace Spații libere diverse, ignorate de compilator spațiu, tab-uri, linie noua, comentariu

Explicație linie cu linie

1. "//" indică faptul că textul ce urmează pe rândul curent, după aceste 2 slash-uri este un comentariu. Comentariul pe mai multe linii se realizează astfel:

/*Aceste este
un comentariu
pe mai multe linii */

2. Liniile care încep cu # se numesc comenzi preprocesor, acestea cerând compilatorul să includă în fișierul curent, conținutul unui alt fișier, aici iostream, care definește proceduri de intrare/ieșire pentru ecran și tastatură.

4. int main() {...} definește punctul de plecare al execuției programul. Acoladele sunt folosite pentru a grupa mai multe comenzi într-un bloc.

5. cout << - Aceasta este sintaxa pentru afișarea unui text pe ecran folosind libraria iostream se folosește în C++.

Elemente de bază ale limbajului

Valori și afirmații

O afirmație/instrucțiune este o unitate de cod indivizibilă care efectuează o operație - un bloc de bază a unui program. Pentru a delimita o instrucțiune de alta se folosește caracterul ;

O expresie este o declarație ce conține o valoare - de exemplu un număr, un șir de caractere, suma a două numere, etc. "Hello, World", 4 + 2, x -1 sunt toate expresii.

Nu toate afirmațiile sunt expresii. De exemplu, #include nu este o expresie.

Tipuri de date

Tipul Domeniu de valori Descrierea
char -128 ÷ 128 Acest tip de date poate stoca un singur caracter.
int -32768 ÷ 32767 Acest tip de date poate stoca numere întregi negative și pozitive.
float -3.4E-38 ÷ 3.4E+38 Acest tip de date stochează numere raționale
double -1.7E-308 ÷ 1.7E+308 Acest tip de date stochează numere raționale, dar cu o precizie mult mai mare decât float
unsigned char 0 ÷ 255
unsigned int 0 ÷ 65535
long int -2147483648 ÷ 2147483647
unsigned long int 0 ÷ 4294967295
long double 3.4E-4932 ÷ 1.1E+4932

Modificatorii de tip

Pentru a modifica intervalul de valori al tipurile de date prezentate mai sus, limbajul C conține un set de modificatori de tip: unsigned, long, register, signed și short.

Modificatorul unsigned indică compilatorului să folosească bitul de semn pentru a reprezenta valori pozitive mai mari. Astfel, domeniul de valori al char se transformă în intervalul 0÷255.

Modificatorul long indică compilatorului să folosească încă 2 octeți pentru a reprezenta un număr.

Modificatorul register indică compilatorului să păstreze variabila într-un registru al procesorului, pentru a putea fi accesată cu un cost nimim.

Modificatorul signed indică compilatorului să folosească încă 2 octeti pentru a reprezenta un număr.

Modificatorul short indică compilatorului să folosească 1 bit pentru semn, iar restul pentru date.

Modalități de declarare și de atribuire de valori variabilelor

void main (void)
  {

//declararea variabilelor
   int varsta; //varsta in ani
   float greutate; //greutatea în kg

//declararea variabilelor de acelasi fel
   int lungime;
   int latime;
   int inaltime;

//sau:
   int lungime, latime,inaltime;

//inițializarea(atribuirea de valori) variabilelor
   varsta = 35;
   greutate = 45.5;

//declararea și inițializarea variabilelor
   int lungime = 55;
   int latime = 35;
   int inaltime = 25;

//atribuire multiplă:
   int lungime = 55;
   int latime = 55;
   int inaltime = 55;

//sau:
   lungime = lungime = inaltime = 55;

Operatori

Operatori aritmetici

                               

Nume operator

Sintaxa

Atribuire

= b

Adunare

+ b

Diferență

- b

Promovarea tipului de date

+a

Minus unar

-a

Înmulțire

* b

Împărțire

/ b

Modulo

% b

Increment

Prefix

++a

Postfix

a++

Decrement

Prefix

--a

Postfix

a--


Operatori de comparare

           

  Nume operator

 Sintaxa 

Egal

== b

Diferit

!= b

Mai mare

> b

Mai mic

< b

Mai mare sau egal

>= b

Mai mic sau egal

<= b

Operatori logici

     

Nume operator

  Sintaxa  

Negare

!a

ȘI logic

&& b

SAU logic

|| b

Operatori logici la nivel de bit

           

Operator name

  Syntax  

Negare la nivel de bit

~a

ȘI logic la nivel de bit

& b

SAU logic la nivel de bit

| b

SAU EXCLUSIV la nivel de bit

^ b

Șiftare la stânga la nivel de bit

<< b

Șiftare la dreapta la nivel de bit

>> b

Operatori compuși de atribuire

                       

Nume operator

  Sintaxa  

    Traducere    

Atribuire de sumă

+= b

= a + b

Atribuire de diferență

-= b

= a - b

Atribuire de înmulțire

*= b

= a * b

Atribuire de împărțire

/= b

= a / b

Atribuire de modulo(restul împărțirii)

%= b

= a % b

Atribuire de ȘI logic la nivel de bit

&= b

= a & b

Atribuire de SAU logic la nivel de bit

|= b

= a | b

Atribuire de SAU EXCLUSIV logic la nivel de bit

^= b

= a ^ b

Atribuire de șiftare la stânga la nivel de bit

<<= b

= a << b

Atribuire de șiftare la dreapta la nivel de bit

>>= b

= a >> b

Operatori la nivel de membrii și pointeri

         

Nume operator

Sintaxa

Accesarea elementului b a vectorului a

a[b]

Returnează un pointer la o variabilă

*a

Returnează adresa variabilei

&a

Accesarea unei structuri ("memberul b al obiectului pointat de a")

a->b

Adresarea unei structuri ("membrul b al obiectului a")

a.b

Asignare condiționată ?:

?: Se folosește astfel:

condiția ? valoarea_dacă_condiția_e_adevărată : valoarea_dacă_condiția_e_falsă

Condiția este evaluată ca o expresie booleană falsă sau adevărată. Bazat pe rezultatul evaluării, expresia returnează valoarea_dacă_condiția_e_adevărată, dacă condiția este adevărată, respectiv valoarea_dacă_condiția_e_falsă dacă condiția e falsă. De obicei cele două subexpresii valoarea_dacă_condiția_e_adevărată și valoarea_dacă_condiția_e_falsă trebuie să fie de același tip.

Exemplu:

char zi;
cout <<"Introduceti o zi:";
cin >> zi; //citeste un caracter de la tastatura
int ora_deschidere = (zi == 'D') ? 12 : 9;
cout << ora_deschidere; //afiseaza ora de deschidere

în loc să scriem "vorbăria":

int ora_deschidere;
char zi;
cout <<"Introduceti o zi:";
cin >> zi; //citeste un caracter de la tastatura
if (zi == 'D')
    ora_deschidere = 12;
else
    ora_deschidere = 9;
cout << ora_deschidere; //afiseaza ora de deschidere