Lecture3 - PC

109
Programarea calculatoarelor #3 Adrian Runceanu www.runceanu.ro/adrian 2016 C++ Instrucţiunile limbajului C ++

Transcript of Lecture3 - PC

Page 1: Lecture3 - PC

Programarea calculatoarelor

#3

Adrian Runceanuwww.runceanu.ro/adrian

2016

C++Instrucţiunile limbajului C++

Page 2: Lecture3 - PC

[email protected]

Curs 3

Instrucţiunile limbajului C++

02.12.2016 Programarea calculatoarelor 2

Page 3: Lecture3 - PC

[email protected]

3. Instrucţiunile limbajului C++

3.1. Instrucţiunea vidă3.2. Instrucţiunea compusă3.3. Instrucţiunea expresie3.4. Instrucţiunea if3.5. Instrucţiunea while3.6. Instrucţiunea do while3.7. Instrucţiunea for3.8. Instrucţiunea switch3.9. Instrucţiunea break3.10. Instrucţiunea continue3.11. Instrucţiunea goto3.12. Instrucţiunea return

02.12.2016 Programarea calculatoarelor 3

Page 4: Lecture3 - PC

[email protected]

3.1. Instrucţiunea vidă

Limbajul C++ are câteva instrucţiuni cu ajutorul cărora se pot construi programe. Acestea sunt:

Instrucţiunea vidă:

Instrucţiunea compusă:

este delimitată de { şi se termină cu }.

02.12.2016 Programarea calculatoarelor 4

;

{ . . . . }

Page 5: Lecture3 - PC

[email protected]

3. Instrucţiunile limbajului C++

3.1. Instrucţiunea vidă3.2. Instrucţiunea compusă3.3. Instrucţiunea expresie3.4. Instrucţiunea if3.5. Instrucţiunea while3.6. Instrucţiunea do while3.7. Instrucţiunea for3.8. Instrucţiunea switch3.9. Instrucţiunea break3.10. Instrucţiunea continue3.11. Instrucţiunea goto3.12. Instrucţiunea return

02.12.2016 Programarea calculatoarelor 5

Page 6: Lecture3 - PC

[email protected]

3.2. Instrucţiunea compusă

Uneori programele trebuie să efectueze una sau

mai multe instrucţiuni atunci când o condiţie este

îndeplinită (de exemplu într-o instrucţiune if) şi alte

instrucţiuni când condiţia nu este îndeplinită.

Sau atunci când o condiție se evaluează într-o

structură (instrucțiune) repetitivă – de tip while, do

while sau for, iar prelucrările din acea structură pot

să fie compuse din una sau mai multe instrucțiuni.

02.12.2016 Programarea calculatoarelor 6

Page 7: Lecture3 - PC

[email protected]

3.2. Instrucţiunea compusă

Limbajul C++ consideră instrucţiunile ca fiind

instrucţiuni simple şi instrucţiuni compuse:

O instrucţiune simplă este de fapt o singură

instrucţiune, cum ar fi aceea de atribuire sau de apel

al unei funcţii standard (de exemplu funcţia cout).

O instrucţiune compusă este alcătuită din două

sau mai multe instrucţiuni incluse între acolade.

02.12.2016 Programarea calculatoarelor 7

Page 8: Lecture3 - PC

[email protected]

3. Instrucţiunile limbajului C++

3.2. Instrucţiunea vidă3.2. Instrucţiunea compusă3.3. Instrucţiunea expresie3.4. Instrucţiunea if3.5. Instrucţiunea while3.6. Instrucţiunea do while3.7. Instrucţiunea for3.8. Instrucţiunea switch3.9. Instrucţiunea break3.10. Instrucţiunea continue3.11. Instrucţiunea goto3.12. Instrucţiunea return

02.12.2016 Programarea calculatoarelor 8

Page 9: Lecture3 - PC

[email protected]

3.3. Instrucţiunea expresie

Instrucţiunea expresie:

Are 3 forme:

a) instrucţiunea de atribuire b) instrucţiunea de apel de funcţiec) instrucţiunea de incrementare / decrementare

02.12.2016 Programarea calculatoarelor 9

expresie;

Page 10: Lecture3 - PC

[email protected]

3.3. Instrucţiunea expresie

a) instrucţiunea de atribuire

Exemplu:int x, y, z;z = x + 5 * y;x + = 10; (semnificație: x = x + 10;)

02.12.2016 Programarea calculatoarelor 10

variabila = expresie; sau

variabila operator = expresie;

Page 11: Lecture3 - PC

[email protected]

3.3. Instrucţiunea expresie

b) instrucţiunea de apel de funcţie

unde pa1, pa2, . . ., pan sunt parametrii actuali aifuncţiei (adică valorile cu care se va lucra înfuncţia respectivă la apelul funcţiei).

Exemplu:maxim (int a, int b); // apelul functiei maxim care are doi

parametri actuali de tip întreg

02.12.2016 Programarea calculatoarelor 11

nume_functie(pa1, pa2, . . . ,pan);

Page 12: Lecture3 - PC

[email protected]

3.3. Instrucţiunea expresie

c) instrucţiunea de incrementare/decrementare

Exemplu:int i, j, k;i++; --j;k++ + --i;

02.12.2016 Programarea calculatoarelor 12

variabila ++;++ variabila;variabila --;-- variabila;

Page 13: Lecture3 - PC

[email protected]

3. Instrucţiunile limbajului C++

3.1. Instrucţiunea vidă3.2. Instrucţiunea compusă3.3. Instrucţiunea expresie3.4. Instrucţiunea if3.5. Instrucţiunea while3.6. Instrucţiunea do while3.7. Instrucţiunea for3.8. Instrucţiunea switch3.9. Instrucţiunea break3.10. Instrucţiunea continue3.11. Instrucţiunea goto3.12. Instrucţiunea return

02.12.2016 Programarea calculatoarelor 13

Page 14: Lecture3 - PC

[email protected]

3.4. Instrucţiunea if

Instrucţiunea if (instrucţiune de decizie sau condiţională)

Are două forme:

02.12.2016 Programarea calculatoarelor 14

if (expresie) instructiune;

if (expresie) instructiune1;

elseinstructiune2;

Page 15: Lecture3 - PC

[email protected]

3.4. Instrucţiunea if

Instrucţiunea if

Observaţie:În limbajul C++, spre deosebire de limbajul

PASCAL, nu există cuvântul cheie THEN.02.12.2016 Programarea calculatoarelor 15

Page 16: Lecture3 - PC

[email protected]

Exemple de programe C++

Enunţ:Să se calculeze perimetrul şi aria unui triunghioarecare dacă se cunosc laturile triunghiului.

