Sunteți pe pagina 1din 62

Condiii, expresii logice i structuri

de control pentru selecie

Programarea calculatoarelor i
limbaje de programare I

Capitolul 5
Introducere
Pn acum, instruciunile din programele scrise
de noi se executau n ordinea n care erau
scrise
S presupunem acum c dorim s verificm
validitatea unor date de intrare i apoi s
facem un calcul sau s afim un mesaj de
eroare, dar s nu le facem pe amndou
Pentru aceasta va trebui s punem o ntrebare
i, bazndu-ne pe rspuns, s alegem una sau
alta dintre variantele de evoluie a programului
Instruciunea if ne permite s executm
instruciunile ntr-o alt ordine dect cea fizic
Programarea calculatoarelor i 2
limbaje de programare I
Sumar
1. Ordinea de execuie a intruciunilor
2. Condiii i expresii logice
3. Instruciunea if
4. Testarea strii stream-urilor de
intrare / ieire
5. Proiectarea orientat pe obiecte
Abstractizarea

Programarea calculatoarelor i 3
limbaje de programare I
Ordinea de execuie a intruciunilor
La un moment dat, calculatorul se gsete sub
controlul unei instruciuni
Dup ce aceast instruciune este executat, controlul
este trecut urmtoarei instruciuni
n mod obinuit execuia este secvenial

Instruciunea 1

Instruciunea 2

Instruciunea 3

Programarea calculatoarelor i 4
limbaje de programare I
Ordinea de execuie a intruciunilor
Acolo unde dorim ca execuia s nu
mai fie secvenial, introducem
structuri de control
Atunci cnd vrem ca un program s
aleag ntre dou aciuni alternative,
folosim o structur de control al
seleciei

Programarea calculatoarelor i 5
limbaje de programare I
Ordinea de execuie a intruciunilor
Vom face o presupunere care poate fi
adevrat sau fals
Dac este adevrat, calculatorul execut o
intruciune.
Dac este fals, execut alt instruciune.

Adevrat Fals
Presupunere

Instruciunea 1A Instruciunea 1B

Programarea calculatoarelor i 6
limbaje de programare I
Ordinea de execuie a intruciunilor
Exemplu
Programul poate testa la un moment dat
dac un angajat va fi pltit pentru ore
suplimentare lucrate
Se va testa presupunearea c angajatul a
lucrat mai mult de 40 de ore ntr-o
sptmn, iar dac este fals calculeaz
suma obinuit

Programarea calculatoarelor i 7
limbaje de programare I
Sumar
1. Ordinea de execuie a intruciunilor
2. Condiii i expresii logice
3. Instruciunea if
4. Testarea strii stream-urilor de
intrare / ieire
5. Proiectarea orientat pe obiecte
Abstractizarea

Programarea calculatoarelor i 8
limbaje de programare I
Condiii i expresii logice
Pentru a pune o ntrebare n C++, facem o
presupunere care poate fi adevrat sau
fals
Calculatorul evalueaz presupunerea pentru
a constata dac este adevrat sau fals
n C++, presupunerile iau forma expresiilor
logice sau booleene
O astfel de expresie este alctuit din valori
logice i operaii

Programarea calculatoarelor i 9
limbaje de programare I
Expresii logice
Datele booleene
Versiunile actuale ale limbajului de
programare C++ includ un tip de dat
numit bool al crui domeniu de valori
este format din constantele literale
true i false
Exemplu
const bool checkValue = true;
bool dataOK;
dataOK = false;

Programarea calculatoarelor i 10
limbaje de programare I
Expresii logice
Datele booleene
Pentru compatibilitatea cu versiunile mai
vechi ale standardului C++ n care acest tip
de dat nu exista, valoarea true poate fi,
de asemenea, reprezentat de orice valoare
nenul, iar false poate fi reprezentat de
valoarea 0
Exemplu
const bool checkValue = 1;
bool dataOK;
dataOK = 0;
Programarea calculatoarelor i 11
limbaje de programare I
Expresii logice
Datele booleene
Valorile booleene false sunt tiprite n mod
implicit ca valoare 0, iar valorile true sunt
tiprite ca valoare 1
Operatorul de inserie n stream <<
tiprete variabilele de tip bool ca ntregi
Exemplu
bool dataOK;
dataOK = false;
cout << dataOK << endl;
tiprete valoarea
0

