Test Oop 03 07 2012
Test Oop 03 07 2012
2013
Tipuri
1
2
3
4
char *a = "a1", *b = "b2";
char *c[] = { a, b };
char* &d = *(c + 1);
int x = d[1] - '0';
Intrebare 1 Despre instructiunile C++ de mai sus putem spune ca:
(a) Cmpilatrul raprtea!a erare in linia 2.
(b) Cmpilatrul raprtea!a erare in linia 3.
(c) Cmpilatrul raprtea!a erare in linia ".
(d) Instructiunile sunt crecte si # ia $alarea 2.
%stenire 1
2
3
"
5
&
'
(
9
10
11
12
13
)include *istream+
class , -
public:
,() -std::cut ** .,()./0
$irtual $id print() -std::cut ** .,./ 0
$irtual 1,() -std::cut ** .1,()./0
0/
class D: public , -
public:
D() -std::cut ** .D()./0
$irtual $id print() - std::cut ** .D./0
$irtual 1D() -std::cut ** .1D()./0
0/
1"
15
1&
1'
1(
int main() -
, b223/
b213 4 D()/
b213.print()/
0
Intrebare 2 Despre instructiunile C++ de mai sus putem spune ca:
(a) Cmpilatrul raprtea!a erare in linia 1&.
(b) 5r6ramul este crect sintactic si a7isea!a .B()B()B()D()~D()~B()D~B()~B()..
(c) 5r6ramul este crect sintactic si a7isea!a .B()B()B()D()~D()~B()B~B()~B()..
(d) 5r6ramul este crect sintactic si a7isea!a .B()B()D()~D()B~B()~B()..
%stenire 1
2
3
"
5
&
'
(
9
10
11
12
13
)include *istream+
class , -
public:
,() -std::cut ** .,()./0
$irtual $id print() -std::cut ** .,./ 0
$irtual 1,() -std::cut ** .1,()./0
0/
class D: public , -
public:
D() -std::cut ** .D()./0
$id print() - std::cut ** .D./0
$irtual 1D() -std::cut ** .1D()./0
0/
1"
15
1&
1'
1(
19
20
int main() -
,8 b23 4 -ne9 ,(), ne9 D()0/
b203:+print()/
b213:+print()/
delete b203/
delete b213/
0
Intrebare 3 Despre instructiunile C++ de mai sus putem spune ca:
(a) Cmpilatrul raprtea!a erare in linia 15.
(b) 5r6ramul este crect sintactic si a7isea!a .B()B()D()BB~B()~D()~B()..
(c) 5r6ramul este crect sintactic si a7isea!a .B()B()D()BD~B()~D()~B()..
(d) 5r6ramul este crect sintactic si a7isea!a .B()D()BB~B()~D()..
;rri 1
2
3
"
5
&
'
(
)include *istream+
usin6 namespace std/
class ; -
public:
;() - cut ** .;()./ 0
;(cnst ;< e) -
cut ** .;(cnst ;<)./
0
11
12
13
1"
15
1&
1'
1(
int 7un(int a23, int n) -
i7 (n * 0) t=r9 ;()/
else i7 (n 44 0) t=r9 ne9 ;()/
return 0/
0
int main() -
int $23 4 - 0/
tr> -
9
10
1;() - cut ** .1;()./ 0
0/
19
20
21
22
23
cut ** 7un($, si!e7($)?si!e7(int))/
0 catc= (;< e) -
0 catc=(;8 e) - 0
return 0/
0
Intrebare " Despre pr6ramul C++ de mai sus putem spune ca:
(a) Cmpilatrul raprtea!a erare in linia 12.
(b) Cmpilatrul raprtea!a erare in linia 13.
(c) 5r6ramul este crect sintactic si a7isea!a .;()1;()..
(d) 5r6ramul este crect sintactic si a7isea!a .;()..
Tipuri class Inte6er - ... 0
class @tacA - ... 0
5rblema 5 De7initi clasa Integer ce incapsulea!a un intre6 (int) si clasa Stack cu repre!entare simplu
inlantuita, ast7el incat urmatarea sec$enta C++ sa 7ie crecta sintactic si sa tipareasca 2 si api
1 in urma e#ecutiei, iar spatiul de memrie alcat sa 7ie autmat distrus:
)include *istream+
- ??blc de instructiuni, plasat unde$a in pr6ram
@tacA stacA/
stacA.pus=(Inte6er(1))/
stacA.pus= (Inte6er(2))/
9=ile (BstacA.empt>())
cut ** stacA.pp()/
0
Dia6rama
C%D
5rblema & @crieti un pr6ram care simulea!a masina ce prepara bauturi, ast7el:
(a) Tate bauturile (Beverage) au descriere (description : sir de caractere) si au un pret,
returnat de metda price(), metda pur abstracta in clasa Beverage. %etda print() din aceasta
clasa $a tipari pe iesirea standard descrierea bauturii si pretul ei.
(b) Coffee si Tea sunt dua bauturi cncrete pe care masina le pate elibera. Eceste clase $r
initiali!a descrierea bauturii $ia cnstructrul din clasa de ba!a si $r de7ini preturile bauturilr
cu $alrile 2.5, respecti$ 1.5.
(c) %asina permite adau6area de prtii de 7risca (Cream) la bautura cncreta (beverage).
Fiecare prtie de 7risca are prpriul pret (0.5). Tiparirea unei bauturi la care s:a adau6at prtie
de 7risca inseamna tiparirea bauturii (beverage.print()) si api a prtiei de 7risca adau6ate deci
metda print() din clasa Cream $a 7i suprascrisa ast7el.
(e) Da lansarea in e#ecutie se crea!a un biect BeverageMachine cu aGutrul caruia se $a simula
eliberarea urmatarelr bauturi, prin apelul metdei prepare cu urmatarea semni7icatie a
parametrilr beverageType, creamCount
.Tea., 0 : inseamna ceai 7ara 7risca
.C77ee., 1 : inseamna ca7ea cu prtie de 7risca
.C77ee., 2 : inseamna ca7ea cu dua prtii de 7risca
%etda prepare $a a7isa bautura preparata, inclu!and pretul bauturii. Implementati crect
6estiunea memriei.