Sunteți pe pagina 1din 59

Intrrile n program.

Scrierea
aplicaiilor
Programarea calculatoarelor i
limbaje de programare I

Capitolul 4
Introducere
Vom vedea
cum putem introduce date n program
chiar n timpul rulrii lui
cum se citesc date din fiiere i cum se
scriu date n fiiere
cum se pot scrie aplicaii prin
descompunere funcional
proiectare orientat pe obiecte

Programarea calculatoarelor i 2
limbaje de programare I
Sumar
1. Transmiterea datelor ctre programe
2. Intrri i ieiri din fiiere
3. Erori de citire
4. Scrierea aplicaiilor

Programarea calculatoarelor i 3
limbaje de programare I
Transmiterea datelor ctre
programe
n programele pe care le-am scris pn
acum, valorile datelor se gsesc chiar n
program, n constante simbolice sau literale
Dac dorim s modificm o dat, trebuie s
facem o mic modificare n program, s l
recompilm i s l executm din nou
Vom vedea cum putem introduce date n
program chiar n timpul rulrii lui

Programarea calculatoarelor i 4
limbaje de programare I
Transmiterea datelor ctre
programe
Unul dintre marile avantaje ale
calculatorului este c un program poate fi
folosit cu diverse seturi de date
Pentru aceasta trebuie s separm datele
de program pn n momentul execuiei
Anumite instruciuni din program copiaz
valori n variabilele din program
Dup stocarea acestor valori n variabile,
programul poate s le foloseasc n calcule

Programarea calculatoarelor i 5
limbaje de programare I
Transmiterea datelor ctre
programe
Procesul de plasare a unor valori dintr-o
mulime de date n variabile din program se
numete intrare (input)
ntr-o terminologie mai larg, calculatorul
se spune c citete date din exterior n
variabile
Datele pot proveni dintr-un fiier, de la
tastatur etc.
Dispozitivul standard de intrare este
tastatura

Programarea calculatoarelor i 6
limbaje de programare I
Stream-uri de intrare i operatorul
de extracie >>
n C++, conceptul de stream este esenial
Putem gndi un stream de ieire ca pe o
secven infinit de date care circul
dinspre program nspre un dispozitiv de
ieire
Un stream de intrare este o secven
infinit de caractere care pornete de la un
dispozitiv de intrare i este dirijat ctre
program

Programarea calculatoarelor i 7
limbaje de programare I
Stream-uri de intrare i operatorul
de extracie >>
Fiierul header iostream conine, printre
altele, definiiile a dou tipuri de date:
istream i ostream
Aceste tipuri de date reprezint stream-uri
de intrare i stream-uri de ieire
Acest fiier header mai conine dou
declaraii care arat aproximativ astfel
istream cin;
ostream cout;

Programarea calculatoarelor i 8
limbaje de programare I
Stream-uri de intrare i operatorul
de extracie >>
Cele dou declaraii arat c cin este un
obiect de tip istream i cout este un obiect
de tip ostream
n mod explicit, cin este asociat cu
tastatura, iar cout cu display-ul
Trimiterea unor valori ctre cout se face
folosind operatorul de inserie <<
cout << 3 * pret;
Similar, putem citi date din cin folosind
operatorul de extracie >>
cin >> cost;

Programarea calculatoarelor i 9
limbaje de programare I
Stream-uri de intrare i operatorul
de extracie >>
Operatorul de extracie >> are doi operanzi
n stnga se gsete un stream, n cel mai simplu caz
cin, iar n dreapta se gsete o variabil avnd un tip
predefinit (char, int, float etc.).
Putem folosi operatorul de mai multe ori ntr-o
instruciune
cin >> lungime >> latime;
echivalent cu
cin >> lungime;
cin >> latime;
cin poate fi folosit doar n combinaie cu >>
cout poate fi folosit doar n combinaie cu <<

Programarea calculatoarelor i 10
limbaje de programare I
Stream-uri de intrare i operatorul
de extracie >>
ntr-o instruciune de afiare putem folosi
constante, variabile i chiar expresii foarte
complicate
ntr-o instruciune de intrare nu putem
folosi dect nume de variabile
O instruciune de intrare trebuie s
precizeze clar unde se stocheaz valoarea
unei date de intrare
Doar numele de variabile refer locaii de
memorie ale cror valori pot fi modificate n
timpul execuiei unui program
Programarea calculatoarelor i 11
limbaje de programare I
Stream-uri de intrare i operatorul
de extracie >>
Atunci cnd introducem o dat de la
tastatur, trebuie s ne asigurm c
tipul introdus i cel ateptat de
program se potrivesc
Un numr ntreg este forat automat
la un numr real
Operaia invers poate conduce la
rezultate eronate