Programarea calculatoarelor i 12
limbaje de programare I
Expresii logice
Datele booleene
Manipulatorul boolalpha seteaz stream-ul
de ieire ca s afieze valorile de tip bool
prin irurile true i false
Exemplu
bool dataOK;
dataOK = false;
cout << boolalpha << dataOK << endl;
tiprete valoarea
false

Programarea calculatoarelor i 13
limbaje de programare I
Expresii logice
Operatori relaionali
Unei variabile booleene i poate fi asignat rezultatul
comparrii a dou valori
Exemplu
bool maiMicDecat;
int i, j;
cin >> i >> j;
maiMicDecat = ( i < j );
Variabilei maiMicDecat i se asigneaz true cnd i < j
Comparnd dou valori, prespunem c o relaie, de
exemplu mai mic dect, exist ntre ele
Dac relaia exist ntr-adevr, presupunerea este
adevrat, iar dac nu, este fals

Programarea calculatoarelor i 14
limbaje de programare I
Expresii logice
Operatori relaionali
n C++ putem testa urmtoarele relaii:
Operator Exemplu Semnificaie
relaional
== x == y x este egal cu y
!= x != y x este diferit de y
> x > y x este mai mare dect y
< x < y x este mai mic dect y
>= x >= y x este mai mare sau egal dect y
<= x <= y x este mai mic sau egal dect y

Programarea calculatoarelor i 15
limbaje de programare I
Expresii logice
Operatori relaionali
n C++, rezultatul unei comparaii poate fi
true sau false
Exemplu
Dac x are valoarea 5 i y are valoarea 10, urmtoarele
relaii sunt adevrate:
x == 5 x != y
y > x x < y
y >= x x <= y

Dac x este M i y este R, expresiile de mai


sus sunt de asemenea true deoarece sunt
comparate codurile ASCII ale caracterelor
pentru c n acest cod literele mari sunt
aezate inaintea celor mici
Programarea calculatoarelor i 16
limbaje de programare I
Expresii logice
Operatori relaionali
Este important tipul datelor comparate
Cel mai sigur este s comparm date de
acelai tip pentru a evita forrile de tip
realizate de compilator
Valorile char trebuie comparate doar cu
valori char
Exemplu
0 < 9 sau 0 < 9 sunt corecte
0 < 9 se realizeaz cu o forare de tip i
rezultatul nu este cel ateptat

Programarea calculatoarelor i 17
limbaje de programare I
Expresii logice
Operatori relaionali
Se pot folosi operatori relaionali nu doar pentru a
compara valori ale variabilelor sau constantelor, ci i
pentru a compara valori ale expresiilor aritmetice
Exemplu
Pentru
int x = 17, y = 2;
urmtoarea expresie este adevrat:
x + 3 == y * 10
O eroare des ntlnit n scrierea programelor C++
este confuzia ntre operatorii = i ==
Folosirea operatorului == pentru asignare sau a
operatorului = pentru a testa egalitatea sunt erori
logice

Programarea calculatoarelor i 18
limbaje de programare I
Expresii logice
Operatori logici
n matematic, operatorii logici AND, OR i
NOT acioneaz asupra expresiilor logice
care joac rolul de operanzi
C++ folosete simboluri speciale pentru
fiecare dintre operatorii logici
Operator logic Exemplu Semnificaie
&& x && y AND logic
|| x || y OR logic
! !x NOT logic

Programarea calculatoarelor i 19
limbaje de programare I
Expresii logice
Operatori logici
Pentru ca rezultatul operaiei AND (&&) s
fie true, ambii operanzi trebuie s fie true

Expresia 1 Expresia 2 Expresia 1 && Expresia 2

false false false


false true false
true false false
true true true

Programarea calculatoarelor i 20
limbaje de programare I
Expresii logice
Operatori logici
Operaia OR (||) cere ca cel puin un
operand s fie true pentru ca rezultatul s
fie true
Expresia 1 Expresia 2 Expresia 1 || Expresia 2

false false false


false true true
true false true
true true true

Programarea calculatoarelor i 21
limbaje de programare I
Expresii logice
Operatori logici
Operatorul NOT (!) precede o singur
expresie logic i d un rezultat opus valorii
logice a expresiei

Expresia 1 !Expresia 1

false true
true false

Programarea calculatoarelor i 22
limbaje de programare I
Expresii logice
Operatori logici
NOT ne d o metod de a inversa sensul
unei presupuneri
Exemplu
!(oreLucrate > 40)
este echivalent cu
oreLucrate <= 40
n unele expresii prima form este mai
clar, n altele cea de-a doua
Exemple
Conform regulilor lui De Morgan avem
!( a == b ) a != b
!( a == b || a == c ) a != b && a != c
!( a == b && c > d ) a != b || c <= d

