Sunteți pe pagina 1din 31

PROGRAMARE ÎN C++

CURS 1
Program
• Structura:
– date de intrare 
– instrucțiuni (operații cu datele de intrare) 
– date de ieşire (rezultate)

• Etapele realizării:
– editarea codului sursă
• rezultat: un text scris conform regulilor sintacticii limbajului
– compilarea 
• rezultat: codul obiect
– editarea de legături
• rezultat: programul executabil
2
Stadiile rulării unui program

3
Compilator & Linker
• Compilator
– program care transformă codul sursă scris într‐un 
limbaj de programare într‐un program exprimat în 
limbaj binar (cod maşină) executabil

• Editor de legături 
– program care preia unul sau mai multe module 
obiect generate de compilator şi le combină într‐
un singur program executabil
4
Dezvoltarea unui program
Scriere cod în limbaj C++

Compilare
Editare de legături

NU
Succes?

DA

Rulare şi testare

DA NU
Erori? TERMINAT

5
Visual Studio 2005
IDE : integrated development environment

6
Visual Studio 2005

7
Crearea unei aplicații

8
Crearea unei aplicații

9
Crearea unei aplicații

10
Crearea unei aplicații

11
Program simpu în C++

ADĂUGAŢI

12
Program rulat

13
Directive de preprocesor

• O instrucțiune de forma:
#include <filename>

• Este adresată compilatorului de C++, pentru a încarca declarații şi definiții 
din bibliotecile C++

• Exemplu:  #include <iostream>
– încarcă suportul necesar operațiilor de input/output cu obiectele cin şi cout.
– Faptul că nu apare “.h” după iostream înseamnă că fişierul este precompilat.

14
Spațiul de nume

• Orice cuvânt cheie din program (nume de funcție, variabilă, operator...) are o 
definiție, adică un set de operații pe care procesorul trebuie să le execute atunci 
când întâlneşte respectivul cuvânt în program.

• Un set coerent de definiții ale cuvintelor cheie (nume), sunt grupate într‐o 
structură numită spațiu de nume.

• Biblioteca standard C++ este împachetată în spațiul de nume std. 

• Exemplu:  using namespace std;


anunță compilatorul că din acest loc în continuare semnificațiile cuvintelor cheie 
întâlnite în program trebuie luate din biblioteca numită std.

15
Spațiul de nume

• Dacă nu ar fi specificat spațiul de nume std, compilatorul ar trebui


informat asupra sursei definiției cuvântului cheie cout printr‐o
instrucțiune de forma:

std :: cout

iar instrucțiunea completă ar trebui să arate astfel:

std :: cout << “Linie de text in C++.”;

• Specificarea completă a unui nume de funcție sau variabilă are forma: 

spatiu :: clasa :: nume


16
Date şi Variabile
• variabile = locații de memorie în care se pot stoca date

• dimensiunea locației de memorie este funcție de tipul datei memorate

• Tipuri de variabile: int, double, char 

• În C++, este obligatorie declararea unei variabile înainte de utilizare

int x;
double y = 10.5, y = 7.0;
char caracter = 'a';

• expresie = un ansamblu de nume (variabile, funcții, …) şi operatori

• Instrucțiune = o expresie terminată cu caracterul “ ; ”

17
Introducerea datelor de la tastatură
// Program pentru conversia temperaturii: grade Celsius → grade Fahrenheit

#include “stdafx.h”
#include <iostream>
using namespace std;

int main() {

// Declară ctemp ca variabilă în virgulă mobilă

double ctemp;

// Introducerea valorii ctemp (Celsius) de la tastatură

cout << “Introduceţi temperatura în grade Celsius şi apăsaţi ENTER: ”;


cin >> ctemp;

// Converteşte ctemp din Celsius în Fahrenheit şi afişează rezultatul

cout << “Temperatura în grade Fahrenheit este: " << (ctemp * 1.8) + 32 << endl;

return 0;
}

18
Structuri decizionale ‐ if
if (condiţie) if (condiţie)
instrucţiune; instrucţiunea 1;
else
if (condiţie) { instrucţiunea 2;
instrucţiunea 1;
instrucţiunea 2;

}

Dacă evaluarea expresiei condiție are rezultatul TRUE (adevărat), se execută instrucțiunea. 


Dacă rezultatul este FALSE, se trece mai departe sau se execută blocul de instrucțiuni din else.
Dacă expresia condiție este o expresie cu rezultat numeric, atunci:
‐ rezultat 0 este echivalent cu FLASE
‐ rezultat pozitiv este echivalent cu TRUE