Programarea calculatoarelor i 12
limbaje de programare I
Stream-uri de intrare i operatorul
de extracie >>
Cnd extrage valori dintr-un stream,
operatorul >> ignor orice spaiu de la
nceput
Ignor caracterul care marcheaz sfritul
liniei
Dac data ateptat este un char, intrarea
se ntrerupe dup primul caracter
Dac este vorba de un int sau double,
intrarea se ntrerupe la primul caracter care
nu se potrivete ca tip de dat, cum ar fi un
spaiu
Programarea calculatoarelor i 13
limbaje de programare I
Stream-uri de intrare i operatorul
de extracie >>
Exemplu
int i, j, k;
char ch;
float x;

cin >> i; 32 i = 32
cin >> i >> ch >> 25 A 16.9 i = 25
x; ch = A
x = 16.9
cin >> i >> j >> x; 12 8 i = 12
j = 8
Programul ateapt al treilea numr
cin >> i >> x; 46 32.4 15 i = 46
x = 32.4
15 este pstrat pentru o intrare ulterioar

Programarea calculatoarelor i 14
limbaje de programare I
Caracterul newline
Fiecare linie are un caracter invizibil
care marcheaz sfritul su
caracterul newline
Pentru a determina urmtoarea
valoare de intrare, operatorul >> trece
peste caracterul newline, n cazul n
care acesta exist

Programarea calculatoarelor i 15
limbaje de programare I
Caracterul newline
Atunci cnd utilizm tastatura,
caracterul newline este introdus prin
apsarea lui Return sau Enter
Programul poate genera un newline
folosind manipulatorul endl ntr-o
instruciune de ieire
C++ putem s ne referim la
caracterul newline folosind simbolurile
\n

Programarea calculatoarelor i 16
limbaje de programare I
Caracterul newline
Dei \n const din dou caractere, el se
refer la unul singur caracterul newline
Aa cum putem pstra litera A n variabila
ch de tip char prin instruciunea
char ch = A;
tot aa putem pstra caracterul newline
ntr-o variabil
ch = \n;

Programarea calculatoarelor i 17
limbaje de programare I
Caracterul newline
Exemplu
Cnd avem o secven de citiri, putem introduce
valorile n mai multe feluri
cin >> i; 25 A 16.9\n 25\n 25A16.9\n
cin >> ch; A\n Citirea se oprete cnd
cin >> x; 16.9\n tipul de dat nu mai
corespunde
Dup citire, variabilele vor avea urmtoarele
valori:
i = 25
ch = A
x = 16.9
Programarea calculatoarelor i 18
limbaje de programare I
Citirea datelor de tip caracter
folosind instruciunea get
Operatorul >> ignor orice spaiu aprut n
stream-ul de intrare
Exemplu
Dac ch1 i ch2 sunt variabile de tip char,
atunci cnd se execut instruciunea
cin >> ch1 >> ch2;
pentru stream-ul de intrare
R 1
se va stoca R n ch1 i 1 n ch2
Ce se ntmpl, ns, dac am fi dorit, de
fapt, s introducem trei caractere: R, spaiu
i 1?
Cu operatorul de extracie acest lucru nu este
posibil
Programarea calculatoarelor i 19
limbaje de programare I
Citirea datelor de tip caracter
folosind instruciunea get
Funcia get ncarc urmtorul caracter fr
a ignora spaiile
cin.get(ch);
Specificm numele istream-ului, adic cin,
apoi punem semnul . (punct) urmat de
numele funciei i lista ei de parametri
Apelul funciei get folosete sintaxa
apelului funciilor void i nu a celor care
ntorc o valoare
Acest apel de funcie este, deci, o
instruciune de sine stttoare
Programarea calculatoarelor i 20
limbaje de programare I
Citirea datelor de tip caracter
folosind instruciunea get
Parametrul funciei get trebuie s fie
o variabil
Acesta este un exemplu prin care se
apeleaz o funcie din clasa istream
funcia get pentru un obiect al
acestei clase obiectul cin