Programarea calculatoarelor i 23
limbaje de programare I
Evaluri condiionale
Evaluarea expresiilor logice se face de la
stnga la dreapta, aceasta oprindu-se atunci
cnd este cunoscut valoarea ntregii
expresii
ntrebarea care se pune este cum poate
calculatorul s tie dac valoarea unei
expresii este true sau false dac nu a
evaluat-o pn la capt

Programarea calculatoarelor i 24
limbaje de programare I
Evaluri condiionale
O operaie AND este true dac ambii
operanzi sunt true
Exemplu
Dac n expresia
i == 1 && j > 2
variabila i are valoarea 10, subexpresia din
stnga va fi false, deci expresia nu mai poate
avea dect valoarea false
Evaluarea unei expresii OR se oprete cnd
una dintre subexpresii este true, deci
rezultatul este true

Programarea calculatoarelor i 25
limbaje de programare I
Precedena operatorilor
Regulile de preceden se aplic i operatorilor logici
i relaionali
Parantezele rotunde au prioritate asupra oricrei
operaii
Cea mai nalt preceden
( )
!
* / %
+ -
< <= > >=
== !=
&&
||
=
Cea mai sczut preceden

Programarea calculatoarelor i 26
limbaje de programare I
Operatori relaionali pentru tipuri
reale
Operatorii relaionali pot fi folosii
pentru orice tipuri de dat
Ca regul general, nu vom studia
egalitatea a dou numere reale
pentru c, datorit micilor erori care
apar la calculele cu numere reale,
dou astfel de valori nu sunt
ntotdeauna egale

Programarea calculatoarelor i 27
limbaje de programare I
Operatori relaionali pentru tipuri
reale
Exemplu
float oTreime, x;
oTreime = 1.1 / 3.0;
x = oTreime + oTreime + oTreime;
Ne ateptm ca x s aib valoarea 1.1, dar probabil
c nu va fi aa
Prima asignare va stoca n variabila oTreime o
aproximare lui 1/3, probabil 0.366667
Cea de-a doua asignare va stoca in variabila x o
valoare egal cu 3*0.366667
Dac vom compara x cu 1.1 rezultatul va fi false
Diferena dintre valorile lui x i 1.1 este un numr
foarte mic, de exemplu 2.38419e-008

Programarea calculatoarelor i 28
limbaje de programare I
Operatori relaionali pentru tipuri
reale
n loc s testm egalitatea, putem
considera c, dac diferena dintre
cele dou numere este foarte mic,
putem considera c numerele sunt
egale
Putem nlocui testul de egalitate cu
fabs(x-1.1) < 0.00001

Programarea calculatoarelor i 29
limbaje de programare I
Sumar
1. Ordinea de execuie a intruciunilor
2. Condiii i expresii logice
3. Instruciunea if
4. Testarea strii stream-urilor de
intrare / ieire
5. Proiectarea orientat pe obiecte
Abstractizarea

Programarea calculatoarelor i 30
limbaje de programare I
Instruciunea if
Vom vedea acum cum putem afecta
fluxul secvenial al programului
Instruciunea if permite ramificarea
fluxului normal
Putem pune o ntrebare i n funcie
de condiiile existente putem realiza o
aciune sau alta

Programarea calculatoarelor i 31
limbaje de programare I
Instruciunea if
Structura IF-THEN-ELSE
n C++ instruciunea if poate fi
folosit n dou variante
forma IF-THEN-ELSE
forma IF-THEN
Sintaxa formei IF-THEN-ELSE este
if(expresie)
Instruciunea 1A
else
Instruciunea 1B

Programarea calculatoarelor i 32
limbaje de programare I
Instruciunea if
Structura IF-THEN-ELSE
Expresia din paranteze poate avea
orice tip simplu de dat
Aproape ntotdeauna aceasta va fi o
expresie logic
Dac valoarea expresiei este nenul
sau true, calculatorul execut
Instruciunea 1A
Dac valoarea expresiei este 0 sau
false, se execut Instruciunea 1B