Pas 1: Stabilim care sunt datele de intrare, adică celecare vor fi prelucrate cu ajutorul algoritmului,împreună cu datele de ieşire.

În cazul problemei date, avem:Date de intrare: a, b, şi c numere reale ce reprezintă

laturile triunghiului.Date de ieşire: p şi S numere reale ce reprezintă

perimetrul si aria triunghiului dat.02.12.2016 Programarea calculatoarelor 16

Page 17: Lecture3 - PC

Exemple de programe C++Pas 2: Analiza problemei

Stabilim condiţiile pe care trebuie să leîndeplinească datele de intrare pentru a fiprelucrate în cadrul algoritmului.

În cadrul problemei pe care o avem de rezolvat,cunoaştem formula lui Heron pentru calculul arieiunui triunghi dacă se cunosc laturile sale:

unde p reprezintă semiperimetrul triunghiului.

))()(( cpbpappS

02.12.2016 Programarea calculatoarelor 17

Page 18: Lecture3 - PC

Exemple de programe C++

Pas 3: Scrierea algoritmului în pseudocod:

02.12.2016 Programarea calculatoarelor 18

real a, b, c, p, Sciteşte a, b, cp <- a + b + cscrie ‘Perimetrul triunghiului este ‘, pp <- p / 2

scrie ‘Aria triunghiului este ’, Sstop

c)(pb)(pa)(ppS

Page 19: Lecture3 - PC

[email protected]

Exemple de programe C++

Pas 4: Implementarea algoritmului în limbajul de programare C++:

02.12.2016 Programarea calculatoarelor 19

#include<iostream.h>#include<math.h>int main(void){

float a, b, c, p, S;cin>>a; cin>>b; cin>>c;p = a + b + c;

cout<<" Perimetrul este = "<<p;

p = p / 2;S = sqrt(p*(p-a)*(p-b)*(p-c));cout<<"Aria este = "<<S;

}

Page 20: Lecture3 - PC

[email protected]

Exemple de programe C++

Pas 5: Testarea algoritmului pe date de intrare diferite şiverificarea rezultatelor.

Exemplul 1:Pentru valorile a=2, b=3, c=4, obţinem următoarele

rezultate:Perimetrul este = 9Aria este = 1.369306

Exemplul 2:Pentru valorile a=12, b=4, c=10, obţinem

următoarele rezultate:Perimetrul este = 26Aria este = 5.196152

02.12.2016 Programarea calculatoarelor 20

Page 21: Lecture3 - PC

Exemple de programe C++

Enunţ:Să se calculeze valoarea funcţiei f(x), ştiind că x

este un număr real introdus de la tastatură:

Pas 1: Date de intrare: x număr realDate de iesire: f număr real, reprezentând valoarea

funcţiei date.

0,2

]0,7(,30

]7,(,206

)(

xdacax

xdacax

xdacax

xf

02.12.2016 Programarea calculatoarelor 21

Page 22: Lecture3 - PC

[email protected]

Exemple de programe C++

Pas 2: Analiza problemeiStabilim condiţiile pe care trebuie să le

îndeplinească datele de intrare pentru a fiprelucrate în cadrul algoritmului.

Căutăm cazurile particulare.În cadrul problemei pe care o avem de rezolvat,

verificăm condiţiile date în expresia funcţiei:1) Dacă x <= -7, atunci funcţia are valoarea: -6x+202) Daca x > -7 si x <= 0, atunci funcţia are valoarea:

x+303) Daca x > 0, atunci funcţia are valoarea: sqrt(x)+2

02.12.2016 Programarea calculatoarelor 22

Page 23: Lecture3 - PC

Exemple de programe C++

Pas 3: Scrierea algoritmului în pseudocod:

02.12.2016 Programarea calculatoarelor 23

real x, fciteşte xdacă x <= -7 atunci

f <- -6 * x + 20altfel

dacă x > -7 şi x <= 0 atuncif <- x + 30

altfelf <- sqrt(x) + 2

sfârşit dacăsfarşit dacăscrie fstop

Page 24: Lecture3 - PC

[email protected]

Exemple de programe C++

Pas 4: Implementarea algoritmului în limbajul de programare C++:

02.12.2016 Programarea calculatoarelor 24

#include<iostream.h>#include<math.h>int main(void){

float x, f;cin>>x;if( x <= -7 ) f = -6 * x + 20;else

if( x > -7 && x <= 0 )f = x + 30;

elsef = sqrt(x) + 2;

cout<<"f = "<<f;}

Page 25: Lecture3 - PC

[email protected]

Exemple de programe C++

Pas 5: Testarea algoritmului pe date de intrarediferite şi verificarea rezultatelor.

Exemplul 1:Pentru valoarea x=2 obţinem următorul rezultat:

f= 3.414214Exemplul 2:

Pentru valoarea x=-24 obţinem următorulrezultat:

f= 164

02.12.2016 Programarea calculatoarelor 25

Page 26: Lecture3 - PC

Exemple de programe C++

Enunţ:Se dau trei numere întregi a,b,c. Să se

afişeze în ordine crescătoare.Exemplu: Dacă a = 12, b = 2, c = 9, atunciobţinem a = 2, b = 9, c = 12

Pas 1:Date de intrare: a, b, c numere întregiDate de iesire: a, b, c în ordine crescătoare

02.12.2016 Programarea calculatoarelor 26

Page 27: Lecture3 - PC

[email protected]

Exemple de programe C++

Pas 2: Analiza problemei1) Comparăm primele două numere a şi b, dacă a este

mai mare decât b atunci vom interschimba celedouă valori.

2) Comparăm următoarele două numere b şi c, dacă beste mai mare decât c atunci vom interschimba celedouă valori.

3) Comparăm din nou cele două numere a şi b, dacă aeste mai mare decât b atunci vom interschimba celedouă valori.

02.12.2016 Programarea calculatoarelor 27

Page 28: Lecture3 - PC

Exemple de programe C++

Pas 3: Scrierea algoritmului în pseudocod:

02.12.2016 Programarea calculatoarelor 28

întreg a, b, c, auxciteşte a, b, cdacă a > b atunci

aux <- aa <- bb <- aux

sfârşit dacădacă b > c atunci

aux <- bb <- cc <- aux

sfârşit dacădacă a > b atunci

aux <- aa <- bb <- aux

sfârşit dacăscrie a, b, cstop

Page 29: Lecture3 - PC

[email protected]

Exemple de programe C++

Pas 4: Implementarea algoritmului în limbajul de programare C++:

02.12.2016 Programarea calculatoarelor 29

#include<iostream.h>int main(void){

