Sunteți pe pagina 1din 10

STRUCTURA UNUI PROGRAM C++

/**
program 1:
Hello World!
*/
#include <iostream>
using namespace std;

int main (){


cout << "Hello World!";
return 0;
}

 Liniile care încep cu // sau /// sunt considerate comentarii şi ignorate de


compilator. Pentru comentarii care ocupă mai multe linii se pot folosi /*
sau /** la începutul comentariului respectiv */ pentru a termina comentariul.

#include <iostream>
 Liniile care încep cu # reprezintă directive de preprocesare. Preprocesarea
înseamnă prelucrarea programului înainte de compilare. De obicei
preprocesarea înseamnă substituţii: includeri de fişiere cu text sursă sau
definiţii privind substituirea unor succesiuni de caractere.
 #include <iostream> înseamnă includerea fişierului standard iostream la
preprocesarea programului. Această bibliotecă permite utilizarea
intrărilor/ieşirilor standard (utilizarea cin şi cout).

using namespace std;


 Toate elementele bibliotecilor standard C++ sunt declarate în cadrul unui
anumit "namespace" – std.
Programul se poate scrie şi:
// program Hello World!
#include <iostream>

int main (){


std::cout << "Hello World!";
return 0;
}

1
int main ()
 Execuţia unui program C++ înseamnă executarea instrucţiunilor funcţiei
main, indiferent unde se află aceasta în fişierul sursă. Programul poate avea
şi alte funcţii definite înainte sau după funcţia main, dar instrucţiunile
acestei funcţii main vor fi executate prima dată într-un program C++.
TOATE PROGRAMELE C++ TREBUIE SĂ AIBĂ O FUNCŢIE MAIN.
 Orice funcţie C++ va avea paranteze după numele funcţiei, iar anumite
funcţii vor avea parametrii definiţi între aceste paranteze.
 Corpul funcţiei (instrucţiunile funcţiei) se află între acolade.

cout << "Hello World!";


 Prin această instrucţiune se trimite şirul de caractere Hello World! spre
ieşirea standard (cout ce corespunde de obicei ecranului)
 cout este declarat în fişierul standard iostream sub numele std

 Instrucţiunile sunt separate prin ; (punct şi virgulă)

return 0;
 Comanda return indică terminarea funcţiei main. Valoarea 0 înseamnă în
general că programul s-a finalizat fără eroare.
cout << "Hello World!"<<"Buna ziua!";
 Hello World!Buna ziua!

cout << "Hello World!";


cout << "Buna ziua!";
 Hello World!Buna ziua!

cout << "Hello World!\n";


cout << "Buna ziua!";
 Hello World!
Buna ziua!

cout << "Hello World!\n"<< "Buna ziua!";


sau:
cout << "Hello World!"<<"\n"<< "Buna ziua!";

Se poate folosi endl în loculul lui \n (newline)

2
IDENTIFICATORI

= o secvenţă de litere ale alfabetului englez, cifre sau caracterul de subliniere şi


care începe obligatoriu cu o literă sau cu caracterul de subliniere
C++ este un limbaj case-sensitive
Ex: identificatorii: Alfa, ALFA sau alfa sunt diferiţi!

Identificatorii nu trebuie să folosească cuvintele cheie ale limbajului:


asm, auto, bool, break, case, catch, char, class, const, const_cast, continue,
default, delete, do, double, dynamic_cast, else, enum, explicit, export, extern,
false, float, for, friend, goto, if, inline, int, long, mutable, namespace, new,
operator, private, protected, public, register, reinterpret_cast, return, short,
signed, sizeof, static, static_cast, struct, switch, template, this, throw, true, try,
typedef, typeid, typename, union, unsigned, using, virtual, void, volatile,
wchar_t, while 

Nu se pot folosi nici:


and, and_eq, bitand, bitor, compl, not, not_eq, or, or_eq, xor, xor_eq

3
TIPURI DE DATE

Tipul Dimensiune Domeniul