Programarea calculatoarelor i 21
limbaje de programare I
Citirea datelor de tip caracter
folosind instruciunea get
Exemplu
Pentru instruciunile
cin.get(ch1);
cin.get(ch2);
cin.get(ch3);
sau
cin >> ch1;
cin.get(ch2);
cin >> ch3;
i stream-ul de intrare
R 1
atunci variabilele ch1, ch2 i ch3 vor stoca
ch1 = R;
ch2 = ;
ch3 = 1;

Programarea calculatoarelor i 22
limbaje de programare I
Citirea datelor de tip caracter
folosind instruciunea get
Exemple
cin >> ch1; A B\n ch1 = A;
cin >> ch2; CD\n ch2 = B;
cin >> ch3; ch3 = C;

cin.get(ch1); A B\n ch1 = A;


cin.get(ch2); CD\n ch2 = ;
cin.get(ch3); ch3 = B;

cin >> ch1; A B\n ch1 = A;


cin >> ch2; CD\n ch2 = B;
cin.get(ch3); ch3 = \n;
Programarea calculatoarelor i 23
limbaje de programare I
Ignorarea caracterelor folosind
funcia ignore
Funcia ignore este asociat cu tipul
de dat istream, fiind o funcie
definit n aceast clasa istream
Este folosit pentru a sri peste
caractere din stream-ul de intrare
Este o funcie cu doi parametri

Programarea calculatoarelor i 24
limbaje de programare I
Ignorarea caracterelor folosind
funcia ignore
Exemplu
cin.ignore(200, \n);
Acest apel al funciei spune calculatorului
s ignore urmtoarele 200 de caractere
de intrare sau s sar pn ntlnete
caracterul newline, n funcie de care
dintre ele apare prima
Primul parametru este o expresie
int, iar al doilea una char

Programarea calculatoarelor i 25
limbaje de programare I
Ignorarea caracterelor folosind
funcia ignore
Exemple
cin >> i >> j; 957 34 1235\n i = 957;
cin.ignore(100, \n); 128 96\n j = 34;
cin >> k; k = 128;

cin >> ch; A 22 B 16 C 19\n ch = A;


cin.ignore(100, B); i = 16;
cin >> i;

cin.ignore(2, \n); ABCDEF\n ch = C;


cin >> ch;

Programarea calculatoarelor i 26
limbaje de programare I
Intrri i ieiri interactive
Un program interactiv este unul prin care
utilizatorul comunic direct cu calculatorul
Atunci cnd dorim s cerem utilizatorului s
introduc o dat n program, este util s i
afim nainte un mesaj prin care s i
explicm ce trebuie s introduc
Programul ar trebui s tipreasc toate
datele introduse pentru ca utilizatorul s se
poat verifica
Aceasta se numete tiprire n ecou

Programarea calculatoarelor i 27
limbaje de programare I
Intrri i ieiri interactive
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int codNumeric;
int cantitate;
double pretUnitar;
double pretTotal;
cout << "Introduceti codul numeric al produsului comandat:" << endl;
cin >> codNumeric;
cout << "Introduceti cantitatea:" << endl;
cin >> cantitate;
cout << "Introduceti pretul unitar pentru acest produs:" << endl;
cin >> pretUnitar;
pretTotal = cantitate * pretUnitar;
cout.setf(ios::fixed, ios::floatfield);
cout << "Produsul " << codNumeric
<< ", cantitatea " << cantitate
<< ", pretul unitar " << setprecision(2) << pretUnitar
<< " lei " << endl;
cout << "Total: " << pretTotal << endl;
return 0;
}

Programarea calculatoarelor i 28
limbaje de programare I
Intrri i ieiri interactive
n timpul rulrii acestui program se va tipri cte un text
care va arta utilizatorului care este urmtoarea valoare
ateptat

Introduceti codul numeric al produsului comandat


4671
Introduceti cantitatea:
10
Introduceti pretul unitar pentru acest produs:
272.55
Produsul 4671, cantitatea 10, pretul unitar 272.55 lei
Total: 2725.50