int a, b, c, aux;cin>>a; cin>>b; cin>>c;if( a > b ) {

aux=a;a=b;b=aux;

}if( b > c ){

aux=b;b=c;c=aux;

}if( a > b ){

aux=a;a=b;b=aux;

}cout<<a<<" "<<b<<" "<<c;

}

Page 30: Lecture3 - PC

[email protected]

Exemple de programe C++

Pas 5: Testarea algoritmului pe date de intrarediferite şi verificarea rezultatelor.

Exemplul 1:Pentru valorile a=11, b=7, c=10 obţinem

următorul rezultat:7 10 11

Exemplul 2:Pentru valorile a=2, b=17, c=5 obţinem

următorul rezultat:2 5 17

02.12.2016 Programarea calculatoarelor 30

Page 31: Lecture3 - PC

[email protected]

3. Instrucţiunile limbajului C++

3.1. Instrucţiunea vidă3.2. Instrucţiunea compusă3.3. Instrucţiunea expresie3.4. Instrucţiunea if3.5. Instrucţiunea while3.6. Instrucţiunea do while3.7. Instrucţiunea for3.8. Instrucţiunea switch3.9. Instrucţiunea break3.10. Instrucţiunea continue3.11. Instrucţiunea goto3.12. Instrucţiunea return

02.12.2016 Programarea calculatoarelor 31

Page 32: Lecture3 - PC

[email protected]

3.5. Instrucţiunea while

Instrucţiunea while(instrucţiune repetitivă cu test iniţial)

Are următoarea formă:

unde instrucţiune poate fi: instrucţiunea vidă instrucţiunea simplăsau instrucţiunea compusă

02.12.2016 Programarea calculatoarelor 32

while (expresie) instructiune;

Page 33: Lecture3 - PC

[email protected]

3.5. Instrucţiunea while

Instrucţiunea while(instrucţiune repetitivă cu test

iniţial)

Funcţionarea unei astfelde instrucţiuni se bazează peevaluarea expresiei date şiexecutarea repetată ainstrucţiunii cât timp expresiaeste îndeplinită.

02.12.2016 Programarea calculatoarelor 33

Page 34: Lecture3 - PC

[email protected]

3.5. Instrucţiunea while

Exemplu:Prezentăm în

continuare un program în limbajul C/C++, care calculează suma primelor n numere întregi, cu n<=10:

02.12.2016 Programarea calculatoarelor 34

#include<iostream.h>int main(void){

int i, n, s=0;

cout<<"Dati numarul n = ";

cin>>n;i = 1;while( i <= n ){

s = s + i;i++;

}

cout<<"Suma primelor "<<n<<"numere intregi este "<<s;

}

Page 35: Lecture3 - PC

[email protected]

3.5. Instrucţiunea while

La execuţia acestui program se poate obţine următorul rezultat:

Dati numarul n = 5Suma primelor 5 numere intregi este 15

02.12.2016 Programarea calculatoarelor 35

Page 36: Lecture3 - PC

[email protected]

3.5. Instrucţiunea while

Folosind

facilităţile limbajuluiC/C++, se poatescrie aceeaşisecvenţă deprogram într-oformă prescurtată şichiar mai eficientă:

02.12.2016 Programarea calculatoarelor 36

#include<iostream.h>int main(void){

int i=1, n, s=0;cout<<"Dati numarul n = ";cin>>n;while(i<=n) s+=i++;cout<<"Suma primelor

"<<n<<" numere intregi este"<<s;

}

Page 37: Lecture3 - PC

[email protected]

3.5. Instrucţiunea while

Observaţie:Pentru ca un ciclu repetitiv să se execute

încontinuu (la infinit), se poate utiliza o buclăinfinită prin introducerea ca expresie a uneivalori diferite de 0.

while (1) este o buclă infinită care se vaexecuta până când de la tastatură se vaîntrerupe execuţia prin apăsarea tastelorCTRL+C.

02.12.2016 Programarea calculatoarelor 37

Page 38: Lecture3 - PC

[email protected]

Exemple de programe C++

Enunţ:Să se citească un număr natural n. Să se scrie unalgoritm care afişează toţi divizorii numărului dat.

Exemplu: Pentru n = 12, mulţimea divizorilor este formatădin valorile 1, 2, 3, 4, 6, 12.

Pas 1: Stabilim care sunt datele de intrare, împreună cudatele de ieşire.

În cazul problemei date, avem:Date de intrare: n număr naturalDate de ieşire: divizorii numărului n

02.12.2016 Programarea calculatoarelor 38

Page 39: Lecture3 - PC

[email protected]

Exemple de programe C++

Pas 2: Analiza problemeiÎn cadrul problemei pe care o avem de rezolvat,

verificăm condiţia ca un număr să fie divizor al altuinumăr şi anume:

i este divizor al numărului n dacă se împarteexact la el, adică dacă este adevărată expresia n % i =0.

Pentru a găsi toţi divizorii numărului n dat, vomda valori lui i, pornind de la valoarea 1 până lavaloarea n.

Deci vom utiliza o structură repetitivă.02.12.2016 Programarea calculatoarelor 39

Page 40: Lecture3 - PC

Exemple de programe C++

02.12.2016 Programarea calculatoarelor 40

Pas 3:

Scrierea algoritmului în pseudocod:

natural n, iciteşte ni <- 1cât timp i <= n execută

dacă n % i = 0 atunciscrie i

sfârşit dacăi <- i + 1

sfârşit cât timpstop

Page 41: Lecture3 - PC

[email protected]

Exemple de programe C++

Pas 4:Implementarea

algoritmului în limbajul de programare C++:

02.12.2016 Programarea calculatoarelor 41

#include<iostream.h>

int main(void)

{

int n, i;

cin>>n;

i = 1;

while( i <= n )

{

if( n % i == 0 )

cout<<i<<" ";

i = i + 1;

}

}

Page 42: Lecture3 - PC

[email protected]

Exemple de programe C++

Pas 5: Testarea algoritmului pe date de intrare diferiteşi verificarea rezultatelor.

Exemplul 1:Pentru valoarea n=12 obţinem următorul rezultat:

1 2 3 4 6 12Exemplul 2:

Pentru valoarea n=18 obţinem următorul rezultat:1 2 3 6 9 18

02.12.2016 Programarea calculatoarelor 42

Page 43: Lecture3 - PC

[email protected]

Exemple de programe C++

Enunţ:Să se citească un număr natural n. Să se scrie un algoritm careverifică dacă numărul dat este sau nu număr prim. Un număr neste prim dacă are ca divizori doar valorile 1 şi n.