Programarea calculatoarelor i 33
limbaje de programare I
Instruciunea if
Structura IF-THEN-ELSE
Instruciunea 1A se numete clauza then
Instruciunea 1B se numete clauza else
De notat c instruciunea if folosete doar
cuvintele rezervate if i else, chiar dac structura
se numete IF-THEN-ELSE
if (expresie)
false true
Instruciunea 1A

Instruciunea 1B

Instruciunea 2

Programarea calculatoarelor i 34
limbaje de programare I
Instruciunea if
Structura IF-THEN-ELSE
Exemplu
if(oreLucrate <= 40)
plata = sumaPeOra * oreLucrate;
else
plata = sumaPeOra *
(40.0 + (oreLucrate 40.0) * 1.5);
cout << plata;
n limbaj natural, aceast instruciune spune
urmtorul lucru:
Dac numrul de ore lucrate este mai mic sau egal
dect 40, atunci calculeaz suma obinuit de plat i
apoi treci la instruciunea de tiprire. Dac numrul
de ore lucrare este mai mare dect 40, atunci
calculeaz suma normal i suma suplimentar , apoi
treci la instruciunea de tiprire.

Programarea calculatoarelor i 35
limbaje de programare I
Instruciunea if
Blocuri
Pentru a evita mprirea la zero ntr-o expresie, s
presupunem c atunci cnd numitorul este egal cu 0
facem dou lucruri
tiprim un mesaj de eroare
ncrcm valoarea 9999 n variabila rezultat
Trebuie, aadar, s realizm dou instruciuni pe aceeai
ramur, ns sintaxa instruciunii if ne limiteaz la una
singur
Orice compilator C++ trateaz blocul
{
...
}
ca o singur instruciune
Folosind o pereche de acolade pentru a ncadra secvena
de instruciuni, instruciunile vor deveni un singur bloc

Programarea calculatoarelor i 36
limbaje de programare I
Instruciunea if
Blocuri
Exemplu
if(numitor != 0)
rezultat = numarator / numitor;
else
{
cout << Impartirea la 0 nu este permisa.
<< endl;
rezultat = 9999;
}

Programarea calculatoarelor i 37
limbaje de programare I
Instruciunea if
Blocuri
Exemplu
if(numitor != 0)
{
rezultat = numarator / numitor;
cout << Impartirea este realizata corect.
<< endl;
}
else
{
cout << Impartirea la 0 nu este permisa.
<< endl;
rezultat = 9999;
}

Programarea calculatoarelor i 38
limbaje de programare I
Instruciunea if
Forma IF-THEN
Uneori dorim s realizm o aciune
cnd se ndeplinete o condiie, dar
s nu se ntmple nimic atunci cnd
condiia este fals
Putem lsa ramura else vid
Exemplu
if(a <= b)
c = 20;
else
;

Programarea calculatoarelor i 39
limbaje de programare I
Instruciunea if
Forma IF-THEN
Putem s nu scriem deloc ramura else
dac aceasta este vid
Ajungem, astfel, la forma IF-THEN:
if(Expresie)
Instruciune
Putem rescrie instruciunea din
exemplul anterior astfel:
if(a <= b)
c = 20;

Programarea calculatoarelor i 40
limbaje de programare I
Instruciunea if
Forma IF-THEN
Ramura din IF-THEN poate fi un bloc
de instruciuni
Exemplu
S presupunem c avem de completat un
formular pentru efectuarea unei pli
Conform instruciunilor, linia 23 din
formular trebuie sczut din linia 17, iar
rezultatul trebuie trecut pe linia 24
Dac rezultatul este negativ, pe linia 24 se
trece rezultatul 0 i se bifeaz csua 24A

Programarea calculatoarelor i 41
limbaje de programare I
Instruciunea if
Forma IF-THEN
Exemplu (continuare)
rezultat = linia17 linia23;
if( rezultat < 0.0 )
{
cout << Bifeaza casuta 24A << endl;
rezultat = 0.0;
}
linia24 = rezultat;

Programarea calculatoarelor i 42
limbaje de programare I
Instruciunea if
Forma IF-THEN
Dac omitem parantezele, clauza then este format
dintr-o singur instruciune
Exemplu
rezultat = linia17 linia23;
if( rezultat < 0.0 )
cout << Bifeaza casuta 24A << endl;
rezultat = 0.0;
linia24 = rezultat;
Dac rezultatul este negativ, calculatorul execut
instruciunea de afiare, seteaz rezultatul cu 0 i apoi
l pstreaz n linia24
Dac rezultatul este pozitiv, calculatorul ignor clauza
then i execut urmtoarea instruciune dup
instruciunea if i rezultatul este 0
Alinierea instruciunilor nu influeneaz n niciun fel
compilatorul

