Afișarea informației alfanumerice și citirea datelor de la tastatură în Java
Descrierea specificatorilor de format utilizați pentru a afișa informația în formatul dorit în Java, importarea clasei Scanner pentru citirea datelor de la tastatură și explicarea metodelor de citire din clasa Scanner.
Afișarea informației alfanumerice și citirea datelor de la tastatură în Java
Descrierea specificatorilor de format utilizați pentru a afișa informația în formatul dorit în Java, importarea clasei Scanner pentru citirea datelor de la tastatură și explicarea metodelor de citire din clasa Scanner.
3. copyright@www.adrian.runceanu.ro
3. Instrucţiunile limbajului C++
3.1. Instrucţiunea vidă
3.2. Instrucţiunea compusă
3.3. Instrucţiunea expresie
3.4. Instrucţiunea if
3.5. Instrucţiunea while
3.6. Instrucţiunea do while
3.7. Instrucţiunea for
3.8. Instrucţiunea switch
3.9. Instrucţiunea break
3.10. Instrucţiunea continue
3.11. Instrucţiunea goto
3.12. Instrucţiunea return
02.12.2016 Programarea calculatoarelor 3
4. copyright@www.adrian.runceanu.ro
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
;
{ . . . . }
5. copyright@www.adrian.runceanu.ro
3. Instrucţiunile limbajului C++
3.1. Instrucţiunea vidă
3.2. Instrucţiunea compusă
3.3. Instrucţiunea expresie
3.4. Instrucţiunea if
3.5. Instrucţiunea while
3.6. Instrucţiunea do while
3.7. Instrucţiunea for
3.8. Instrucţiunea switch
3.9. Instrucţiunea break
3.10. Instrucţiunea continue
3.11. Instrucţiunea goto
3.12. Instrucţiunea return
02.12.2016 Programarea calculatoarelor 5
6. copyright@www.adrian.runceanu.ro
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
7. copyright@www.adrian.runceanu.ro
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
8. copyright@www.adrian.runceanu.ro
3. Instrucţiunile limbajului C++
3.2. Instrucţiunea vidă
3.2. Instrucţiunea compusă
3.3. Instrucţiunea expresie
3.4. Instrucţiunea if
3.5. Instrucţiunea while
3.6. Instrucţiunea do while
3.7. Instrucţiunea for
3.8. Instrucţiunea switch
3.9. Instrucţiunea break
3.10. Instrucţiunea continue
3.11. Instrucţiunea goto
3.12. Instrucţiunea return
02.12.2016 Programarea calculatoarelor 8
10. copyright@www.adrian.runceanu.ro
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;
11. copyright@www.adrian.runceanu.ro
3.3. Instrucţiunea expresie
b) instrucţiunea de apel de funcţie
unde pa1, pa2, . . ., pan sunt parametrii actuali ai
funcţiei (adică valorile cu care se va lucra în
funcţ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);
16. copyright@www.adrian.runceanu.ro
Exemple de programe C++
Enunţ:
Să se calculeze perimetrul şi aria unui triunghi
oarecare dacă se cunosc laturile triunghiului.
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: 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
17. Exemple de programe C++
Pas 2: Analiza problemei
Stabilim condiţiile pe care trebuie să le
îndeplinească datele de intrare pentru a fi
prelucrate în cadrul algoritmului.
În cadrul problemei pe care o avem de rezolvat,
cunoaştem formula lui Heron pentru calculul ariei
unui triunghi dacă se cunosc laturile sale:
unde p reprezintă semiperimetrul triunghiului.
))()(( cpbpappS
02.12.2016 Programarea calculatoarelor 17
18. Exemple de programe C++
Pas 3: Scrierea algoritmului în pseudocod:
02.12.2016 Programarea calculatoarelor 18
real a, b, c, p, S
citeşte a, b, c
p <- a + b + c
scrie ‘Perimetrul triunghiului este ‘, p
p <- p / 2
scrie ‘Aria triunghiului este ’, S
stop
c)(pb)(pa)(ppS
19. copyright@www.adrian.runceanu.ro
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;
}
20. copyright@www.adrian.runceanu.ro
Exemple de programe C++
Pas 5: Testarea algoritmului pe date de intrare diferite şi
verificarea rezultatelor.
Exemplul 1:
Pentru valorile a=2, b=3, c=4, obţinem următoarele
rezultate:
Perimetrul este = 9
Aria este = 1.369306
Exemplul 2:
Pentru valorile a=12, b=4, c=10, obţinem
următoarele rezultate:
Perimetrul este = 26
Aria este = 5.196152
02.12.2016 Programarea calculatoarelor 20
21. 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 real
Date 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
22. copyright@www.adrian.runceanu.ro
Exemple de programe C++
Pas 2: Analiza problemei
Stabilim condiţiile pe care trebuie să le
îndeplinească datele de intrare pentru a fi
prelucrate î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+20
2) Daca x > -7 si x <= 0, atunci funcţia are valoarea:
x+30
3) Daca x > 0, atunci funcţia are valoarea: sqrt(x)+2
02.12.2016 Programarea calculatoarelor 22
23. Exemple de programe C++
Pas 3:
Scrierea
algoritmului în
pseudocod:
02.12.2016 Programarea calculatoarelor 23
real x, f
citeşte x
dacă x <= -7 atunci
f <- -6 * x + 20
altfel
dacă x > -7 şi x <= 0 atunci
f <- x + 30
altfel
f <- sqrt(x) + 2
sfârşit dacă
sfarşit dacă
scrie f
stop
24. copyright@www.adrian.runceanu.ro
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;
else
f = sqrt(x) + 2;
cout<<"f = "<<f;
}
25. copyright@www.adrian.runceanu.ro
Exemple de programe C++
Pas 5: Testarea algoritmului pe date de intrare
diferite şi verificarea rezultatelor.
Exemplul 1:
Pentru valoarea x=2 obţinem următorul rezultat:
f= 3.414214
Exemplul 2:
Pentru valoarea x=-24 obţinem următorul
rezultat:
f= 164
02.12.2016 Programarea calculatoarelor 25
26. 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, atunci
obţinem a = 2, b = 9, c = 12
Pas 1:
Date de intrare: a, b, c numere întregi
Date de iesire: a, b, c în ordine crescătoare
02.12.2016 Programarea calculatoarelor 26
27. copyright@www.adrian.runceanu.ro
Exemple de programe C++
Pas 2: Analiza problemei
1) Comparăm primele două numere a şi b, dacă a este
mai mare decât b atunci vom interschimba cele
două valori.
2) Comparăm următoarele două numere b şi c, dacă b
este mai mare decât c atunci vom interschimba cele
două valori.
3) Comparăm din nou cele două numere a şi b, dacă a
este mai mare decât b atunci vom interschimba cele
două valori.
02.12.2016 Programarea calculatoarelor 27
28. Exemple de programe C++
Pas 3:
Scrierea
algoritmului în
pseudocod:
02.12.2016 Programarea calculatoarelor 28
întreg a, b, c, aux
citeşte a, b, c
dacă a > b atunci
aux <- a
a <- b
b <- aux
sfârşit dacă
dacă b > c atunci
aux <- b
b <- c
c <- aux
sfârşit dacă
dacă a > b atunci
aux <- a
a <- b
b <- aux
sfârşit dacă
scrie a, b, c
stop
29. copyright@www.adrian.runceanu.ro
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;
}
30. copyright@www.adrian.runceanu.ro
Exemple de programe C++
Pas 5: Testarea algoritmului pe date de intrare
diferite ş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
31. copyright@www.adrian.runceanu.ro
3. Instrucţiunile limbajului C++
3.1. Instrucţiunea vidă
3.2. Instrucţiunea compusă
3.3. Instrucţiunea expresie
3.4. Instrucţiunea if
3.5. Instrucţiunea while
3.6. Instrucţiunea do while
3.7. Instrucţiunea for
3.8. Instrucţiunea switch
3.9. Instrucţiunea break
3.10. Instrucţiunea continue
3.11. Instrucţiunea goto
3.12. Instrucţiunea return
02.12.2016 Programarea calculatoarelor 31
32. copyright@www.adrian.runceanu.ro
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;
33. copyright@www.adrian.runceanu.ro
3.5. Instrucţiunea while
Instrucţiunea while
(instrucţiune repetitivă cu test
iniţial)
Funcţionarea unei astfel
de instrucţiuni se bazează pe
evaluarea expresiei date şi
executarea repetată a
instrucţiunii cât timp expresia
este îndeplinită.
02.12.2016 Programarea calculatoarelor 33
34. copyright@www.adrian.runceanu.ro
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;
}
36. copyright@www.adrian.runceanu.ro
3.5. Instrucţiunea while
Folosind
facilităţile limbajului
C/C++, se poate
scrie aceeaşi
secvenţă de
program într-o
formă prescurtată şi
chiar 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;
}
37. copyright@www.adrian.runceanu.ro
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 unei
valori diferite de 0.
while (1) este o buclă infinită care se va
executa până când de la tastatură se va
întrerupe execuţia prin apăsarea tastelor
CTRL+C.
02.12.2016 Programarea calculatoarelor 37
38. copyright@www.adrian.runceanu.ro
Exemple de programe C++
Enunţ:
Să se citească un număr natural n. Să se scrie un
algoritm 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ă cu
datele de ieşire.
În cazul problemei date, avem:
Date de intrare: n număr natural
Date de ieşire: divizorii numărului n
02.12.2016 Programarea calculatoarelor 38
39. copyright@www.adrian.runceanu.ro
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 altui
număr şi anume:
i este divizor al numărului n dacă se împarte
exact la el, adică dacă este adevărată expresia n % i =
0.
Pentru a găsi toţi divizorii numărului n dat, vom
da valori lui i, pornind de la valoarea 1 până la
valoarea n.
Deci vom utiliza o structură repetitivă.
02.12.2016 Programarea calculatoarelor 39
40. Exemple de programe C++
02.12.2016 Programarea calculatoarelor 40
Pas 3:
Scrierea
algoritmului în
pseudocod:
natural n, i
citeşte n
i <- 1
cât timp i <= n execută
dacă n % i = 0 atunci
scrie i
sfârşit dacă
i <- i + 1
sfârşit cât timp
stop
41. copyright@www.adrian.runceanu.ro
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;
}
}
42. copyright@www.adrian.runceanu.ro
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 12
Exemplul 2:
Pentru valoarea n=18 obţinem următorul rezultat:
1 2 3 6 9 18
02.12.2016 Programarea calculatoarelor 42
43. copyright@www.adrian.runceanu.ro
Exemple de programe C++
Enunţ:
Să se citească un număr natural n. Să se scrie un algoritm care
verifică dacă numărul dat este sau nu număr prim. Un număr n
este 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 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: număr prim sau nu
02.12.2016 Programarea calculatoarelor 43
44. copyright@www.adrian.runceanu.ro
Exemple de programe C++
Pas 2: Analiza problemei
Vom 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
45. Exemple de programe C++
02.12.2016 Programarea calculatoarelor 45
Pas 3:
Scrierea
algoritmului în
pseudocod:
natural n, i
logic p
citeşte n
p <- adevărat
i <- 2
cât timp i <= n/2 execută
dacă n % i = 0 atunci
p <- fals
sfârşit dacă
i <- i + 1
sfârşit cât timp
dacă p = adevărat atunci
scrie ‘Numarul este prim’
altfel
scrie ‘Numarul NU este prim’
sfârşit dacă
stop
46. copyright@www.adrian.runceanu.ro
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";
}
47. copyright@www.adrian.runceanu.ro
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 PRIM
Exemplul 2:
Pentru valoarea n=7 obţinem următorul rezultat:
Numarul este PRIM
02.12.2016 Programarea calculatoarelor 47
48. copyright@www.adrian.runceanu.ro
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 orice
valoare n >= 2.
Exemplu:
02.12.2016 Programarea calculatoarelor 48
Date de intrare: 8
Date de ieşire: 21 (1, 1, 2, 3, 5, 8, 13, 21)
49. copyright@www.adrian.runceanu.ro
Probleme propuse spre rezolvare:
2) Se dau trei numere. Determinaţi şi afişaţi
cmmdc al lor (cmmdc = cel mai mare divizor
comun).
Exemplu:
02.12.2016 Programarea calculatoarelor 49
Date de intrare: 12 32 38
Date de ieşire: 2
50. copyright@www.adrian.runceanu.ro
Probleme propuse spre rezolvare:
3) Se dă numărul n, să se afişeze toate numerele
mai mici ca el, prime cu el.
Doua numere sunt prime intre ele daca cel mai
mare divizor comun al lor este 1.
Exemplu:
02.12.2016 Programarea calculatoarelor 50
Date de intrare: 10
Date de ieşire: 1 3 7 9
51. copyright@www.adrian.runceanu.ro
3.Instrucţiunile limbajului C++
3.1. Instrucţiunea vidă
3.2. Instrucţiunea compusă
3.3. Instrucţiunea expresie
3.4. Instrucţiunea if
3.5. Instrucţiunea while
3.6. Instrucţiunea do while
3.7. Instrucţiunea for
3.8. Instrucţiunea switch
3.9. Instrucţiunea break
3.10. Instrucţiunea continue
3.11. Instrucţiunea goto
3.12. Instrucţiunea return
02.12.2016 Programarea calculatoarelor 51
52. copyright@www.adrian.runceanu.ro
3.6. Instrucţiunea do while
02.12.2016 Programarea calculatoarelor 52
do
instructiune
while (expresie);
Forma instructiunii este:
unde instrucţiune poate fi:
instrucţiunea vidă
instrucţiunea simplă
instrucţiunea compusă
53. copyright@www.adrian.runceanu.ro
3.6. Instrucţiunea do while
02.12.2016 Programarea calculatoarelor 53
Funcţionarea unei astfel de instrucţiuni se
bazează pe executarea repetată a instrucţiunii cât
timp condiţia este îndeplinită.
54. copyright@www.adrian.runceanu.ro
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 pe
parcurs.
02.12.2016 Programarea calculatoarelor 54
instructiune;
while(expresie)
instructiune;
55. copyright@www.adrian.runceanu.ro
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 acestui
program se obţine următorul
rezultat:
numar=0 total=0
numar=1 total=1
numar=2 total=3
numar=3 total=6
numar=4 total=10
numar=5 total=15
numar=6 total=21
numar=7 total=28
numar=8 total=36
numar=9 total=45
56. copyright@www.adrian.runceanu.ro
3. Instrucţiunile limbajului C++
3.1. Instrucţiunea vidă
3.2. Instrucţiunea compusă
3.3. Instrucţiunea expresie
3.4. Instrucţiunea if
3.5. Instrucţiunea while
3.6. Instrucţiunea do while
3.7. Instrucţiunea for
3.8. Instrucţiunea switch
3.9. Instrucţiunea break
3.10. Instrucţiunea continue
3.11. Instrucţiunea goto
3.12. Instrucţiunea return
02.12.2016 Programarea calculatoarelor 56
57. copyright@www.adrian.runceanu.ro
3.7. Instrucţiunea for
Este una dintre cele mai “puternice” instrucţiuni ale
limbajului C/C++, datorită formei sale.
Forma instrucțiunii este:
expresie1 – reprezintă secvenţa de iniţializarea a ciclului
expresie2 – reprezintă condiţia de terminare a ciclului
expresie3 – reprezintă secvenţa de reiniţializare a ciclului
instrucţiune - corpul ciclului
02.12.2016 Programarea calculatoarelor 57
for(expresie1; expresie2; expresie3)
instructiune;
58. copyright@www.adrian.runceanu.ro
3.7. Instrucţiunea for
02.12.2016 Programarea calculatoarelor 58
for(expresie1; expresie2; expresie3)
instructiune;
Funcţionarea unei astfel de
instrucţiuni se bazează:
pe executarea repetată a
instrucţiunii,
Verificarea expresiei2
Executarea expresiei3
Cat timp expresia2 este
îndeplinită.
59. copyright@www.adrian.runceanu.ro
3.7. Instrucţiunea for
Se stie că instrucţiunea for este de fapt o
variantă particulară a instrucţiunii while, drept
pentru care se poate scrie echivalent astfel:
02.12.2016 Programarea calculatoarelor 59
expresie1;
while(expresie2)
{
instructiune;
expresie3;
}
61. copyright@www.adrian.runceanu.ro
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 expresia1
iar apoi se evaluează expresia2 şi dacă este
adevărată se execută corpul ciclului, adică
instrucţiune
după aceea se execută expresia3, şi se reia
evaluarea expresiei2, ş.a.m.d.
02.12.2016 Programarea calculatoarelor 61
63. copyright@www.adrian.runceanu.ro
3.7. Instrucţiunea for
Exemplu: Acelaşi
program de
adunare a primelor
n numere întregi,
în varianta cu
instrucţ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;
}
64. copyright@www.adrian.runceanu.ro
Exemplu de program C++ - instructiunea for
Enunţ:
Fie un număr natural n. Să se scrie un
algoritm care să calculeze factorialul numărului
dat.
(factorial = produsul numerelor naturale mai mici
sau 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
65. copyright@www.adrian.runceanu.ro
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
66. copyright@www.adrian.runceanu.ro
Exemplu de program C++ - instructiunea for
Pas 2: Analiza problemei
La începutul problemei, vom iniţializa
valoarea produsului numerelor cu 1.
Apoi, într-un ciclu repetitiv vom calcula
produsul numerelor naturale aflate intre 1 si n.
02.12.2016 Programarea calculatoarelor 66
67. Exemplu de program C++ - instructiunea for
02.12.2016 Programarea calculatoarelor 67
Pas 3:
Scrierea
algoritmului în
pseudocod:
natural n, p, i
citeşte n
p <- 1
pentru i=1,n execută
p <- p * i
sfârşit pentru
scrie p
stop
68. copyright@www.adrian.runceanu.ro
Exemplu de program C++ - instructiunea for
Pas 4: Implementarea
algoritmului î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;
}
69. copyright@www.adrian.runceanu.ro
Exemplu de program C++ - instructiunea for
Pas 5: Testarea algoritmului pe date de intrare
diferite şi verificarea rezultatelor.
Exemplul 1:
Pentru valoarea n=5 obţinem următorul rezultat:
120
Exemplul 2:
Pentru valoarea n=7 obţinem următorul rezultat:
5040
02.12.2016 Programarea calculatoarelor 69
70. copyright@www.adrian.runceanu.ro
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
71. copyright@www.adrian.runceanu.ro
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
72. copyright@www.adrian.runceanu.ro
Exemplu de program C++ - instructiunea do while
Pas 2: Analiza problemei
La î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
73. Exemplu de program C++ - instructiunea do while
02.12.2016 Programarea calculatoarelor 73
Pas 3:
Scrierea
algoritmului în
pseudocod:
natural n, s
citeşte n
s <- 0
repetă
s <- s + n % 10
n <- n / 10
până când n = 0
scrie s
stop
74. copyright@www.adrian.runceanu.ro
Exemplu de program C++ - instructiunea do while
Pas 4: Implementarea
algoritmului î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;
}
75. copyright@www.adrian.runceanu.ro
Exemplu de program C++ - instructiunea do while
Pas 5: Testarea algoritmului pe date de intrare
diferite şi verificarea rezultatelor.
Exemplul 1:
Pentru valoarea n=123 obţinem următorul rezultat:
6
Exemplul 2:
Pentru valoarea n=5378 obţinem următorul rezultat:
23
02.12.2016 Programarea calculatoarelor 75
76. copyright@www.adrian.runceanu.ro
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
77. copyright@www.adrian.runceanu.ro
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: numerele perfecte mai mici sau egale
decât n.
02.12.2016 Programarea calculatoarelor 77
78. copyright@www.adrian.runceanu.ro
Exemplu de program C++ - instructiunea do while
Pas 2: Analiza problemei
La începutul problemei, vom lua toate
valorile de la 1 la n, şi pentru fiecare valoare i o
vom verifica dacă este sau nu număr perfect.
Numerele perfecte obţinute le vom afişa.
02.12.2016 Programarea calculatoarelor 78
79. Exemplu de program C++ - instructiunea do while
02.12.2016 Programarea calculatoarelor 79
Pas 3:
Scrierea
algoritmului în
pseudocod:
natural n, i, j, s
citeşte n
i <- 1
repetă
s <- 0
j <- 1
repetă
dacă i % j = 0 atunci
s <- s + j
sfârşit dacă
j <- j + 1
până când j > i/2
dacă s = i atunci
scrie i
sfârşit dacă
i <- i + 1
până când i > n
stop
80. copyright@www.adrian.runceanu.ro
Exemplu de program C++ - instructiunea do while
Pas 4: Implementarea
algoritmului î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);
}
81. copyright@www.adrian.runceanu.ro
Exemplu de program C++ - instructiunea do while
Pas 5: Testarea algoritmului pe date de intrare
diferite şi verificarea rezultatelor.
Exemplul 1:
Pentru valoarea n=100 obţinem următoarele
rezultate:
6 28
Exemplul 2:
Pentru valoarea n=10000 obţinem următoarele
rezultate:
6 28 496 8128
02.12.2016 Programarea calculatoarelor 81
82. copyright@www.adrian.runceanu.ro
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
83. copyright@www.adrian.runceanu.ro
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 n
02.12.2016 Programarea calculatoarelor 83
84. copyright@www.adrian.runceanu.ro
Exemplu de program C++ - instructiunea for
Pas 2: Analiza problemei
Intr-un ciclu repetitiv de la 1 la n vom verifica toate valorile daca
respecta 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 i
dat.
• Dacă găsim un singur divizor printre aceste numere, atunci vom
acorda valoarea 0 variabilei de tip întreg de la începutul verificarii
conditiei 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
85. Exemplu de program C++ - instructiunea for
02.12.2016 Programarea calculatoarelor 85
Pas 3:
Scrierea
algoritmului în
pseudocod:
natural n,i,j
logic p
citeşte n
pentru i = 2, n execută
p <- adevărat
pentru j = 2, i/2 execută
dacă i % j = 0 atunci
p <- fals
sfârşit dacă
sfârşit pentru
dacă p = adevărat atunci
scrie i,‘ ’
sfârşit dacă
sfârşit pentru
stop
86. copyright@www.adrian.runceanu.ro
Exemplu de program C++ - instructiunea for
Pas 4: Implementarea
algoritmului î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<<“ ”;
}
}
87. copyright@www.adrian.runceanu.ro
Exemplu de program C++ - instructiunea for
Pas 5: Testarea algoritmului pe date de intrare
diferite ş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ătorul
rezultat:
2 3 5 7 11
02.12.2016 Programarea calculatoarelor 87
88. copyright@www.adrian.runceanu.ro
3. Instrucţiunile limbajului C++
3.1. Instrucţiunea vidă
3.2. Instrucţiunea compusă
3.3. Instrucţiunea expresie
3.4. Instrucţiunea if
3.5. Instrucţiunea while
3.6. Instrucţiunea do while
3.7. Instrucţiunea for
3.8. Instrucţiunea switch
3.9. Instrucţiunea break
3.10. Instrucţiunea continue
3.11. Instrucţiunea goto
3.12. Instrucţiunea return
02.12.2016 Programarea calculatoarelor 88
89. copyright@www.adrian.runceanu.ro
3.8. Instrucţiunea switch
Instrucţiunea switch
funcţionează astfel:
Se evaluează expresia şi în
funcţie de rezultat se compară
cu c1, c2, . . ., cn şi când expresia
este egală cu c1 atunci se
execută şirul de instrucţiuni
corespunzător, şi cu
instrucţiunea break se sare la
sfârşitul instrucţiunii switch, la
fel se întâmplă şi dacă expresia
este egală cu c2 ,sau cu c3 , sau
cu 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;
}
90. copyright@www.adrian.runceanu.ro
3.8. Instrucţiunea switch
Instrucţiunea switch este o instrucţiune de tip
decizie multiplă astfel încât se poate scrie echivalent
folosind 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;
91. copyright@www.adrian.runceanu.ro
3.8. Instrucţiunea switch
Prezentăm în
continuare un program
care numără vocalele şi
consoanele din alfabet.
De observat că
unele din instrucţiunile
case se execută în
cascadă, pentru calculul
vocalelor, iar pentru
consoane se foloseşte
cazul 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;
}
92. copyright@www.adrian.runceanu.ro
3. Instrucţiunile limbajului C++
3.1. Instrucţiunea vidă
3.2. Instrucţiunea compusă
3.3. Instrucţiunea expresie
3.4. Instrucţiunea if
3.5. Instrucţiunea while
3.6. Instrucţiunea do while
3.7. Instrucţiunea for
3.8. Instrucţiunea switch
3.9. Instrucţiunea break
3.10. Instrucţiunea continue
3.11. Instrucţiunea goto
3.12. Instrucţiunea return
02.12.2016 Programarea calculatoarelor 92
93. copyright@www.adrian.runceanu.ro
3.9. Instrucţiunea break
Instrucţiunea întrerupe execuţia instrucţiunilor
while, do while, for şi switch, determinând astfel ieşirea
forţată dintr-un ciclu repetitv.
Exemplu:
for(;;)
{
. . . . .
break;
}
02.12.2016 Programarea calculatoarelor 93
break;
94. copyright@www.adrian.runceanu.ro
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 ciclu
repetitiv";
for(numar = 100; numar>=1; numar--)
{
if(numar == 50) break;
cout<<" "<<numar;
}
}
95. copyright@www.adrian.runceanu.ro
3. Instrucţiunile limbajului C++
3.1. Instrucţiunea vidă
3.2. Instrucţiunea compusă
3.3. Instrucţiunea expresie
3.4. Instrucţiunea if
3.5. Instrucţiunea while
3.6. Instrucţiunea do while
3.7. Instrucţiunea for
3.8. Instrucţiunea switch
3.9. Instrucţiunea break
3.10. Instrucţiunea continue
3.11. Instrucţiunea goto
3.12. Instrucţiunea return
02.12.2016 Programarea calculatoarelor 95
96. copyright@www.adrian.runceanu.ro
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 se
continuă cu reevaluarea condiţiei de ciclare iar în
ciclul for se continuă cu secvenţa de reiniţializare
a ciclului şi apoi cu reevaluarea ciclului.
02.12.2016 Programarea calculatoarelor 96
97. copyright@www.adrian.runceanu.ro
3.10. Instrucţiunea continue
Exemplu:
Prezentăm în
continuare, un
program care
folosind
instrucţiunea
continue într-un
ciclu for şi într-un
ciclu while, afişează
numerele pare şi
impare aflate între
1 ş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;
}
}
98. copyright@www.adrian.runceanu.ro
3. Instrucţiunile limbajului C++
3.1. Instrucţiunea vidă
3.2. Instrucţiunea compusă
3.3. Instrucţiunea expresie
3.4. Instrucţiunea if
3.5. Instrucţiunea while
3.6. Instrucţiunea do while
3.7. Instrucţiunea for
3.8. Instrucţiunea switch
3.9. Instrucţiunea break
3.10. Instrucţiunea continue
3.11. Instrucţiunea goto
3.12. Instrucţiunea return
02.12.2016 Programarea calculatoarelor 98
99. copyright@www.adrian.runceanu.ro
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 şi
100:
int main(void)
{
int numar=1;
eticheta: cout<<" ", numar++;
if (numar <= 100) goto eticheta;
}
02.12.2016 Programarea calculatoarelor 99
goto eticheta;
100. copyright@www.adrian.runceanu.ro
3. Instrucţiunile limbajului C++
3.1. Instrucţiunea vidă
3.2. Instrucţiunea compusă
3.3. Instrucţiunea expresie
3.4. Instrucţiunea if
3.5. Instrucţiunea while
3.6. Instrucţiunea do while
3.7. Instrucţiunea for
3.8. Instrucţiunea switch
3.9. Instrucţiunea break
3.10. Instrucţiunea continue
3.11. Instrucţiunea goto
3.12. Instrucţiunea return
02.12.2016 Programarea calculatoarelor 100
101. copyright@www.adrian.runceanu.ro
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);
102. copyright@www.adrian.runceanu.ro
Probleme propuse spre rezolvare:
1) Să se afişeze toate numerele palindrom mai
mari decat 10 şi mai mici decat un număr dat, n.
Exemplu:
02.12.2016 Programarea calculatoarelor 102
Date de intrare: n=110
Date de ieşire:
11 22 33 44 55 66 77 88 99 101
103. copyright@www.adrian.runceanu.ro
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 divide
cu 10.
Exemplu:
02.12.2016 Programarea calculatoarelor 103
Date de intrare: -
Date de ieşire: 95 96 99 si 95 97 99 sunt
ultimele doua triplete
104. copyright@www.adrian.runceanu.ro
Probleme propuse spre rezolvare:
3) Să se afişeze toate numerele de două cifre care
adunate 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
105. copyright@www.adrian.runceanu.ro
Pentru alte informații teoretice și aplicative legate
de acest capitol se recomandă următoarele referințe
bibliografice:
1. Adrian Runceanu, Mihaela Runceanu, Noțiuni de
programare în limbajul C++, Editura Academica
Brâncuși, Târgu-Jiu, 2012 (www.utgjiu.ro/editura)
2. Adrian Runceanu, Programarea şi utilizarea
calculatoarelor, 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
106. copyright@www.adrian.runceanu.ro
Recapitulare pseudocod – limbaj C++
Pseudocod C++
Tipuri de date
simple:
natural
intreg
real
logic
unsigned
int, long
float, double
bool
CITIRE date citeste v1,v2 cin>>v1>>v2 ;
AFISARE date scrie expresie1, expresie2 cout<<expresie1<<expresie2
ATRIBUIRE vexpresie
v=expresie;
v1=v2=...=v3=expresie;
STRUCTURA
DECIZIONALA
daca conditie atunci instructiune 1
altfel instructiune 2
if (conditie) instructiune 1;
else instructiune 2;
STRUCTURA
executa... cat timp
executa
instructiune
cat timp conditie
do
instructiune;
while (conditie);
PENTRU
pentru vvali, valf, pas executa
instructiune
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
107. copyright@www.adrian.runceanu.ro
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,
variabile
Citire date intrare
Prelucrare date
Afisare
}
Structura unui program C++
108. copyright@www.adrian.runceanu.ro
Pentru alte informații teoretice și aplicative legate
de acest capitol se recomandă următoarele referințe
bibliografice:
1. Adrian Runceanu, Mihaela Runceanu, Noțiuni de
programare în limbajul C++, Editura Academica
Brâncuși, Târgu-Jiu, 2012 (www.utgjiu.ro/editura)
2. Adrian Runceanu, Programarea şi utilizarea
calculatoarelor, 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