Exemplu:Pentru n = 7, se va afişa mesajul ‘numărul este prim’,iar pentru n = 22, se va afişa mesajul ‘numărul NU este prim’.

Pas 1: Stabilim care sunt datele de intrare, adică cele care vor fiprelucrate cu ajutorul algoritmului, împreună cu datele de ieşire.

În cazul problemei date, avem:Date de intrare: n număr naturalDate de ieşire: număr prim sau nu

02.12.2016 Programarea calculatoarelor 43

Page 44: Lecture3 - PC

[email protected]

Exemple de programe C++

Pas 2: Analiza problemeiVom presupune, la începutul problemei, că numărul

n dat este prim, şi vom specifica acest lucru cu ajutorul unei variabile de tip logic, căreia îi vom da valoarea ‘adevărat’.

Apoi vom evalua, pe rând, toate valorile începând cu valoarea 2 şi până la n/2, ca să determinăm dacă sunt divizori ai numărului n dat.

Dacă găsim un singur divizor printre aceste numere, atunci vom acorda valoarea ‘fals’ variabilei de tip logic.

La sfârşit vom verifica care este valoarea variabilei de tip logic şi vom afişa un mesaj corespunzător.

02.12.2016 Programarea calculatoarelor 44

Page 45: Lecture3 - PC

Exemple de programe C++

02.12.2016 Programarea calculatoarelor 45

Pas 3: Scrierea algoritmului în pseudocod:

natural n, ilogic pciteşte np <- adevărati <- 2cât timp i <= n/2 execută

dacă n % i = 0 atuncip <- fals

sfârşit dacăi <- i + 1

sfârşit cât timpdacă p = adevărat atunci

scrie ‘Numarul este prim’altfel

scrie ‘Numarul NU este prim’sfârşit dacăstop

Page 46: Lecture3 - PC

[email protected]

Exemple de programe C++

Pas 4: Implementarea algoritmului în limbajul de programare C++:

02.12.2016 Programarea calculatoarelor 46

#include<iostream.h>

int main(void)

{

int n, i, p;

cin>>n;

p = 1;

i = 2;

while( i <= n/2 )

{

if( n % i == 0 ) p = 0;

i = i + 1;

}

if( p == 1 ) cout<<"Numarul este PRIM";

else cout<<"Numarul NU este PRIM";

}

Page 47: Lecture3 - PC

[email protected]

Exemple de programe C++

Pas 5: Testarea algoritmului pe date de intrare diferiteşi verificarea rezultatelor.

Exemplul 1:Pentru valoarea n=12 obţinem următorul rezultat:

Numarul NU este PRIMExemplul 2:

Pentru valoarea n=7 obţinem următorul rezultat:Numarul este PRIM

02.12.2016 Programarea calculatoarelor 47

Page 48: Lecture3 - PC

[email protected]

Probleme propuse spre rezolvare:

1) Pentru n cunoscut, să se calculeze fn,termenul de rangul n din şirul lui Fibonacci,ştiind că:

f0 = 1; f1 = 1; fn = fn-1 + fn-2 pentru oricevaloare n >= 2.Exemplu:

02.12.2016 Programarea calculatoarelor 48

Date de intrare: 8Date de ieşire: 21 (1, 1, 2, 3, 5, 8, 13, 21)

Page 49: Lecture3 - PC

[email protected]

Probleme propuse spre rezolvare:

2) Se dau trei numere. Determinaţi şi afişaţicmmdc al lor (cmmdc = cel mai mare divizorcomun).

Exemplu:

02.12.2016 Programarea calculatoarelor 49

Date de intrare: 12 32 38 Date de ieşire: 2

Page 50: Lecture3 - PC

[email protected]

Probleme propuse spre rezolvare:

3) Se dă numărul n, să se afişeze toate numerelemai mici ca el, prime cu el.Doua numere sunt prime intre ele daca cel maimare divizor comun al lor este 1.

Exemplu:

02.12.2016 Programarea calculatoarelor 50

Date de intrare: 10Date de ieşire: 1 3 7 9

Page 51: Lecture3 - PC

[email protected]

3.Instrucţiunile limbajului C++

3.1. Instrucţiunea vidă3.2. Instrucţiunea compusă3.3. Instrucţiunea expresie3.4. Instrucţiunea if3.5. Instrucţiunea while3.6. Instrucţiunea do while3.7. Instrucţiunea for3.8. Instrucţiunea switch3.9. Instrucţiunea break3.10. Instrucţiunea continue3.11. Instrucţiunea goto3.12. Instrucţiunea return

02.12.2016 Programarea calculatoarelor 51

Page 52: Lecture3 - PC

[email protected]

3.6. Instrucţiunea do while

02.12.2016 Programarea calculatoarelor 52

doinstructiune

while (expresie);

Forma instructiunii este:

unde instrucţiune poate fi: instrucţiunea vidă instrucţiunea simplă instrucţiunea compusă

Page 53: Lecture3 - PC

[email protected]

3.6. Instrucţiunea do while

02.12.2016 Programarea calculatoarelor 53

Funcţionarea unei astfel de instrucţiuni sebazează pe executarea repetată a instrucţiunii câttimp condiţia este îndeplinită.

Page 54: Lecture3 - PC

[email protected]

3.6. Instrucţiunea do while

Echivalenţa cu instrucţiunea while:

Exemplu de utilizare a instructiunii do while:Să se scrie un program care tipăreşte

numerele naturale de la 0 la 9 şi suma lor peparcurs.

02.12.2016 Programarea calculatoarelor 54

instructiune; while(expresie)

instructiune;

Page 55: Lecture3 - PC

[email protected]

3.6. Instrucţiunea do while

#include<iostream.h>int main(void){

int numar = 0, total = 0;do{

total = total + numar;cout<<"numar = "<<numar++<<"

total = "<<total<<endl;}while(numar<10);

}

02.12.2016 Programarea calculatoarelor 55

La execuţia acestuiprogram se obţine următorulrezultat:

numar=0 total=0numar=1 total=1numar=2 total=3numar=3 total=6numar=4 total=10numar=5 total=15numar=6 total=21numar=7 total=28numar=8 total=36numar=9 total=45

Page 56: Lecture3 - PC

[email protected]

3. Instrucţiunile limbajului C++

3.1. Instrucţiunea vidă3.2. Instrucţiunea compusă3.3. Instrucţiunea expresie3.4. Instrucţiunea if3.5. Instrucţiunea while3.6. Instrucţiunea do while3.7. Instrucţiunea for3.8. Instrucţiunea switch3.9. Instrucţiunea break3.10. Instrucţiunea continue3.11. Instrucţiunea goto3.12. Instrucţiunea return

02.12.2016 Programarea calculatoarelor 56