char 1byte -128 .. 127 or 0 .. 255
unsigned char 1byte 0 .. 255
signed char 1byte -128 .. 127
int 4bytes -2147483648 .. 2147483647
unsigned int 4bytes 0 .. 4294967295
signed int 4bytes -2147483648 .. 2147483647
short int 2bytes -32768 .. 32767
unsigned short int 2bytes 0 .. 65535
signed short int 2bytes -32768 .. 32767
long 4bytes -2147483648 .. 2147483647
signed long int 4bytes -2147483648 .. 2147483647
unsigned long int 4bytes 0 .. 4294967295
float 4bytes +/- 3.4e +/- 38 (precizie 7 cifre)
double 8bytes +/- 1.7e +/- 308 (precizie 15 cifre)
long double 8bytes +/- 1.7e +/- 308 (precizie 15 cifre)
wchar_t 2 sau 4 bytes

Declararea variabilelor:

int a,b,c;
sau:
int a;
int b;
int c;

La declarare variabilele pot fi şi iniţializate:


int x=10;
sau:
int x(10);

4
CONSTANTE

1) Literali
- întregi (zecimali): 56
- întregi octali: 045
- întregi hexazecimali: 0x1b3

Se poate preciza tipul:


15 // int este implicit
15u // unsigned int
15l // long
15ul // unsigned long

- numere reale: 13.6


1.67E+3
Implicit acestea sunt de tip double, dar se poate specifica şi tipul dorit:
145.6f // float
715.36L // long double

- de tip caracter: 'a'


- de tip şir de caractere: "Acesta este un exemplu"

2) Constante definite
#define PI 3.14159

5
OPERATORI

1) Operatorul de atribuire (=)


k=34.18;
2) Operatori aritmetici (+,-,*,/,%)
+ adunare
- scădere
* înmulţire
/ împărţire
% restul împărţirii întregi
Obs: dacă ambii operanzi sunt numere întregi, / înseamnă câtul împărţirii întregi,
dar dacă cel puţin unul din operanzi este real, / înseamnă împărţire reală
3/2=1
3.0/2=1.5

Operatorii aritmetici (şi alţii!) pot fi combinaţi cu operatorul de atribuire:


a=a+1;  a+=1;
a=a-3;  a-=3;
a=a*2;  a*=2;
a=a/2;  a/=2;
a=a%10;  a%=10;

3) Operatori relaţionali:
== egal
!= diferit
< mai mic
> mai mare
<= mai mic sau egal
>= mai mare sau egal
4) Operatori logici:
! negația logică (NOT)
&& și logic (AND)
|| sau logic (OR)

5) Operatori de incrementare şi decrementare


INCREMENTARE: a=a+1; a++; (postfixat) ++a; (prefixat)
DECREMENTARE: a=a-1;  a--; (postfixat)  --a; (prefixat)

6
Atunci când se folosesc într-o expresie, operatorii prefixaţi şi cei
postfixaţi vor funcţiona diferit.
Ex:
a=10;
b=a++;
 a=11 şi b=10 (valoarea lui a este atribuită lui b, iar apoi a este incrementat)
a=10;
b=++a;
 a=11 şi b=11 (a este întâi incrementat, iar apoi valoarea lui a – noua sa
valoare! este atribuită lui b)

6) Operatori pe biţi
7) Operatorul , (virgulă)
int a,b,c;
c=(a=10,b=5,a+b);
Vor fi evaluate toate expresiile, dar în final lui c i se va atribui
valoarea celei mai din dreapta expresii.
8) Operatori de conversie explicită
int i;
double x = 3.14;
i = (int) x;//i=3

9) Operatorul condiţional ? :
a>b ? a : b (determină maximul dintre a şi b)

