Documente Academic
Documente Profesional
Documente Cultură
/**
program 1:
Hello World!
*/
#include <iostream>
using namespace std;
#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).
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.
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!
2
IDENTIFICATORI
3
TIPURI DE DATE
Declararea variabilelor:
int a,b,c;
sau:
int a;
int b;
int c;
4
CONSTANTE
1) Literali
- întregi (zecimali): 56
- întregi octali: 045
- întregi hexazecimali: 0x1b3
2) Constante definite
#define PI 3.14159
5
OPERATORI
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)
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;
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