Page 57: Lecture3 - PC

[email protected]

3.7. Instrucţiunea for

Este una dintre cele mai “puternice” instrucţiuni alelimbajului C/C++, datorită formei sale.

Forma instrucțiunii este:

expresie1 – reprezintă secvenţa de iniţializarea a cicluluiexpresie2 – reprezintă condiţia de terminare a cicluluiexpresie3 – reprezintă secvenţa de reiniţializare a cicluluiinstrucţiune - corpul ciclului

02.12.2016 Programarea calculatoarelor 57

for(expresie1; expresie2; expresie3)instructiune;

Page 58: Lecture3 - PC

[email protected]

3.7. Instrucţiunea for

02.12.2016 Programarea calculatoarelor 58

for(expresie1; expresie2; expresie3)instructiune;

Funcţionarea unei astfel deinstrucţiuni se bazează:pe executarea repetată a

instrucţiunii,Verificarea expresiei2Executarea expresiei3Cat timp expresia2 esteîndeplinită.

Page 59: Lecture3 - PC

[email protected]

3.7. Instrucţiunea for

Se stie că instrucţiunea for este de fapt ovariantă particulară a instrucţiunii while, dreptpentru care se poate scrie echivalent astfel:

02.12.2016 Programarea calculatoarelor 59

expresie1; while(expresie2){

instructiune;expresie3;

}

Page 60: Lecture3 - PC

[email protected]

3.7. Instrucţiunea for

Invers, dacă avem:

02.12.2016 Programarea calculatoarelor 60

while (expresie) instructiune;

for( ;expresie; ) instructiune;

Page 61: Lecture3 - PC

[email protected]

3.7. Instrucţiunea for

Funcţionarea instrucţiunii for are loc astfel:Se porneşte ciclul repetitiv prin iniţializarea sa,

adică prin execuţia expresia1iar apoi se evaluează expresia2 şi dacă este

adevărată se execută corpul ciclului, adicăinstrucţiune

după aceea se execută expresia3, şi se reiaevaluarea expresiei2, ş.a.m.d.

02.12.2016 Programarea calculatoarelor 61

Page 62: Lecture3 - PC

[email protected]

3.7. Instrucţiunea for

Observaţie:expresia1, expresia2, expresia3 pot să lipsească,dar este obligatorie prezenţa semnelor: “;”.

02.12.2016 Programarea calculatoarelor 62

for(;;) while(1) – buclă infinită

Page 63: Lecture3 - PC

[email protected]

3.7. Instrucţiunea for

Exemplu: Acelaşiprogram de adunare a primelorn numere întregi, în varianta cuinstrucţiunea for, va avea o dimensiune mai mică:

02.12.2016 Programarea calculatoarelor 63

#include<iostream.h>int main(void){

int i, n, s = 0;cout<<"Dati numarul n =";cin>>n;for(i=1; i<=n; i++)

s = s + i;cout<<"Suma primelor"<<n<<" numere intregi este "<<s;

}

Page 64: Lecture3 - PC

[email protected]

Exemplu de program C++ - instructiunea for

Enunţ:Fie un număr natural n. Să se scrie un

algoritm care să calculeze factorialul număruluidat.(factorial = produsul numerelor naturale mai micisau egale decat n)

Exemplu: Pentru n = 5, se va afişa valoarea p = 1*2*3*4*5=120.

02.12.2016 Programarea calculatoarelor 64

Page 65: Lecture3 - PC

[email protected]

Exemplu de program C++ - instructiunea for

Pas 1: Stabilim care sunt datele de intrare, adică cele care vor fi prelucrate cu ajutorul algoritmului, împreună cu datele de ieşire.

În cazul problemei date, avem:

Date de intrare: n = număr natural

Date de ieşire: factorialul numărului dat = p

02.12.2016 Programarea calculatoarelor 65

Page 66: Lecture3 - PC

[email protected]

Exemplu de program C++ - instructiunea for

Pas 2: Analiza problemei

La începutul problemei, vom iniţializavaloarea produsului numerelor cu 1.

Apoi, într-un ciclu repetitiv vom calculaprodusul numerelor naturale aflate intre 1 si n.

02.12.2016 Programarea calculatoarelor 66

Page 67: Lecture3 - PC

Exemplu de program C++ - instructiunea for

02.12.2016 Programarea calculatoarelor 67

Pas 3: Scriereaalgoritmului în pseudocod:

natural n, p, iciteşte np <- 1pentru i=1,n execută

p <- p * isfârşit pentruscrie pstop

Page 68: Lecture3 - PC

[email protected]

Exemplu de program C++ - instructiunea for

Pas 4: Implementareaalgoritmului în limbajul de programare C++:

02.12.2016 Programarea calculatoarelor 68

#include<iostream.h>

int main(void)

{

int n, p, i;

cin>>n;

p = 1;

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

p = p * i;

cout<<p;

}

Page 69: Lecture3 - PC

[email protected]

Exemplu de program C++ - instructiunea for

Pas 5: Testarea algoritmului pe date de intrarediferite şi verificarea rezultatelor.

Exemplul 1: Pentru valoarea n=5 obţinem următorul rezultat:

120Exemplul 2:

Pentru valoarea n=7 obţinem următorul rezultat:5040

02.12.2016 Programarea calculatoarelor 69

Page 70: Lecture3 - PC

[email protected]

Exemplu de program C++ - instructiunea do while

Enunţ:Fie un număr natural n de cinci cifre. Să se

scrie un algoritm care să calculeze suma cifrelor numărului dat.

Exemplu:

Pentru n = 2178, se va afişa valoarea s = 2+1+7+8 = 18

02.12.2016 Programarea calculatoarelor 70

Page 71: Lecture3 - PC

[email protected]

Exemplu de program C++ - instructiunea do while

Pas 1: Stabilim care sunt datele de intrare, adică cele care vor fi prelucrate cu ajutorul algoritmului, împreună cu datele de ieşire.

În cazul problemei date, avem:

Date de intrare: n număr natural

Date de ieşire: suma cifrelor = s.

02.12.2016 Programarea calculatoarelor 71

Page 72: Lecture3 - PC

[email protected]

Exemplu de program C++ - instructiunea do while

Pas 2: Analiza problemeiLa începutul problemei, vom iniţializa

valoarea sumei cifrelor numărului n dat cu 0.Apoi, într-un ciclu repetitiv vom calcula suma

cifrelor numărului, ştiind că:o cifră a unui număr scris în baza 10 este dată de

restul împărțirii la 10 - n%10,iar numărul fără ultima cifră este dat de câtul

împărțirii la 10 - n/10.