Programarea calculatoarelor i 29
limbaje de programare I
Intrri i ieiri neinteractive
Dei tindem s dm exemple de programe
interactive, multe dintre programele folosite
n viaa real sunt neinteractive
Acestea sunt programe care prelucreaz
cantiti mari de date, greu de introdus
interactiv fr erori
Pentru acest tip de programe, datele se
pstreaz n fiiere de date pregtite
anterior
Aceasta permite verificare i corectarea
datelor nainte de rularea programului
Programarea calculatoarelor i 30
limbaje de programare I
Sumar
1. Transmiterea datelor ctre programe
2. Intrri i ieiri din fiiere
3. Erori de citire
4. Scrierea aplicaiilor

Programarea calculatoarelor i 31
limbaje de programare I
Intrri i ieiri din fiiere
Fiierul este o zon pe un suport de
stocare, de exemplu hard disc, desemnat
printr-un nume, care pstreaz o colecie
de date, de exemplu codul programului
scris cu un editor
Un program poate citi datele dintr-un fiier
n aceeai manier n care le citete de la
tastatur
Se poate scrie n fiier la fel cum se scrie pe
ecran
Programarea calculatoarelor i 32
limbaje de programare I
Modul de utilizare a fiierelor
1. Cerem preprocesorului s includ
fiierul header fstream
2. Folosim instruciuni de declarare
pentru a declara stream-urile
3. Pregtim fiierele pentru citire i
scriere prin instruciunea open
4. Specificm numele stream-ului n
fiecare instruciune de citire sau de
scriere
Programarea calculatoarelor i 33
limbaje de programare I
1. Includerea fiierului header
fstream
#include <fstream>
using namespace std;
int main()
{
float cant1;
float cant2;
float cant3;
float cant4;
float indicatiePlecare;
float indicatieSosire;
float litriPerKm;
ifstream inConsum;
ofstream outConsum;
inConsum.open("incons.dat");
outConsum.open("outcons.dat");

inConsum >> cant1 >> cant2 >> cant3 >> cant4 >> indicatiePlecare >>
indicatieSosire;
litriPerKm = (cant1 + cant2 + cant3 + cant4)*100.0/ (indicatieSosire -
indicatiePlecare);

outConsum << "Consumul este " << litriPerKm << " litri per km." << endl;
return 0;
}
Programarea calculatoarelor i 34
limbaje de programare I
1. Includerea fiierului header
fstream
Se folosete directiva de preprocesare
#include <fstream>
Prin acest header se definesc dou noi tipuri de date
ifstream
ofstream
Cele dou tipuri de dat reprezint, primul, un stream de
caractere provenind de la un fiier, iar al doilea un stream
de caractere care conduce ctre un fiier
Pentru tipul ifstream rmn valabile operaiile
>>
get
ignore
Pentru tipul ofstream se pot folosi
<<
endl
Setw
setprecision
Programarea calculatoarelor i 35
limbaje de programare I
2. Declararea stream-urilor pentru
fiiere
Obiectele de tip stream se declar la
fel ca orice variabil
Exemplu
int unInt;
float unFloat;
ifstream unFisier;
ofstream altFisier;

Programarea calculatoarelor i 36
limbaje de programare I
2. Declararea stream-urilor pentru
fiiere
Obiectele cin i cout nu trebuie
declarate n fiecare program pentru
c ele sunt declarate n fiierul
iostream
Stream-urile pentru lucrul cu fiiere
trebuie declarate n program pentru
c fiecare aplicaie folosete propriile
fiiere de date

Programarea calculatoarelor i 37
limbaje de programare I
2. Declararea stream-urilor pentru
fiiere
n programul anterior am declarat
ifstream inConsum;
ofstream outConsum;
ifstream se utilizeaz doar pentru fiiere
de intrare
ofstream se folosete doar pentru fiiere
de ieire
Prin intermediul unui obiect ifstream se
pot face doar citiri
Prin intermediul unui obiect ofstream se
pot face doar scrieri

Programarea calculatoarelor i 38
limbaje de programare I
3. Deschiderea fiierelor
Pregtirea fiierelor pentru citire sau scriere se
numete deschidere
Ne propunem s citim din stream-ul tip fiier
inConsum i s scriem n stream-ul outConsum
Deschidem fiierele folosind urmtoarele instruciuni:
inConsum.open("incons.dat");
outConsum.open("outcons.dat");
Funcia open asociaz variabila stream din program cu
un fiier fizic pe disc
Prima instruciune este un apel al funciei open
asociate cu tipul de dat ifstream
A doua apeleaz funcia open asociat cu ofstream