Programarea calculatoarelor i 43
limbaje de programare I
Instruciuni if imbricate
Nu exist restricii asupra tipului de
instruciuni pe care le poate conine o
ramur a unui if
O ramur a unui if poate conine un alt if
Cnd folosim o astfel de construcie,
spunem c am creat o structur de if
imbricat
IF azi este smbt sau duminic
IF plou
Rmi n
cas
ELSE
Iei la
ELSE plimbare
Mergi la coal

Programarea calculatoarelor i 44
limbaje de programare I
Instruciuni if imbricate
Exemplu
Pentru a afia numele unei zile din sptmn putem
folosi o serie de instruciuni if neimbricate
if(zi == 1)
cout << Luni;
if(zi == 2)
cout << Marti;
if(zi == 3)
cout << Miercuri;
if(zi == 4)
cout << Joi;
if(zi == 5)
cout << Vineri;
if(zi == 6)
cout << Sambata;
if(zi == 7)
cout << Duminica;
Programarea calculatoarelor i 45
limbaje de programare I
Instruciuni if imbricate
Exemplu (continuare)
Acest cod poate fi rescris cu instruciuni if imbricate
if(zi == 1)
cout << Luni;
else
if(zi == 2)
cout << Marti;
else
if(zi == 3)
cout << Miercuri;
else
if(zi == 4)
cout << Joi;
else
if(zi == 5)
cout << Vineri;
else
if(zi == 6)
cout << Sambata;
else
if(zi == 7)
cout << Duminica;

Programarea calculatoarelor i 46
limbaje de programare I
Instruciuni if imbricate
Este mult mai eficient aceast variant
pentru c implic mai puine comparaii
Structura care implementeaz
ramificarea multipl se numete IF-
THEN-ELSE-IF
Putem realinia structura de mai sus
pentru a evita deplasarea continu spre
dreapta datorit alinierilor convenite

Programarea calculatoarelor i 47
limbaje de programare I
Instruciuni if imbricate
Exemplu
if(zi == 1)
cout << Luni;
else if(zi == 2)
cout << Marti;
else if(zi == 3)
cout << Miercuri;
else if(zi == 4)
cout << Joi;
else if(zi == 5)
cout << Vineri;
else if(zi == 6)
cout << Sambata;
else if(zi == 7)
cout << Duminica;

Programarea calculatoarelor i 48
limbaje de programare I
Folosirea greit a lui else
La folosirea instruciunilor if imbricate pot
aprea confuzii n legtur cu perechile if-
else: crui if i aparine un else?
S presupunem c dac nota unui student
este mai mic dect 5 dorim s tiprim
Respins, dac nota lui este ntre 5 i 6 s
tiprim Admis, iar dac nota este mai
mare dect 6 s nu tiprim nimic

Programarea calculatoarelor i 49
limbaje de programare I
Folosirea greit a lui else
Putem coda aceast problem astfel:
if(media < 6.0)
if(media < 5.0)
cout << "Respins" << endl;
else
cout << "Admis" << endl;
Cum tim crui if i aparine un else?
n absena acoladelor, un else este asociat
ntotdeauna instruciunii if cea mai apropiat
care nu are nc un else drept pereche
Obinuim s aliniem codul astfel nct s
reflectm aceast mperechere

Programarea calculatoarelor i 50
limbaje de programare I
Folosirea greit a lui else
Ne propunem s rescriem codul de mai sus n aa fel nct
instruciunea else s fie asociat primului if
Variant greit:
if(media < 6.0)
if(media < 5.0)
cout << "Respins" << endl;
else
cout << "Admis" << endl;
Soluia:
if(media < 6.0)
{
if(media < 5.0)
cout << "Respins" << endl;
}
else
cout << "Admis" << endl;

Programarea calculatoarelor i 51
limbaje de programare I
Sumar
1. Ordinea de execuie a intruciunilor
2. Condiii i expresii logice
3. Instruciunea if
4. Testarea strii stream-urilor de
intrare / ieire
5. Proiectarea orientat pe obiecte
Abstractizarea

Programarea calculatoarelor i 52
limbaje de programare I
Testarea strii stream-urilor de
intrare / ieire
Un stream poate intra in fail state n
urmtoarele situaii:
date de intrare invalide
tentativa de a citi un fiier dincolo de EOF
intenia de a deschide pentru citire un fiier
inexistent
C++ ofer un mecanism de a determina
cnd un stream este in fail state
n expresii logice se poate folosi efectiv numele
stream-ului ca i cum ar fi o variabil boolean