02.12.2016 Programarea calculatoarelor 72

Page 73: Lecture3 - PC

Exemplu de program C++ - instructiunea do while

02.12.2016 Programarea calculatoarelor 73

Pas 3: Scriereaalgoritmului în pseudocod:

natural n, sciteşte ns <- 0repetă

s <- s + n % 10n <- n / 10

până când n = 0scrie sstop

Page 74: Lecture3 - PC

[email protected]

Exemplu de program C++ - instructiunea do while

Pas 4: Implementareaalgoritmului în limbajul de programare C++:

02.12.2016 Programarea calculatoarelor 74

#include<iostream.h>

int main(void)

{

int n, s;

cin>>n;

s = 0;

do

{

s = s + n % 10;

n = n / 10;

}while( n != 0 );

cout<<s;

}

Page 75: Lecture3 - PC

[email protected]

Exemplu de program C++ - instructiunea do while

Pas 5: Testarea algoritmului pe date de intrarediferite şi verificarea rezultatelor.

Exemplul 1: Pentru valoarea n=123 obţinem următorul rezultat:

6Exemplul 2:Pentru valoarea n=5378 obţinem următorul rezultat:

23

02.12.2016 Programarea calculatoarelor 75

Page 76: Lecture3 - PC

[email protected]

Exemplu de program C++ - instructiunea do while

Enunţ:Să se scrie un program care generează toate

numerele perfecte până la o valoare dată, n.Un număr perfect este egal cu suma divizorilor

lui, inclusiv 1 (exemplu: 6=1+2+3).

Exemplu:Pentru n = 1000, se vor afişa valorile 6, 28, 496

02.12.2016 Programarea calculatoarelor 76

Page 77: Lecture3 - PC

[email protected]

Exemplu de program C++ - instructiunea do while

Pas 1: Stabilim care sunt datele de intrare, adică celecare vor fi prelucrate cu ajutorul algoritmului,împreună cu datele de ieşire.

În cazul problemei date, avem:

Date de intrare: n număr natural

Date de ieşire: numerele perfecte mai mici sau egaledecât n.

02.12.2016 Programarea calculatoarelor 77

Page 78: Lecture3 - PC

[email protected]

Exemplu de program C++ - instructiunea do while

Pas 2: Analiza problemeiLa începutul problemei, vom lua toate

valorile de la 1 la n, şi pentru fiecare valoare i ovom verifica dacă este sau nu număr perfect.

Numerele perfecte obţinute le vom afişa.

02.12.2016 Programarea calculatoarelor 78

Page 79: Lecture3 - PC

Exemplu de program C++ - instructiunea do while

02.12.2016 Programarea calculatoarelor 79

Pas 3: Scriereaalgoritmului în pseudocod:

natural n, i, j, sciteşte ni <- 1repetă

s <- 0j <- 1repetă

dacă i % j = 0 atuncis <- s + j

sfârşit dacăj <- j + 1

până când j > i/2dacă s = i atunci

scrie isfârşit dacăi <- i + 1

până când i > nstop

Page 80: Lecture3 - PC

[email protected]

Exemplu de program C++ - instructiunea do while

Pas 4: Implementareaalgoritmului în limbajul de programare C++:

02.12.2016 Programarea calculatoarelor 80

#include<iostream.h>

int main(void)

{

int n, i, j, s;

cin>>n;

i = 1;

do{

s = 0;

j = 1;

do{

if( i % j == 0 )

s = s + j;

j = j + 1;

}while(j <= i/2);

if( s == i )

cout<<i<<" ";

i = i + 1;

}while(i <= n);

}

Page 81: Lecture3 - PC

[email protected]

Exemplu de program C++ - instructiunea do while

Pas 5: Testarea algoritmului pe date de intrarediferite şi verificarea rezultatelor.

Exemplul 1: Pentru valoarea n=100 obţinem următoarelerezultate:

6 28Exemplul 2:

Pentru valoarea n=10000 obţinem următoarelerezultate:

6 28 496 812802.12.2016 Programarea calculatoarelor 81

Page 82: Lecture3 - PC

[email protected]

Exemplu de program C++ - instructiunea for

Enunţ:

Să se scrie un program care generează toate

numerele prime până la o valoare dată, n.

Un număr x este prim dacă are ca divizori doar

valorile 1 şi x.

Exemplu:

Pentru n = 22, se vor afişa valorile:

2,3,5,7,11,13,17,19

02.12.2016 Programarea calculatoarelor 82

Page 83: Lecture3 - PC

[email protected]

Exemplu de program C++ - instructiunea for

Pas 1: Stabilim care sunt datele de intrare, adică cele

care vor fi prelucrate cu ajutorul algoritmului,

împreună cu datele de ieşire.

În cazul problemei date, avem:

Date de intrare: n număr natural

Date de ieşire: numerele prime mai mic decat n02.12.2016 Programarea calculatoarelor 83

Page 84: Lecture3 - PC

[email protected]

Exemplu de program C++ - instructiunea for

Pas 2: Analiza problemeiIntr-un ciclu repetitiv de la 1 la n vom verifica toate valorile dacarespecta proprietatea de numar prim.

Vom presupune, la începutul problemei, că numărul i dat este prim, şi vom specifica acest lucru cu ajutorul unei variabile de tip întreg, căreia îi vom da valoarea 1.

• Apoi vom evalua, pe rând, toate valorile începând cu valoarea 2 şi până la i/2, ca să determinăm dacă sunt divizori ai numărului idat.

• Dacă găsim un singur divizor printre aceste numere, atunci vom acorda valoarea 0 variabilei de tip întreg de la începutul verificariiconditiei de numar prim.

• La sfârşit vom verifica care este valoarea variabilei de tip întreg şi vom afişa numarul i.

02.12.2016 Programarea calculatoarelor 84

Page 85: Lecture3 - PC

Exemplu de program C++ - instructiunea for

02.12.2016 Programarea calculatoarelor 85

Pas 3: Scriereaalgoritmului în pseudocod:

natural n,i,jlogic pciteşte npentru i = 2, n execută

p <- adevăratpentru j = 2, i/2 execută

dacă i % j = 0 atuncip <- fals

sfârşit dacăsfârşit pentrudacă p = adevărat atunci

scrie i,‘ ’sfârşit dacă

sfârşit pentrustop

Page 86: Lecture3 - PC

[email protected]

Exemplu de program C++ - instructiunea for

Pas 4: Implementareaalgoritmului în limbajul de programare C++:

02.12.2016 Programarea calculatoarelor 86

#include<iostream.h>

int main(void)