Programarea calculatoarelor i 39
limbaje de programare I
3. Deschiderea fiierelor
Pentru un fiier de intrare, funcia
open poziioneaz markerul de citire
pe primul element din fiier
Pentru un fiier de ieire, funcia
verific dac acesta exist
Dac exist, terge vechiul coninut al
su
Dac nu exist, l creeaz
Apoi markerul de scriere este aezat pe
prima poziie
Programarea calculatoarelor i 40
limbaje de programare I
3. Deschiderea fiierelor
Exemplu
inConsum outConsum
23.2 _
17.4
19.8
16.7
22451
23544
Deschiderea fiierelor trebuie realizat
naintea oricrei utilizri a lor deoarece
funcia open le pregtete pentru citire sau
scriere

Programarea calculatoarelor i 41
limbaje de programare I
4. Specificarea stream-urilor n
instruciuni I/O
Pentru citirea i scrierea din fiier se nlocuiesc
obiectele cin i cout cu obiectele de tip stream de
fiier declarate mai devreme
Exemplu
inConsum >> cant1 >> cant2 >> cant3 >> cant4
>> indicatiePlecare >> indicatieSosire;
outConsum << "Consumul este " << litriPerKm
<< " litri per km." << endl;
C++ folosete o sintax uniform pentru operaiile
I/O, indiferent dac este vorba despre fiiere sau
dispozitive I/O

Programarea calculatoarelor i 42
limbaje de programare I
Sumar
1. Transmiterea datelor ctre programe
2. Intrri i ieiri din fiiere
3. Erori de citire
4. Scrierea aplicaiilor

Programarea calculatoarelor i 43
limbaje de programare I
Erori de citire
La citirea datelor de la tastatur sau dintr-
un fiier pot aprea erori
Dac programul ne cere s introducem un
numr ntreg, iar noi introducem caractere,
operaia de intrare eueaz datorit datelor
de intrare invalide
n terminologia C++ stream-ul cin intr
ntr-o stare de eroare - fail state
Dac un stream intr ntr-o astfel de stare,
orice alt operaie ulterioar asupra sa este
anulat
Programarea calculatoarelor i 44
limbaje de programare I
Erori de citire
De cele mai multe ori erorile de intrare apar
din cauza nepotrivirii tipurilor de dat.
Exemplu
int i = 10;
int j = 20;
int k = 30;
cin >> i >> j >> k;
cout << i: << i << j: << j << k: << k;
Dac tastm
1234.56 7 89
programul afieaz
i: 1234 j: 20 k: 30

Programarea calculatoarelor i 45
limbaje de programare I
Erori de citire
Un alt motiv pentru care un stream intr n
fail state este incercarea de deschidere a
unui fiier de intrare care nu exist
Exemplu
S presupunem c avem pe disc fiierul
myfile.dat i scriem urmtoarele instruciuni
care i propun s lucreze cu acest fiier:
ifstream inFisier;
inFisier.open(myfil.dat);
inFisier >> i >> j >> k;
Datorit scrierii incorecte a numelui de fiier,
inFisier va intra n fail state
Ca urmare, variabilele i, j i k vor avea nite
valori nedeteminate

Programarea calculatoarelor i 46
limbaje de programare I
Sumar
1. Transmiterea datelor ctre programe
2. Intrri i ieiri din fiiere
3. Erori de citire
4. Scrierea aplicaiilor

Programarea calculatoarelor i 47
limbaje de programare I
Scrierea aplicaiilor
Cunotinele de pn acum ne permit
s scriem i aplicaii mai complexe i
de aceea trebuie s vedem cum
putem concepe corect o aplicaie
Vom prezenta
descompunerea funcional
proiectarea orientat pe obiecte

Programarea calculatoarelor i 48
limbaje de programare I
Descompunerea funcional
Aceast este o tehnic de dezvoltare a unei
pri a unui program sau chiar a unui
program de dimensiuni reduse prin care
problema este mprit n subprobleme mai
uor de rezolvat
soluii acestora creeaz o soluie global a
ntregii probleme
Printr-o astfel de descompunere crem o
structur ierarhic numit structur
arborescent

Programarea calculatoarelor i 49
limbaje de programare I
Descompunerea funcional
Rezolvarea problemei
abstract
Pas I
Pas II Nivelul 0
Pas III

pas
abstract Subproblema I Subproblema II Subproblema III
Pas A Pas C Pas E Nivelul 1
Pas B Pas D Pas F