Programarea calculatoarelor i 53
limbaje de programare I
Testarea strii stream-urilor de
intrare / ieire
Exemple
if(cin)
...

if(!inFile)
...
La testarea strii unui stream rezultatul
poate fi
Nenul - ultima operaie I/O asupra stream-ului a
avut succes
Nul - ultima operaie I/O asupra stream-ului a
euat

Programarea calculatoarelor i 54
limbaje de programare I
Sumar
1. Ordinea de execuie a intruciunilor
2. Condiii i expresii logice
3. Instruciunea if
4. Testarea strii stream-urilor de
intrare / ieire
5. Proiectarea orientat pe obiecte
Abstractizarea

Programarea calculatoarelor i 55
limbaje de programare I
Proiectarea orientat pe obiecte
Proiectarea este etapa care trebuie
parcurs n procesul de dezvoltare a unui
proiect cu scopul de a depi bariera pe
care o impune complexitatea sa
O metod de proiectare ne ajut s
mprim proiectul n module de dimensiuni
mai mici, care pot fi rezolvare mai uor
Proiectarea orientat pe obiecte este una
dintre metodele de proiectare a aplicaiilor

Programarea calculatoarelor i 56
limbaje de programare I
Proiectarea orientat pe obiecte
n proiectarea orientat pe obiecte
problemele sunt modelate prin obiecte
Acestea se caracterizeaz prin
comportament, adic realizeaz aciuni i
prin stri care se modific prin aciuni
Exemplu
Un autoturism poate fi tratat ca un obiect
El are
o stare n care prespunem c motorul este oprit
un comportament - pornirea autoturismului - care
i schimb starea din motor oprit n motor pornit

Programarea calculatoarelor i 57
limbaje de programare I
Proiectarea orientat pe obiecte
Abstractizarea
n proiectarea orientat pe obiecte,
complexitatea problemelor este
tratat prin abstractizare
Abstractizarea nseamn eliminarea
elementelor nerelevante i
amplificarea elementelor eseniale
Un exemplu de abstractizare este
descrierea funcionrii unui
autoturism

Programarea calculatoarelor i 58
limbaje de programare I
Proiectarea orientat pe obiecte
Abstractizarea
Dorim s nvm pe cineva s conduc autoturismul
folosindu-ne de abstractizare
Amplificm elementele eseniale nvndu-l pe elevul
nostru cum se pornete maina i cum se mnuiete
volanul
Eliminm detaliile legate de funcionarea motorului
Nu i vom spune c
pentru ca maina s funcioneze, combustibilul este
pompat din rezervor ctre motor
n motor, printr-o scnteie combustibilul se aprinde
are loc o mic explozie care mpinge un piston
acesta, la rndul su, face ca motorul s se mite

Programarea calculatoarelor i 59
limbaje de programare I
Proiectarea orientat pe obiecte
Abstractizarea
Problemele au, n general, mai multe nivele
de abstractizare
Putem discuta despre un autoturism din
punctul de vedere al oferului, plasndu-ne
la un nivel nalt de abstractizare
Atunci cnd vom discuta cu un mecanic
auto, acesta va avea nevoie de informaii
detaliate despre
funcionarea motorului
instalaiei electrice
Atunci ne vom afla la un nivel mai sczut
de abstractizare
Programarea calculatoarelor i 60
limbaje de programare I
Proiectarea orientat pe obiecte
Abstractizarea
Se poate vorbi despre abstractizare i la
nivelul mecanicului auto
Mecanicul testeaz sau ncarc bateria
automobilului fr s se uite n interiorul
acesteia, acolo unde au loc reacii chimice
complexe
Pe de alt parte, un proiectant al bateriei
este interesat de aceste detalii, dar nu i de
modul n care curentul generat de baterie
face ca aparatul de radio s funcioneze
Programarea calculatoarelor i 61
limbaje de programare I
Proiectarea orientat pe obiecte
Abstractizarea
Putem analiza detalii cum ar fi
proiectarea bateriei sau a aparatului
de radio
Analiza se face pe module care pot fi
mai uor de descris
Prin abstractizare i ignorarea
detaliilor putem s privim ntregul
autoturism ca un modul

Programarea calculatoarelor i 62
limbaje de programare I

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