{

int n, prim, i, j;

cin>>n;

for(i = 2; i<=n; i++)

{

prim = 1;

for(j = 2; j<=i/2; j++)

if(i % j == 0 ) prim = 0;

if( prim == 1)

cout<<i<<“ ”;

}

}

Page 87: Lecture3 - PC

[email protected]

Exemplu de program C++ - instructiunea for

Pas 5: Testarea algoritmului pe date de intrarediferite şi verificarea rezultatelor.

Exemplul 1: Pentru valoarea n=53 obţinem rezultatele:

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 Exemplul 2:Pentru valoarea n=12 obţinem următorulrezultat:

2 3 5 7 11

02.12.2016 Programarea calculatoarelor 87

Page 88: Lecture3 - PC

[email protected]

3. Instrucţiunile limbajului C++

3.1. Instrucţiunea vidă3.2. Instrucţiunea compusă3.3. Instrucţiunea expresie3.4. Instrucţiunea if3.5. Instrucţiunea while3.6. Instrucţiunea do while3.7. Instrucţiunea for3.8. Instrucţiunea switch3.9. Instrucţiunea break3.10. Instrucţiunea continue3.11. Instrucţiunea goto3.12. Instrucţiunea return

02.12.2016 Programarea calculatoarelor 88

Page 89: Lecture3 - PC

[email protected]

3.8. Instrucţiunea switch

Instrucţiunea switchfuncţionează astfel:

Se evaluează expresia şi înfuncţie de rezultat se comparăcu c1, c2, . . ., cn şi când expresiaeste egală cu c1 atunci se execută şirul de instrucţiunicorespunzător, şi cuinstrucţiunea break se sare la sfârşitul instrucţiunii switch, la fel se întâmplă şi dacă expresiaeste egală cu c2 ,sau cu c3 , saucu cn.

02.12.2016 Programarea calculatoarelor 89

switch (expresie){

case c1 : sir_instructiuni_1;

break;case c2 :

sir_instructiuni_2;break;

. . . . . . . .case cn :

sir_instructiuni_ n;break;

default: sir_instructiuni;}

Page 90: Lecture3 - PC

[email protected]

3.8. Instrucţiunea switchInstrucţiunea switch este o instrucţiune de tip

decizie multiplă astfel încât se poate scrie echivalentfolosind instrucţiunea de decizie simplă if:

02.12.2016 Programarea calculatoarelor 90

if (expresie==c1)sir_instructiuni_1;

else if (expresie==c2)

sir_instructiuni_2;. . . . . . . .

else if (expresie==cn)

sir_instructiuni_ n;else sir_instructiuni;

Page 91: Lecture3 - PC

[email protected]

3.8. Instrucţiunea switch

Prezentăm încontinuare un program care numără vocalele şiconsoanele din alfabet.

De observat căunele din instrucţiunilecase se execută încascadă, pentru calcululvocalelor, iar pentruconsoane se foloseştecazul default:

02.12.2016 Programarea calculatoarelor 91

#include<iostream.h>

int main(void)

{

char litera;

int nr_vocale = 0, nr_consoane = 0;

for (litera = ‘A’; litera <= ‘Z’; litera++)

switch (litera) {

case ‘A’:

case ‘E’:

case ‘I’:

case ‘O’:

case ‘U’: nr_vocale++;

break;

default: nr_consoane++;

}

cout<<"\nNumarul de vocale este "<<nr_vocale;

cout<<"\nNumarul de consoane este "<< nr_consoane;

}

Page 92: Lecture3 - PC

[email protected]

3. Instrucţiunile limbajului C++

3.1. Instrucţiunea vidă3.2. Instrucţiunea compusă3.3. Instrucţiunea expresie3.4. Instrucţiunea if3.5. Instrucţiunea while3.6. Instrucţiunea do while3.7. Instrucţiunea for3.8. Instrucţiunea switch3.9. Instrucţiunea break3.10. Instrucţiunea continue3.11. Instrucţiunea goto3.12. Instrucţiunea return

02.12.2016 Programarea calculatoarelor 92

Page 93: Lecture3 - PC

[email protected]

3.9. Instrucţiunea break

Instrucţiunea întrerupe execuţia instrucţiunilorwhile, do while, for şi switch, determinând astfel ieşireaforţată dintr-un ciclu repetitv.

Exemplu:for(;;){

. . . . .break;

}02.12.2016 Programarea calculatoarelor 93

break;

Page 94: Lecture3 - PC

[email protected]

3.9. Instrucţiunea break

Exemplu:

Prezentăm în

continuare, un program

care folosind

instrucţiunea break,

afisează numerele întregi

aflate între 1 şi 100 şi

apoi de la 100 la 1.

De fiecare dată când

număr ajunge la valoarea

50, instrucţiunea break

face ca execuţia ciclului

să se oprească:

02.12.2016 Programarea calculatoarelor 94

#include<iostream.h>

int main(void)

{

int numar;

for(numar = 1; numar<=100; numar++)

{

if(numar == 50) break;

cout<<" "<<numar;

}

cout<<"\nCel de-al doilea ciclurepetitiv";

for(numar = 100; numar>=1; numar--)

{

if(numar == 50) break;

cout<<" "<<numar;

}

}

Page 95: Lecture3 - PC

[email protected]

3. Instrucţiunile limbajului C++

3.1. Instrucţiunea vidă3.2. Instrucţiunea compusă3.3. Instrucţiunea expresie3.4. Instrucţiunea if3.5. Instrucţiunea while3.6. Instrucţiunea do while3.7. Instrucţiunea for3.8. Instrucţiunea switch3.9. Instrucţiunea break3.10. Instrucţiunea continue3.11. Instrucţiunea goto3.12. Instrucţiunea return

02.12.2016 Programarea calculatoarelor 95

Page 96: Lecture3 - PC

[email protected]

3.10. Instrucţiunea continue

Se referă la instrucţiunile de ciclare: for,while şi do while.

La întâlnirea ei ciclurile while şi do while secontinuă cu reevaluarea condiţiei de ciclare iar înciclul for se continuă cu secvenţa de reiniţializarea ciclului şi apoi cu reevaluarea ciclului.

02.12.2016 Programarea calculatoarelor 96

Page 97: Lecture3 - PC

[email protected]

3.10. Instrucţiunea continue

Exemplu: Prezentăm încontinuare, un program care folosindinstrucţiuneacontinue într-un ciclu for şi într-un ciclu while, afişeazănumerele pare şiimpare aflate între1 şi 100:

02.12.2016 Programarea calculatoarelor 97

#include<iostream.h>

int main(void)