Subproblema A Subproblema B Subproblema C Subproblema F


Pas 1 Pas 2 Pas 4 Pas 7
Nivelul 2
Pas 3 Pas 5 Pas 8
Pas 6

pas Subproblema 2
concret Pas a
Pas b Nivelul 3
Pas c
concret

Programarea calculatoarelor i 50
limbaje de programare I
Descompunerea funcional
Pentru conceperea unui modul
trebuie s parcurgem urmtorii pai:
1. S schim o soluie a problemei
2. S descriem paii majori
3. Dac un pas este suficient de simplu
pentru a putea fi implementat, nu mai
necesit descompuneri ulterioare
4. Dac pasul poate fi gndit ca o serie de
pai mai mici, este nc un pas abstract

Programarea calculatoarelor i 51
limbaje de programare I
Proiectarea orientat pe obiecte
Descompunerea funcional poate fi privit
ca o metod de gsire a soluiei unei
probleme cu accent pe algoritmi i aciunile
care trebuie realizate
Datele, n acest caz, joac un rol secundar
Proiectarea orientat pe obiecte se
focalizeaz pe entiti (obiecte) i operaiile
posibile asupra acestor entiti

Programarea calculatoarelor i 52
limbaje de programare I
Proiectarea orientat pe obiecte
Exemplu
O problem bancar poate avea
nevoie de un obiect contBancar cu
operaiile asociate
DeschideCont
ScrieCec
CreeazaDepozit
Obiectul contBancar const din date
numarCont
balantaCurenta
Programarea calculatoarelor i 53
limbaje de programare I
Proiectarea orientat pe obiecte
Primul pas n proiectarea orientat pe
obiecte este identificarea obiectelor
din problem i a operaiilor asociate
Soluia final va fi exprimat n
termeni de obiecte i operaii
Datele joac aici un rol determinant
n C++ operaiile asociate cu o clas
sunt scrise ca funcii i se numesc
funcii membre
Programarea calculatoarelor i 54
limbaje de programare I
Proiectarea orientat pe obiecte
O funcie membr este apelat prin numele
unui obiect al clasei urmat de un punct i
de numele funciei cu lista de parametri.
Exemplu
contBancar.DeschideCont(1000,
tip1);
Datele care compun obiectul se numesc
date membre
Instanele unei clase se numesc obiecte, n
timp ce instanele tipurilor de date
predefinite cum ar fi int se numesc
variabile

Programarea calculatoarelor i 55
limbaje de programare I
Proiectarea orientat pe obiecte
Proiectarea orientat pe obiecte se
preteaz la scrierea proiectelor mari din
urmtoarele trei motive:
1. Obiectele dintr-un program modeleaz obiecte
din problema de rezolvat
2. Este posibil furnizarea i utilizarea de biblioteci
de clase scrise de diverse firme sau persoane
independente
3. Se folosete un concept fundamental numit
motenire care permite adaptarea unei clase la
particularitile problemei fr a modifica codul
scris anterior

Programarea calculatoarelor i 56
limbaje de programare I
Proiectarea orientat pe obiecte
Pentru crearea unei soluii software optime
se urmeaz un proces detaliat pentru
obinerea unei analize a cerinelor sistemului
(requirments)
proiectarea acestuia (design) astfel nct s
satisfac cerinele
Orict de simpl ar fi problema de rezolvat,
timpul petrecut cu analiza i proiectarea
economisete foarte mult timp care se
poate pierde cu dezvoltarea unui sistem
greit conceput

Programarea calculatoarelor i 57
limbaje de programare I
Proiectarea orientat pe obiecte
Unified Modeling Language (UML)
UML este un limbaj grafic de
comunicare a rezultatelor analizei i a
proiectrii orientate pe obiecte
UML a fost lansat n anul 1996 de
ctre James Rumbaugh, Grady Booch
i Ivar Jacobson de la Rational
Software Corporation
Object Management Group (OMG)
asigur revizuirea permanent a UML

Programarea calculatoarelor i 58
limbaje de programare I
Proiectarea orientat pe obiecte
Unified Modeling Language (UML)
Caracteristicile UML
flexibil
extensibil
independent de multele procese de
analiz i proiectare orientate pe obiecte
http://www.uml.org

Programarea calculatoarelor i 59
limbaje de programare I

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