7
În evaluarea unei expresii trebuie să ținem cont de prioritatea operatorilor implicați
în expresie:
1 (…) Parantezele din expresiile logice / aritmetice
(maximă) […] Expresie de indici la tablouri, şiruri de caractere
! Negare logică
~ Negare pe biţi (Complement faţă de 1)
+  - Plus şi minus unar (semnele)
++ / -- Incrementare / Decrementare
Operatori & Operator de adresă, referenţiere
2
unari * Operator de indirectare, dereferenţiere
sizeof() Returnează dimensiunea în octeţi a operandului
(tip de dată) Conversie explicită de tip
new Alocare dinamică
delete Dealocare dinamică
* Înmulţirea
Operatori
3 / Împărţirea
multiplicativi
% Modulo (restul împărţirii)
Operatori + Adunare binară
4
aditivi - Scădere binară
Operatori de << Deplasare biţi la stânga
5 deplasare (pe
>> Deplasare biţi la dreapta
biți)
Operatori < Mai mic strict
relaţionali <= Mai mic sau egal
6
(de > Mai mare strict
inegalitate) >= Mai mare sau egal
Operatori == Egalitatea într-o expresie aritmetică sau logică
7 relaţionali
!= Inegalitatea într-o expresie aritmetică sau logică
(de egalitate)
8 & Şi – pe biţi
Operatori
9 ^ Sau exclusiv – pe biţi
logici pe biţi
10 | Sau – pe biţi
11 Operatori && Şi – logic
12 logici || Sau – logic
Operatorul
if (el)   X;
13 condiţional (el)? (X) : (Y)
else      Y;
(terţiar)
= Asignare (atribuirea unei valori la o variabilă)
*=      /=    
Operatori de Asignare produs, împărţire, modul
%=
14 asignare
+=       -= Asignare sumă, diferenţă
(atribuire)
&=    ^=    |= Asignează și, sau exclusiv, sau  - pe biţi
<<=     >>= Asignează deplasare stânga, deplasare dreapta
15 Operatorul y=(x=3 , x++) 
,
(minimă) virgulă

8
STRUCTURI DE CONTROL

1) Instrucţiunea compusă
= o secvenţă de instrucţiuni cuprinse între acolade.
2) Structura alternativă simplă (decizia) – instrucțiunea if
if (condiţie) instrucţiune1;
else instrucţiune2;
Observații:
- condiție este o expresie logică, adică o expresie care se evaluează la
adevărat sau fals, sau poate fi o expresie numerică, caz în care 0 este fals, iar
orice valoare nenulă este adevărat
- instrucțiune1/instrucțiune2 - o singură instrucțiune C++; dacă trebuie
executate mai multe instrucțiuni acestea vor fi scrise între acolade pentru a
forma o instrucțiune compusă;

Modul de execuție:
Pasul 1: se evaluează condiția;
Pasul 2: dacă condiția este adevărată se execută instrucțiune1;
Pasul 3: (altfel) dacă condiția este falsă se execută instrucțiune2;
Variantă: if (condiţie) instrucţiune;

3) Structuri repetitive
a) Instrucțiunea while (structura repetitivă condiționată anterior)
while (condiţie) instrucţiune;
Modul de execuție:
Pasul 1: se evaluează condiția;
Pasul 2: dacă condiția este adevărată se execută instrucțiune ȘI SE REVINE LA
PASUL 1;
Pasul 3: dacă condiția este falsă se trece la următoarea instrucțiune din program;

b) Instrucțiunea do-while (structura repetitivă condiționată ulterior)


do instrucţiune while (condiţie);
Modul de execuție:
Pasul 1: se se execută instrucțiune;
Pasul 2: evaluează condiția;
Pasul 3: dacă condiția este adevărată SE REVINE LA PASUL 1;
Pasul 4: dacă condiția este falsă se trece la următoarea instrucțiune din
program;

c) Instrucțiunea for (structura repetitivă cu contor)


for (iniţializare contor; condiţie; modificare contor) instrucţiune;

9
Exemplu: Se dă un număr natural n. Calculați suma s=1+2+3+...+n
I.
int n,i,s;
cin>>n;
s=0;
i=1;
while(i<=n){
s=s+i;
i++;
}
cout<<s<<endl;

II.
int n,i,s;
cin>>n;
s=0;
for(i=1;i<=n;i++)
s=s+i;
cout<<s<<endl;

III.
int n,i,s;
cin>>n;
s=0;
i=0;
do{
s=s+i;
i++;
}while(i<=n);
cout<<s<<endl;

IV.
int n,s;
cin>>n;
s=n*(n+1)/2;
cout<<s<<endl;

10

S-ar putea să vă placă și