{

int numar;

cout<<"Numerele pare dintre 1 si 100 sunt: ";

for (numar = 1; numar <= 100; numar++)

{

if(numar % 2 != 0) continue;

cout<<" "<<numar;

}

cout<<"\nNumerele impare dintre 1 si 100 sunt: ";

numar=0;

while(numar <= 100)

{

numar++;

if(numar % 2==0) continue;

cout<<" "<<numar;

}

}

Page 98: Lecture3 - PC

[email protected]

3. Instrucţiunile limbajului C++

3.1. Instrucţiunea vidă3.2. Instrucţiunea compusă3.3. Instrucţiunea expresie3.4. Instrucţiunea if3.5. Instrucţiunea while3.6. Instrucţiunea do while3.7. Instrucţiunea for3.8. Instrucţiunea switch3.9. Instrucţiunea break3.10. Instrucţiunea continue3.11. Instrucţiunea goto3.12. Instrucţiunea return

02.12.2016 Programarea calculatoarelor 98

Page 99: Lecture3 - PC

[email protected]

3.11. Instrucţiunea goto

Este instrucţiunea pentru salt necondiţionat.unde eticheta este un nume care prefixează o instrucţiune.Exemplu: Prezentăm în continuare, un program care folosind

instrucţiunea goto, afişează numerele întregi aflate între 1 şi100:

int main(void){

int numar=1;eticheta: cout<<" ", numar++;if (numar <= 100) goto eticheta;

}02.12.2016 Programarea calculatoarelor 99

goto eticheta;

Page 100: Lecture3 - PC

[email protected]

3. Instrucţiunile limbajului C++

3.1. Instrucţiunea vidă3.2. Instrucţiunea compusă3.3. Instrucţiunea expresie3.4. Instrucţiunea if3.5. Instrucţiunea while3.6. Instrucţiunea do while3.7. Instrucţiunea for3.8. Instrucţiunea switch3.9. Instrucţiunea break3.10. Instrucţiunea continue3.11. Instrucţiunea goto3.12. Instrucţiunea return

02.12.2016 Programarea calculatoarelor 100

Page 101: Lecture3 - PC

[email protected]

3.12. Instrucţiunea return

Instrucţiunea return

Se foloseşte în funcţii atunci când:• se întoarce în funcţia apelantă o valoare (formele

2 şi 3)• sau într-o funcţie care nu întoarce nici o valoare

(funcţioneaza ca o procedură) – forma 1.

02.12.2016 Programarea calculatoarelor 101

1. return;2. return expresie;3. return (expresie);

Page 102: Lecture3 - PC

[email protected]

Probleme propuse spre rezolvare:

1) Să se afişeze toate numerele palindrom maimari decat 10 şi mai mici decat un număr dat, n.

Exemplu:

02.12.2016 Programarea calculatoarelor 102

Date de intrare: n=110Date de ieşire:11 22 33 44 55 66 77 88 99 101

Page 103: Lecture3 - PC

[email protected]

Probleme propuse spre rezolvare:

2) Să se determine toate tripletele de numere a, b,c cu proprietăţile: 1<a<b<c<100; a+b+c se dividecu 10.

Exemplu:

02.12.2016 Programarea calculatoarelor 103

Date de intrare: -Date de ieşire: 95 96 99 si 95 97 99 suntultimele doua triplete

Page 104: Lecture3 - PC

[email protected]

Probleme propuse spre rezolvare:

3) Să se afişeze toate numerele de două cifre careadunate cu răsturnatul lor dau 55.

Exemplu:

02.12.2016 Programarea calculatoarelor 104

Date de intrare: -Date de ieşire: 14 41; 23 32; 32 23; 41 14

Page 105: Lecture3 - PC

[email protected]

Pentru alte informații teoretice și aplicative legatede acest capitol se recomandă următoarele referințebibliografice:1. Adrian Runceanu, Mihaela Runceanu, Noțiuni deprogramare în limbajul C++, Editura AcademicaBrâncuși, Târgu-Jiu, 2012 (www.utgjiu.ro/editura)2. Adrian Runceanu, Programarea şi utilizareacalculatoarelor, Editura Academica Brâncuși, Târgu-Jiu,2003 (www.utgjiu.ro/editura)3. Octavian Dogaru, C++ - teorie şi practică, volumul I,Editura Mirton, Timişoara, 2004

(www.utgjiu.ro/editura)

02.12.2016 Programarea calculatoarelor 105

Page 106: Lecture3 - PC

[email protected]

Recapitulare pseudocod – limbaj C++

Pseudocod C++

Tipuri de date simple:

naturalintregreallogic

unsignedint, longfloat, doublebool

CITIRE date citeste v1,v2 cin>>v1>>v2 ;

AFISARE date scrie expresie1, expresie2 cout<<expresie1<<expresie2

ATRIBUIRE vexpresiev=expresie;v1=v2=...=v3=expresie;

STRUCTURADECIZIONALA

daca conditie atunci instructiune 1altfel instructiune 2

if (conditie) instructiune 1;else instructiune 2;

STRUCTURAexecuta... cat timp

executainstructiune

cat timp conditie

do instructiune;

while (conditie);

PENTRUpentru vvali, valf, pas executainstructiune

for(v=vali ; v<=valf ; v=v+pas)instructiune ;

INSTRUCTIUNE COMPUSA

| instructiune 1;| instructiune 2;| .......................| instructiune n;

{instructiune 1;instructiune 2;......................instructiune n;

}

02.12.2016 Programarea calculatoarelor 106

Page 107: Lecture3 - PC

[email protected]

Recapitulare elemente de limbaj C++

02.12.2016 Programarea calculatoarelor 107

Biblioteci #include <iostream.h>int main(){

................................instructiuni

}

Antet functie main{ declaratii de: tipuri, constante,

variabileCitire date intrarePrelucrare dateAfisare

}

Structura unui program C++

Page 108: Lecture3 - PC

[email protected]

Pentru alte informații teoretice și aplicative legatede acest capitol se recomandă următoarele referințebibliografice:1. Adrian Runceanu, Mihaela Runceanu, Noțiuni deprogramare în limbajul C++, Editura AcademicaBrâncuși, Târgu-Jiu, 2012 (www.utgjiu.ro/editura)2. Adrian Runceanu, Programarea şi utilizareacalculatoarelor, Editura Academica Brâncuși, Târgu-Jiu,2003 (www.utgjiu.ro/editura)3. Octavian Dogaru, C++ - teorie şi practică, volumul I,Editura Mirton, Timişoara, 2004 (www.utgjiu.ro/editura)

02.12.2016 Programarea calculatoarelor 108

Page 109: Lecture3 - PC

[email protected]

“First, solve the problem. Then, write the code.”

- John Johnson

02.12.2016 Programarea Calculatoarelor - curs 109