19
Structuri decizionale ‐ if
// Compararea a doi intregi

#include "stdafx.h"
#include <iostream>
using namespace std;

int main() {

int a = 20, b = 10;

if(a < b)
cout << "a = "<< a << " < " << "b = " << b << endl;

else if (a > b)
cout << "a = "<< a << " > " << "b = " << b << endl;
else
cout << "a = "<< a << " = " << "b = " << b << endl;

return 0;
}

20
Structuri repetitive ‐ while
while (condiţie)
instrucţiune;// cand conditie = TRUE

while (condiţie){
instrucţiunea1;
instrucţiunea2;

}

Exemplu:
// Printarea unui sir de intregi

int i=0; // initializare


while (i <= 10){
cout << i << endl;
i = i+1;
}

21
Operatori relaționali

ATENŢIE !

// instructiune de atribuire
a = b; (atribuie lui a valoarea b)

// testarea egalitatii
a == b; (este a egal cu b ?)

22
Tipul de date bool
• Tipul de date bool memorează două valori
– TRUE (1 sau orice valoare pozitivă)
– FALSE (0)

• Operatori pentru date bool

SIMBOL OPERAȚIE SINTAXA ACȚIUNE


Evaluează expresie1 şi expresie2.
&& AND (şi) expresie1 && expresie2 Dacă ambele sunt adevărate, returnează TRUE
(adevărat), altfel returnează FALSE (fals).

Evaluează expresie1 şi expresie2.


|| OR (sau) expresie1 || expresie2 Dacă cel puțin una dintre expresii este adevărată,
returnează TRUE (adevărat).

Evaluează expresie. Daca rezultatul este FALSE


! NOT (nu) !expresie (fals), returnează valoarea TRUE (adevarat). Altfel,
returnează FALSE (fals).

23
Exemplu

if ( i<n && a[i]==key )


cout << “cheia se afla in pozitia ”<< i << endl;

24
Operatori de incrementare/decrementare

OPERATOR ACȚIUNE

var++ Returnează (foloseşte) valoarea curentă a variabilei var după care adaugă o unitate.

++var Adaugă o unitate la var după care returnează (foloseşte) rezultatul.

var‐‐ Returnează (foloseşte) valoarea curentă a lui var dupăcare scade o unitate.

‐‐var Scade o unitate din var după care reurnează (foloseşte) rezultatul.

25
Citirea datelor de la tastatură
• cin
int n;
cout << “Introduceti numarul n = ”;
cin >> n;

• cin.getline(dest, size)
char moneda[4];
cout << “Moneda de intrare: ”;
cin.geltine(moneda, 4);

26
Bibioteca <math.h>
// Programul testeaza daca un numar introdus de la tastatura este prim

#include “stdafx.h”
#include <iostream>
#include <math.h>

using namespace std;

int main() {
int n; // numarul testat
int i; // contor
bool is_prime; // flag boolean

// Setam initial flag-ul la valoarea true (pp ca n este prim).

is_prime = true;

// Citeste numarul de la tastatura.

cout << “Introduceti un numar si apasati ENTER: ”;


cin >> n;

27
Bibioteca <math.h>
Operator de tip
Converteşte întegul n la double

// Testarea carcaterului prim a unui numar se face prin impartirea


// la intregii de la 2 la sqrt(n).

i = 2;
while (i <= sqrt(static_cast<double>(n))) {// Cat timp i <= sqrt(n)

if (n % i == 0){ // Daca i divide n,


is_prime = false; // n nu este prim.
break;
}
i++; // Incrementeaza i.
}
// Afiseaza rezultatul Operatorul modulo
Execută împărțirea la i şi returnează restul.   
if (is_prime)
cout << “Numarul este prim.”;
else cout << “Numarul nu este prim.”;

return 0;
}
28
Structuri repetitive ‐ for
for (initializare; conditie; increment)
instructiune;

for (initializare; conditie; increment) {


instructiunea 1;

instructiunea n;
}

Exemplu: i este variabila contor

for (i = 1; i <= 10; i++)


cout << i << “ ”;

29
Buclă for cu variabilă de ciclu
Contorul i este declarat în interiorul buclei for.
Este vizibil numai din interiorul buclei. 

int i=7;

acelaşi i for (int i = 1; i <= 10; i++)


cout << i << “ ”;

int u = i + 3;

30
Buclă for infinită

int i=1;
for( ; ; )
cout << i << " ";

Dacă se omit condiția sau incrementarea contorului, se obține o buclă infinită.  

31

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