Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

60
Anul I Informatică (valabil şi pentru Anul II Matematică-Informatică) iunie 2005 Proiectare şi programare orientate pe obiecte Examen scris I. Spuneţi de câte ori se execut ă fiecare constructor în programul de mai jos şi în ce ordine. # i ncl ud e < i ost r eam . h> cl ass cl s1 { prot ected: i nt x; publ i c: cl s1( ) { x= 13; } }; cl ass cl s2 : publ i c cl s1 { i nt y; publ i c: cl s2( ) { y= 15; } int f(cl s2 ob) { r et ur n ( ob. x+ob. y); } }; int mai n() { cl s2 ob ; cout << ob . f ( ob) ; r et ur n 0; } II. Descrieţi pe scurt diferenţa dintre funcţiile care returnează valoare şi cele care returnează referinţă. III. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spune ţi ce afişează, altfel, spuneţi de ce nu este corect. #i ncl ude <i ost r eam . h> cl ass cl s1 { i nt x; publ i c: cl s1( ) { x= 13; } i nt g( ) { stat i c i nt i ; i ++; r et ur n ( i + x) ; } }; cl ass cl s2 { i nt x; publ i c: cl s2( ) { x=27; } cl s1& f ( ) { stat i c cl s1 ob; ret urn ob; } }; i nt mai n( ) { cl s2 ob; cout <<ob. f (). g(); r et ur n 0; }

description

Subiecte din anii anteriori pentru examenul de programare orientata obiect.

Transcript of Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

Page 1: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 1/60

Anul I Informatică (valabil şi pentru Anul II Matematică-Informatică) iunie 2005

Proiectare şi programare orientate pe obiecte

Examen scris

I. Spuneţi de câte ori se execută fiecare constructor în programul de mai jos şi înce ordine.

#i ncl ude <i ost r eam. h>cl ass cl s1{ pr ot ect ed: i nt x;

publ i c: cl s1( ) { x=13; } };cl ass cl s2: publ i c cl s1{ i nt y;

publ i c: cl s2( ) { y=15; }i nt f ( cl s2 ob) { r et ur n ( ob. x+ob. y) ; } };

i nt mai n( ){ cl s2 ob; cout <<ob. f ( ob) ;

r et ur n 0;} 

II. Descrieţi pe scurt diferenţa dintre funcţiile care returnează valoare şi cele carereturnează referinţă.

III. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ceafişează, altfel, spuneţi de ce nu este corect.

#i ncl ude <i ost r eam. h>cl ass cl s1

{ i nt x;publ i c: cl s1( ) { x=13; }

i nt g( ) { stati c i nt i ; i ++; r et ur n ( i +x) ; } };cl ass cl s2

{ i nt x;publ i c: cl s2( ) { x=27; }

cl s1& f ( ) { st at i c cl s1 ob; r et ur n ob; } };i nt mai n( ){ cl s2 ob;

cout <<ob. f ( ) . g( ) ;r et ur n 0;

}

Page 2: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 2/60

IV. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ceafişează, altfel, spuneţi de ce nu este corect.

#i ncl ude <i ost r eam. h>cl ass cl s1{ pr ot ect ed: i nt x;

publ i c: cl s1( i nt i =10) { x=i ; }i nt get _x() { r et ur n x; } };

cl ass cl s2: c l s1{ publ i c: cl s2( i nt i ) : cl s1( i ) {} };i nt mai n( ){ cl s d( 37) ;

cout <<d. get_x( ) ;r et ur n 0;

}

V. Descrieţi pe scurt cum se pot defini funcţii de conversie între tipuri (clase).

VI. Cum trebuie definită variabila n din clasa de mai jos, dacă dorim ca ea să contorizeze numărul tuturor obiectelor care apar ţin clasei cl s la un moment dat.

cl ass cl s{ i nt n;

publ i c: cl s( ) { n ++; }~cl s( ) { n - - ; } };

Page 3: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 3/60

VII. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ceafişează, altfel, spuneţi de ce nu este corect.

#i ncl ude <i ost r eam. h>cl ass cl s{ i nt x;

publ i c: cl s( i nt y) {x=y; }i nt oper at or *( cl s a, cl s b) {r et ur n ( a. x*b. x) ; } };

i nt mai n( ){ cl s m( 100) , n( 15) ;

cout <<m*n;r et ur n 0;

}

VIII. Spuneţi care este diferenţa dintre clasa generică (template) şi clasa abstractă şi ]nce situaţii se foloseşte fiecare dintre ele.

IX. Fiind date următoarele tipuri de clase:

cl ass B { / * i nstr ucti uni */ };cl ass D1: vi r t ual B { / * i nstr ucti uni */ };cl ass D2: vi r t ual B { / * i nstr ucti uni */ };cl ass D3: B { / * i nst r ucti uni */ };cl ass D4: pr i vat e B { / * i nst r ucti uni */ };

cl ass D5: vi r t ual publ i c B { / * i nstr ucti uni */ };cl ass M1: D1, publ i c D2, D3, pr i vat e D4, vi r t ual D5{ / * i nstr uct i uni * / };cl ass M2: D1, D2, vi r t ual D3, vi r t ual D4, vi r t ual D5{ / * i nstr uct i uni * / };

spuneţi de câte ori este moştenită clasa B în clasa M1. Dar în clasa M2 ?Justificaţi. 

Page 4: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 4/60

X. Spuneţi care dintre declaraţiile funcţiei mai n( ) sunt corecte în programul de mai jos. Justificaţi.

#i ncl ude <i ost r eam. h>cl ass B1 { publ i c: i nt x; };cl ass B2 { i nt y; };cl ass B3 { publ i c: i nt z; };cl ass B4 { publ i c: i nt t ; };cl ass D: pr i vat e B1, pr ot ect ed B2, publ i c B3, B4{ i nt u; };i nt mai n( ){ D d;

cout <<d. u;cout <<d. x;cout <<d. y;cout <<d. z;cout<<d. t ;r et ur n 0;

}

XI. Descrieţi pe scurt diferenţa dintre transferul prin valoare şi transferul prinreferinţă al parametrilor în cazul apelului unei funcţii.

XII. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ceafişează, în caz negativ spuneţi de ce nu este corect.

#i ncl ude <i ost r eam. h>cl ass cl s{ i nt vi ;

publ i c: cl s( i nt v=37) { vi =v; }f r i end i nt & f ( cl s ) ; };

i nt & f ( cl s c) { return c. vi ; }i nt mai n( ){ const cl s d( 15) ;

f ( d) =8;cout <<f ( d) ;r et ur n 0;

}

Page 5: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 5/60

XIII. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ceafişează, altfel, spuneţi de ce nu este corect.

#i ncl ude <i ost r eam. h>cl ass cl s1{ publ i c: i nt x;

cl s1( i nt i =20) { x=i ; } };cl ass cl s2{ publ i c: i nt y;

cl s2( i nt i =30) { y=i ; }oper at or cl s1( ) { cl s1 ob; ob. x=y; r et ur n ob; } };

cl s1 f ( cl s1 ob){ ob. x++;

r etur n ob;}i nt mai n( ){ cl s1 ob1; f ( ob1) ; cout <<ob1. x;

cl s2 ob2; f ( ob2) ; cout <<ob2. y;r et ur n 0;

}

XIV. Spuneţi pe scurt prin ce se caracterizează o metodă statică a unei clase.

XV. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ceafişează, altfel, spuneţi de ce nu este corect.

#i ncl ude <i ost r eam. h>

cl ass cl s{ i nt x;

publ i c: cl s( i nt i =25) { x=i ; }i nt f ( ) ; };

i nt cl s : : f ( ) { return x; }i nt mai n( ){ const cl s d( 15) ;

cout <<d. f ( ) ;r et ur n 0;

}

Page 6: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 6/60

XVI. Spuneţi de câte ori se apelează destructorul clasei cl s în programul de mai jos.Justificaţi.#i ncl ude<i ost r eam. h>cl ass cl s{ publ i c: i nt x;

cl s( i nt i =0) { x=i ; } };

cl s f ( cl s c){ c. x++;

r et ur n c;}i nt mai n( ){ cl s r ( 10) ;

c l s s=f ( r) ;r et ur n 0;

}

XVII. Spuneţi care este diferenţa dintre incluziunea de clase şi moştenirea de clase şicând se foloseşte fiecare metodă.

XVIII. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ceafişează, în caz negativ spuneţi de ce nu este corect.

#i ncl ude <i ost r eam. h>t empl ate <cl ass t i p>

t i p di f ( t i p x, t i p y){ r et ur n x- y;}unsi gned di f ( unsi gned x, unsi gned y){ r eturn x>=y?x- y: y- x;}i nt mai n( ){ unsi gned i =7, j =8;

cout <<di f ( i , j ) ;r et ur n 0;

Page 7: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 7/60

Anul I Informatică iunie 2006Proiectare şi programare orientate pe obiecte

Examen scris

I. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, precizaţi exact constructorii

care se execută şi în ce ordine. În caz negativ spuneţi de ce nu este corect.

#i ncl ude<i ost r eam. h>cl ass c l s1{ publ i c: i nt x;

cl s1( i nt i =13) { x=i ; } };cl ass c l s2: vi r t ual publ i c c l s1{ publ i c: cl s2( i nt i =15) { x=i ; } };cl ass c l s3: vi r t ual publ i c c l s1{ publ i c: cl s3( i nt i =17) { x=i ; } };cl ass cl s4: publ i c cl s1{ publ i c: cl s4( i nt i =19) { x=i ; } };cl ass cl s5: publ i c cl s2, publ i c cl s3, publ i c cl s4

{ publ i c: i nt y;cl s5( i nt i , i nt j ) : cl s4( i ) , cl s2( j ) { y=i +j ; }cl s5( cl s5& ob) ) { y=- ob. y; }};

i nt mai n( ){ cl s5 ob1( - 9, 3) , ob2=ob1;

cout <<ob2. y;r et ur n 0;

}

II. Descrieţi pe scurt constructorul de copiere şi situaţiile în care acesta este folosit..

III. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ce afişează, în caznegativ spuneţi de ce nu este corect.

#i ncl ude<i ost r eam. h>cl ass c l s{ i nt x;

const i nt y;publ i c: cl s( i nt i , i nt j ) : x( i ) , y( j ) { }

i nt i mp( i nt , i nt ) const; };i nt i mp( i nt i , i nt j ) const{ x=i ; y=j ; r et ur n x+y; }i nt mai n( )

{ cl s ob( 5) ;cout <<ob. i mp( - 9, 8) ;r et ur n 0;

Page 8: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 8/60

IV. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ce afişează, în caznegativ spuneţi de ce nu este corect.

#i ncl ude <i ost r eam. h>cl ass B{ i nt a;

publ i c: B( i nt i =0) { a=i ; }

i nt get _a( ) { r et ur n a; } };cl ass D: pr i vat e B{ publ i c: D( i nt x=0) : B( x) {}

i nt get _a( ) { r et ur n B: : get _a( ) ; } };i nt mai n( ){ D d( - 89) ;

cout <<d. get_a( ) ;r et ur n 0;

}

V. Descrieţi pe scurt ce reprezintă obiectul implicit al unei funcţii.

VI. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ce afişează, în caznegativ spuneţi de ce nu este corect.

#i ncl ude<i ost r eam. h>cl ass B{ pr ot ect ed: i nt x;

B( i nt i =10) { x=i ; }publ i c: vi r t ual B oper at or +( B ob) { B y(x+ob. x) ;

r et ur n y; } };cl ass D: publ i c B{ publ i c: D( i nt i =10) { x=i ; }

voi d operator=( B p) { x=p. x; }B operat or+( B ob) { B y( x+ob. x+1) ;

r et ur n y; }voi d af i sare( ) { cout <<x; } };

i nt mai n( ){ D p1( - 59) , p2( 32) , *p3=new D;

*p3=p1+p2;p3- >af i sar e( ) ;r et ur n 0;

}

Page 9: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 9/60

VII. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ce afişează, în caznegativ spuneţi de ce nu este corect.

#i ncl ude<i ost r eam. h>cl ass c l s{ publ i c: i nt sa;

cl s( i nt s=0) { sa=s; }

oper at or i nt ( ) { r et ur n sa; }i nt f ( i nt c) { ret ur n ( sa*( 1+c/ 100) ) ; } };

i nt mai n( ){ cl s p( 37) ;

cout <<p. f ( p) ;r et ur n 0;

}

VIII. Descrieţi diferenţa dintre un pointer şi o referinţă.

IX. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ce afişează, în caznegativ spuneţi de ce nu este corect.

#i ncl ude<i ost r eam. h>cl ass B{ publ i c: i nt x;

B( i nt i =0) { x=i ; }vi r t ual B aduna( B ob) { r et ur n( x+ob. x) ; }B mi nus( ) { r et ur n( 1- x); }voi d af i sare( ) { cout <<x; } };

cl ass D: publ i c B{ publ i c: D( i nt i =0) { x=i ; }

B aduna( B ob) { return(x+ob. x+1) ; } };i nt mai n( ){ B *p1, *p2;

p1=new D( 138) ;p2=new B( - 37) ;*p2=p2- >aduna( *p1) ;*p1=p2- >mi nus( ) ;p1- >af i sar e( ) ;r et ur n 0;

Page 10: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 10/60

X. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ce afişează, în caznegativ spuneţi de ce nu este corect.

#i ncl ude <i ost r eam. h>t empl at e <cl ass t i p>cl ass c l s{ t i p z;

publ i c: cl s ( t i p i ) { z=i ; }t i p operator - ( cl s) ; };

t empl at e <cl ass t i p>t i p cl s<t i p>: : oper at or - ( cl s<t i p> a){ r et ur n z- a. z;}t empl at e <cl ass t i p>t i p di f ( t i p x, t i p y){ r et ur n x- y;}i nt di f ( i nt x, i nt y){ r etur n x>=y?x- y: y- x;}

i nt mai n( ){ cl s<i nt > i =3; cl s<f l oat> j =4;

cout <<di f ( i , j ) ;r et ur n 0;

XI. Descrieţi pe scurt cum puteţi prelua o dată prin incluziune şi a doua oar ă prin moştenire oclasă  numar într-o clasă  l i s t a care descrie liste nevide de dimensiune variabilă deelemente de tip numar .

XII. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ce afişează, în caznegativ spuneţi de ce nu este corect.

#i ncl ude<i ost r eam. h>cl ass c l s{ stat i c i nt x;

publ i c: cl s( i nt i =25) { x=i ; }f r i end i nt & f ( cl s ) ; };

i nt cl s: : x=- 13;i nt & f ( c l s c) { return c. x; }i nt mai n( )

{ cl s d( 15) ;cout <<f ( d) ;r et ur n 0;

}

Page 11: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 11/60

XIII. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ce afişează, în caznegativ spuneţi de ce nu este corect.

#i ncl ude<i ost r eam. h>cl ass c l s{ i nt v, nr ;

publ i c : cl s( i nt i ) { nr =i ; v=new i nt [ i ] ; }

f r i end i nt & oper at or [ ] ( i nt ) ;f r i end ost r eam& operator<<( ost r eam&, cl s) ; };

i nt & oper at or [ ] ( cl s& x, i nt i ){ return x. v[ i ] ; }ost r eam& operat or<<( ost r eam& o, cl s x){ f or ( i nt i =0; i <x. nr ; i ++) cout <<x. v[ i ] <<” ”; r et ur n o; }i nt mai n( ){ cl s x(10) ;

x[ 5]=7;cout <<x;r et ur n 0;  

XIV. Descrieţi pe scurt metoda de identificare a tipului în timpul rulării (RTTI).

XV. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ce afişează, în caznegativ spuneţi de ce nu este corect.

#i ncl ude<i ost r eam. h>cl ass c l s{ stat i c i nt i ;

i nt j ;publ i c: cl s( i nt x=7) { j =x; }

st at i c i nt i mp( i nt k) { cl s a; r et ur n i +k+a. j ; } };i nt cl s: : i ;i nt mai n( ){ i nt k=5;

cout <<cl s: : i mp( k) ;r et ur n 0;

Page 12: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 12/60

XVI. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ce afişează, în caznegativ spuneţi de ce nu este corect.

#i ncl ude<i ost r eam. h>cl ass c l s{ i nt x;

publ i c: cl s( i nt i =32) { x=i ; }

i nt f ( ) const; };i nt cl s: : f ( ) const { r et ur n x++; }voi d mai n( ){ const cl s d( - 15) ;

cout <<d. f ( ) ;}

XVII. Spuneţi dacă o variabilă constantă poate fi transmisă ca parametru al unei funcţii şi dacă da, în ce situaţii. Justificaţi.

XVIII. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ce afişează pentru ovaloare întreagă citită egală cu 7, în caz negativ spuneţi de ce nu este corect.

#i ncl ude <i ost r eam. h>f l oat f ( f l oat f ){ i f ( f ) throw f ;

r et ur n f / 2;}i nt mai n( ){ i nt x;

t r y{cout<<”Da- mi un numar i nt r eg: ”;ci n>>x;i f ( x) f ( x) ;el se t hr ow x;cout <<”Numar ul ”<<x<<” e bun! ”<<endl ;}cat ch ( i nt i ){ cout <<”Numar ul ”<<i <<” nu e bun! ”<<endl ;}r et ur n 0;

Page 13: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 13/60

Anul II Matematică-Informatică ianuarie 2007Proiectare şi programare orientate pe obiecte

Test scris (verificare)

I. Spuneţi de câte ori se apelează fiecare constructor în programul de mai jos şi în ce ordine.

cl ass c l s1{ pr ot ect ed: i nt x;

publ i c: cl s1( ) { x=13; } };cl ass cl s2: publ i c cl s1

{ pr ot ect ed: i nt y;publ i c: cl s2( ) { y=15; } };

cl ass cl s3: publ i c cl s2{ pr ot ected: i nt z;

publ i c: cl s3( ) { z=17; }i nt f ( cl s3 ob) { r et ur n ob. x+ob. y+ob. z; } };

i nt mai n( ){ cl s3 ob;

ob. f ( ob) ;r et ur n 0;}

II. Spuneţi ce reprezintă o funcţie virtuală şi în ce condiţii o funcţie virtuală defineşte o clasă abstractă.

III. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ce afişează, în caznegativ spuneţi de ce nu este corect.

#i ncl ude<i ost r eam. h>cl ass c l s{ i nt x;

publ i c: cl s( ) { x=23; }i nt get _x( ) { r et ur n x; } };

i nt mai n( ){ cl s *p1, *p2;

p1=new cl s;p2=( cl s*)mal l oc(si zeof ( cl s)) ;i nt x=p1- >get_x( ) +p2- >get _x( ) ;cout <<x;r et ur n 0;

}

Page 14: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 14/60

IV. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ce afişează, în caznegativ spuneţi de ce nu este corect.

#i ncl ude <i ost r eam. h>cl ass B{ i nt a;

B( i nt i =0) { a=i ; }

i nt get _a( ) { r et ur n a; } };cl ass D: pr ot ect ed B{ publ i c: D( i nt x=0) : B( x) {}

i nt get _a( ) { r et ur n B: : get _a( ) ; } };i nt mai n( ){ D d( - 89) ;

cout <<d. get_a( ) ;r et ur n 0;

}

V. Spuneţi pe scurt prin ce se caracterizează un câmp static al unei clase.

VI. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ce afişează, în caznegativ spuneţi de ce nu este corect.

#i ncl ude<i ost r eam. h>cl ass c l s1{ publ i c: i nt a;

cl s1( ) { a=7; } };cl ass c l s2

{ publ i c: i nt b;c l s2( i nt i ) { b=i ; } 

cl s2( cl s1& x) { b=x. a; } };i nt mai n( ){ cl s1 x;

cout <<x. a;cl s2 y( x) ;cout <<y. b;r et ur n 0;

}

Page 15: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 15/60

VII. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ce afişează, în caznegativ spuneţi de ce nu este corect.

#i ncl ude<i ost r eam. h>cl ass c l s{ publ i c: i nt sa;

cl s( i nt s=0) { sa=s; }

oper at or f l oat ( ) { r et ur n sa; } };i nt f ( f l oat c) { r et ur n ( c*(1+c/ 100) ) ; }i nt mai n( ){ cl s p( 35) ;

cout <<f ( p) ;r et ur n 0;

}

VIII. Spuneţi ce reprezintă o funcţie prietenă (friend) a unei clase.

IX. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ce afişează, în caznegativ spuneţi de ce nu este corect.

#i ncl ude<i ost r eam. h>cl ass B{ pr ot ect ed: i nt x;

publ i c: B( ) { x=78; } };cl ass D1: vi r t ual publ i c B{ publ i c: D1( ) { x=15; } };cl ass D2: vi r t ual publ i c B

{ publ i c: D2( ) { x=37; } };cl ass C: publ i c D2, publ i c D1{ publ i c: i nt get _x( ) { r et ur n x; } };i nt mai n( ){ C ob;

cout <<ob. get_x( ) ;r et ur n 0;

}

Page 16: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 16/60

X. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ce afişează, în caznegativ spuneţi de ce nu este corect.

#i ncl ude <i ost r eam. h>t empl at e <cl ass t i p>cl ass c l s{ t i p z;

publ i c: cl s ( t i p i ) { z=i ; }t i p oper at or - ( cl s a) { r et ur n z- a. z; }i nt operat or >=( cl s a) { r etur n z>=a. z; } };

t empl at e <cl ass t i p>t i p di f ( t i p x, t i p y){ r et ur n x- y;}i nt di f ( cl s<i nt > x, cl s<f l oat > y){ r etur n x>=y?x- y: y- x;}i nt mai n( ){ cl s<i nt > i =3; cl s<f l oat> j =4;

cout <<di f ( i , j ) ;

r et ur n 0;} 

XI. Spuneţi dacă o variabilă constantă poate fi transmisă ca parametru al unei funcţii şi dacă da, în ce situaţii. Justificaţi.

XII. Spuneţi de câte ori se apelează destructorul clasei cl s în programul de mai jos. Justificaţi.

cl ass c l s{ i nt x;publ i c: cl s( i nt i =0) { x=i ; }

cl s( cl s& ob) { x=ob. x; } };cl s& f ( cl s &c){ r et ur n c;}mai n( ){ cl s r ;

cl s s=r ;f ( f ( f ( s ) ) ) ;

}

Page 17: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 17/60

XIII. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ce afişează, în caznegativ spuneţi de ce nu este corect.

#i ncl ude<i ost r eam. h>cl ass B{ i nt x;

publ i c: B( i nt i =0) { x=i ; } };

cl ass D: publ i c B{ publ i c: D( ) : B( 15) {}

i nt f ( ) { r et ur n x; } };i nt mai n( ){ D d;

cout <<d. f ( ) ;r et ur n 0;

}

XIV. Descrieţi pe scurt ce reprezintă obiectul implicit al unei metode.

XV. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ce afişează, în caznegativ spuneţi de ce nu este corect.

#i ncl ude<i ost r eam. h>cl ass c l s{ stat i c i nt i ;

i nt j ;publ i c: cl s( i nt x=7) { j =x; }st at i c i nt i mp( i nt k) { cl s a; r et ur n i +k+a. j ; } };

i nt cl s: : i ;i nt mai n( ){ i nt k=5;

cout <<cl s: : i mp( k) ;r et ur n 0;

Page 18: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 18/60

XVI. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ce afişează, în caznegativ spuneţi de ce nu este corect.

#i ncl ude<i ost r eam. h>cl ass c l s{ i nt x;

publ i c: cl s( i nt i =32) { x=i ; }

i nt f ( ) const { r et ur n x++; } };voi d mai n( ){ const cl s d( - 15) ;

cout <<d. f ( ) ;}

XVII. Descrieţi pe scurt ce reguli verifică supraîncărcarea operatorilor.

XVIII. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ce afişează pentru ovaloare întreagă citită egală cu 7, în caz negativ spuneţi de ce nu este corect.

#i ncl ude <i ost r eam. h>f l oat f ( i nt y){ try

{ i f ( y%2) t hr ow y/ 2;}cat ch ( i nt i ){ i f ( i %2) t hr ow;

cout <<”Numar ul ”<<i <<” nu e bun! ”<<endl ;}r et ur n y/ 2;

}i nt mai n( ){ i nt x;

t r y{ cout<<”Da- mi un numar i nt r eg: ”;

ci n>>x;i f ( x) f ( x) ;cout <<”Numar ul ”<<x<<” nu e bun! ”<<endl ;

}cat ch ( i nt i ){ cout <<”Numar ul ”<<i <<” e bun! ”<<endl ;}r et ur n 0;

Page 19: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 19/60

An I Informatică iunie 2008Proiectare şi programare orientate pe obiecte

Examen scris

I.  SpuneŃi dacă programul de mai jos este corect. În caz afirmativ, spuneŃi ce afişează, în caznegativ spuneŃi de ce nu este corect.

#include<iostream.h>

class B

{ int x;

public: B(int i=2):x(i){}

int get_x() const { return x; } };

class D: public B

{ int *y;

public: D(int i=2):B(i){ y=new int[i];

for(int j=0; j<i; j++) y[j]=1; }

D(D& a){ y=new int[a.get_x()];

for(int i=0;i<a.get_x();i++) y[i]=a[i]; }

int& operator[](int i) { return y[i]; } };

ostream& operator<<(ostream& o, const D& a)

{ for(int i=0;i<a.get_x();i++) o<<a[i];

return o;

}

int main()

{ D ob(5);

cout<<ob;

return 0;

}

II.  DescrieŃi trei metode de proiectare diferite prin care elementele unei clase se pot regăsi îndublu exemplar, sub diverse forme, în definiŃia altei clase.

III.  SpuneŃi dacă programul de mai jos este corect. În caz afirmativ, spuneŃi ce afişează, în caznegativ spuneŃi de ce nu este corect.

#include<iostream.h>

class B

{ int x;

public: B(int i=10) { x=i; }

int get_x() { return x; } };

class D: public B

{ public: D(int i):B(i) {}

D operator+(const D& a) {return x+a.x; } };

int main()

{ D ob1(7), ob2(-12);

cout<<(ob1+ob2).get_x();

return 0;

}

Page 20: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 20/60

IV.  SpuneŃi dacă programul de mai jos este corect. În caz afirmativ, spuneŃi ce afişează, în caznegativ spuneŃi de ce nu este corect.

#include<iostream.h>

class B

{ public: int x;

B(int i=16) { x=i; }

B f(B ob) { return x+ob.x; } };

class D: public B{ public: D(int i=25) { x=i; }

B f(B ob) { return x+ob.x+1; }

void afisare(){ cout<<x; } };

int main()

{ B *p1=new D, *p2=new B, *p3=new B(p1->f(*p2));

cout<<p3->x;

return 0;

}

V.  SpuneŃi ce este obiectul implicit al unei metode şi descrieŃi pe scurt proprietăŃile pe care lecunoaşteŃi despre acesta.

VI.  SpuneŃi dacă programul de mai jos este corect. În caz afirmativ, spuneŃi ce afişează, în caznegativ spuneŃi de ce nu este corect.

#include<iostream.h>

class cls

{ int *v,nr;

public: cls(int i) { nr=i; v=new int[i];

for (int j=1; j<nr; j++) v[j]=0; }

int size() { return nr; }

int& operator[](int i) { return *(v+i); } };int main()

{ cls x(10);

x[4]=-15;

for (int i=0; i<x.size(); i++) cout<<x[i];

return 0; } 

Page 21: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 21/60

VII.  SpuneŃi dacă programul de mai jos este corect. În caz afirmativ, spuneŃi ce afişează, în caznegativ spuneŃi de ce nu este corect.

#include<iostream.h>

class cls

{ int x;

public: cls(int i=-20) { x=i; }

const int& f(){ return x; } };

int main(){ cls a(14);

int b=a.f()++;

cout<<b;

return 0;

}

VIII.  DescrieŃi pe scurt moştenirea virtuală şi scopul în care este folosită.

IX.  SpuneŃi dacă programul de mai jos este corect. În caz afirmativ, spuneŃi ce afişează, în caznegativ spuneŃi de ce nu este corect.

#include<iostream.h>

class B{ static int x;

int i;

public: B() { x++; i=1; }

~B() { x--; }

static int get_x() { return x; }

int get_i() { return i; }

};

int B::x;

class D: public B

{ public: D() { x++; }

~D() { x--; }

};

int f(B *q)

{ return (q->get_i())+1;}

int main()

{ B *p=new B;

cout<<f(p);

delete p;

p=new D;

cout<<f(p);

delete p;

cout<<D::get_x();

return 0;

}

Page 22: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 22/60

X.  SpuneŃi dacă programul de mai jos este corect. În caz afirmativ, spuneŃi ce afişează, în caznegativ spuneŃi de ce nu este corect.

#include<iostream.h>

class B

{ int x;

public: B(int i=17) { x=i; }

int get_x() { return x; }

operator int() { return x; } };class D: public B

{ public: D(int i=-16):B(i) {} };

int main()

{ D a;

cout<<27+a;

return 0;

}

XI.  EnumeraŃi 3 metode de implementare a polimorfismului de compilare.

XII.  SpuneŃi dacă programul de mai jos este corect. În caz afirmativ, spuneŃi ce afişează, în caznegativ spuneŃi de ce nu este corect.

#include<iostream.h>

class cls

{ static int x;

public: cls (int i=1) { x=i; }

cls f(cls a) { return x+a.x; }

static int g() { return f()/2; } };int cls::x=7;

int main()

{ cls ob;

cout<<cls::g();

return 0;

}

Page 23: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 23/60

XIII.  SpuneŃi dacă programul de mai jos este corect. În caz afirmativ, spuneŃi ce afişează, în caznegativ spuneŃi de ce nu este corect.

#include<iostream.h>

class cls

{ int *v,nr;

public: cls(int i=0) { nr=i; v=new int[i];

for (int j=0; j<size(); j++) v[j]=3*j; }

~cls() { delete[] v; }int size() { return nr; }

int& operator[](int i) { return v[i]; }

cls operator+(cls); };

cls cls::operator+(cls y)

{ cls x(size());

for (int i=0; i<size(); i++) x[i]=v[i]+y[i];

return x; }

int main()

{ cls x(10), y=x, z;

x[3]=y[6]=-15;

z=x+y;

for (int i=0; i<x.size(); i++) cout<<z[i];

return 0; } 

XIV.  DescrieŃi pe scurt mecanismul de tratare a excepŃiilor.

XV.  SpuneŃi dacă programul de mai jos este corect. În caz afirmativ, spuneŃi ce afişează, în caznegativ spuneŃi de ce nu este corect.

#include<iostream.h>

class B

{ int i;

public: B() { i=1; }

int get_i() { return i; }

};

class D: public B

{ int j;public: D() { j=2; }

int get_j() {return j; }

};

int main()

{ B *p;

int x=0;

if (x) p=new B;

else p=new D;

if (typeid(p).name()=="D*") cout<<((D*)p)->get_j();

return 0;

Page 24: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 24/60

XVI.  SpuneŃi dacă programul de mai jos este corect. În caz afirmativ, spuneŃi ce afişează, în caznegativ spuneŃi de ce nu este corect.

#include <iostream.h>

class cls

{ int x;

public: cls(int i) { x=i; }

int set_x(int i) { int y=x; x=i; return y; }

int get_x(){ return x; } };int main()

{ cls *p=new cls[10];

int i=0;

for(;i<10;i++) p[i].set_x(i);

for(i=0;i<10;i++) cout<<p[i].get_x(i);

return 0;

}

XVII.  DescrieŃi pe scurt diferenŃa dintre un pointer şi o referinŃă.

XVIII. SpuneŃi dacă programul de mai jos este corect. În caz afirmativ, spuneŃi ce afişează, în caznegativ spuneŃi de ce nu este corect.

#include <iostream.h>

template<class T>

int f(T x, T y)

{ return x+y;

}

int f(int x, int y)

{ return x-y;

}

int main()

{ int a=5;

float b=8.6;

cout<<f(a,b);return 0;

}

Page 25: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 25/60

Anul I Informatică (valabil şi pentru Anul II Matematică-Informatică) iunie 2005

Proiectare şi programare orientate pe obiecte

Examen scris

I. Spuneţi de câte ori se execută fiecare constructor în programul de mai jos şi înce ordine.

#i ncl ude <i ost r eam. h>cl ass cl s1{ pr ot ect ed: i nt x;

publ i c: cl s1( ) { x=13; } };cl ass cl s2: publ i c cl s1{ i nt y;

publ i c: cl s2( ) { y=15; }i nt f ( cl s2 ob) { r et ur n ( ob. x+ob. y) ; } };

i nt mai n( ){ cl s2 ob; cout <<ob. f ( ob) ;

r et ur n 0;} 

II. Descrieţi pe scurt diferenţa dintre funcţiile care returnează valoare şi cele carereturnează referinţă.

III. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ceafişează, altfel, spuneţi de ce nu este corect.

#i ncl ude <i ost r eam. h>cl ass cl s1

{ i nt x;publ i c: cl s1( ) { x=13; }

i nt g( ) { stati c i nt i ; i ++; r et ur n ( i +x) ; } };cl ass cl s2

{ i nt x;publ i c: cl s2( ) { x=27; }

cl s1& f ( ) { st at i c cl s1 ob; r et ur n ob; } };i nt mai n( ){ cl s2 ob;

cout <<ob. f ( ) . g( ) ;r et ur n 0;

}

Page 26: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 26/60

IV. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ceafişează, altfel, spuneţi de ce nu este corect.

#i ncl ude <i ost r eam. h>cl ass cl s1{ pr ot ect ed: i nt x;

publ i c: cl s1( i nt i =10) { x=i ; }i nt get _x() { r et ur n x; } };

cl ass cl s2: c l s1{ publ i c: cl s2( i nt i ) : cl s1( i ) {} };i nt mai n( ){ cl s d( 37) ;

cout <<d. get_x( ) ;r et ur n 0;

}

V. Descrieţi pe scurt cum se pot defini funcţii de conversie între tipuri (clase).

VI. Cum trebuie definită variabila n din clasa de mai jos, dacă dorim ca ea să contorizeze numărul tuturor obiectelor care apar ţin clasei cl s la un moment dat.

cl ass cl s{ i nt n;

publ i c: cl s( ) { n ++; }~cl s( ) { n - - ; } };

Page 27: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 27/60

VII. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ceafişează, altfel, spuneţi de ce nu este corect.

#i ncl ude <i ost r eam. h>cl ass cl s{ i nt x;

publ i c: cl s( i nt y) {x=y; }i nt oper at or *( cl s a, cl s b) {r et ur n ( a. x*b. x) ; } };

i nt mai n( ){ cl s m( 100) , n( 15) ;

cout <<m*n;r et ur n 0;

}

VIII. Spuneţi care este diferenţa dintre clasa generică (template) şi clasa abstractă şi ]nce situaţii se foloseşte fiecare dintre ele.

IX. Fiind date următoarele tipuri de clase:

cl ass B { / * i nstr ucti uni */ };cl ass D1: vi r t ual B { / * i nstr ucti uni */ };cl ass D2: vi r t ual B { / * i nstr ucti uni */ };cl ass D3: B { / * i nst r ucti uni */ };cl ass D4: pr i vat e B { / * i nst r ucti uni */ };

cl ass D5: vi r t ual publ i c B { / * i nstr ucti uni */ };cl ass M1: D1, publ i c D2, D3, pr i vat e D4, vi r t ual D5{ / * i nstr uct i uni * / };cl ass M2: D1, D2, vi r t ual D3, vi r t ual D4, vi r t ual D5{ / * i nstr uct i uni * / };

spuneţi de câte ori este moştenită clasa B în clasa M1. Dar în clasa M2 ?Justificaţi. 

Page 28: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 28/60

X. Spuneţi care dintre declaraţiile funcţiei mai n( ) sunt corecte în programul de mai jos. Justificaţi.

#i ncl ude <i ost r eam. h>cl ass B1 { publ i c: i nt x; };cl ass B2 { i nt y; };cl ass B3 { publ i c: i nt z; };cl ass B4 { publ i c: i nt t ; };cl ass D: pr i vat e B1, pr ot ect ed B2, publ i c B3, B4{ i nt u; };i nt mai n( ){ D d;

cout <<d. u;cout <<d. x;cout <<d. y;cout <<d. z;cout<<d. t ;r et ur n 0;

}

XI. Descrieţi pe scurt diferenţa dintre transferul prin valoare şi transferul prinreferinţă al parametrilor în cazul apelului unei funcţii.

XII. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ceafişează, în caz negativ spuneţi de ce nu este corect.

#i ncl ude <i ost r eam. h>cl ass cl s{ i nt vi ;

publ i c: cl s( i nt v=37) { vi =v; }f r i end i nt & f ( cl s ) ; };

i nt & f ( cl s c) { return c. vi ; }i nt mai n( ){ const cl s d( 15) ;

f ( d) =8;cout <<f ( d) ;r et ur n 0;

}

Page 29: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 29/60

XIII. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ceafişează, altfel, spuneţi de ce nu este corect.

#i ncl ude <i ost r eam. h>cl ass cl s1{ publ i c: i nt x;

cl s1( i nt i =20) { x=i ; } };cl ass cl s2{ publ i c: i nt y;

cl s2( i nt i =30) { y=i ; }oper at or cl s1( ) { cl s1 ob; ob. x=y; r et ur n ob; } };

cl s1 f ( cl s1 ob){ ob. x++;

r etur n ob;}i nt mai n( ){ cl s1 ob1; f ( ob1) ; cout <<ob1. x;

cl s2 ob2; f ( ob2) ; cout <<ob2. y;r et ur n 0;

}

XIV. Spuneţi pe scurt prin ce se caracterizează o metodă statică a unei clase.

XV. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ceafişează, altfel, spuneţi de ce nu este corect.

#i ncl ude <i ost r eam. h>

cl ass cl s{ i nt x;

publ i c: cl s( i nt i =25) { x=i ; }i nt f ( ) ; };

i nt cl s : : f ( ) { return x; }i nt mai n( ){ const cl s d( 15) ;

cout <<d. f ( ) ;r et ur n 0;

}

Page 30: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 30/60

XVI. Spuneţi de câte ori se apelează destructorul clasei cl s în programul de mai jos.Justificaţi.#i ncl ude<i ost r eam. h>cl ass cl s{ publ i c: i nt x;

cl s( i nt i =0) { x=i ; } };

cl s f ( cl s c){ c. x++;

r et ur n c;}i nt mai n( ){ cl s r ( 10) ;

c l s s=f ( r) ;r et ur n 0;

}

XVII. Spuneţi care este diferenţa dintre incluziunea de clase şi moştenirea de clase şicând se foloseşte fiecare metodă.

XVIII. Spuneţi dacă programul de mai jos este corect. În caz afirmativ, spuneţi ceafişează, în caz negativ spuneţi de ce nu este corect.

#i ncl ude <i ost r eam. h>t empl ate <cl ass t i p>

t i p di f ( t i p x, t i p y){ r et ur n x- y;}unsi gned di f ( unsi gned x, unsi gned y){ r eturn x>=y?x- y: y- x;}i nt mai n( ){ unsi gned i =7, j =8;

cout <<di f ( i , j ) ;r et ur n 0;

Page 31: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 31/60

Page 32: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 32/60

Page 33: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 33/60

Page 34: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 34/60

Page 35: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 35/60

Page 36: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 36/60

Page 37: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 37/60

Grupa 153

Proiectare gi programare orientate pe obiecte

Examen scris

29 mai 2009

I. Spun efi dacH program ul de m ai jos este corect. in caz afirmativ, spuneti ce afigeazg, in ca z

negativ spunefi de ce nu este corect.

#include<iostream.h>class A

I protected: int x;public: A(int i) :x(i) }

int get-x() { return x; 1 1;

class B: public A

I public: B(int i) :A(i) { }

B operatort(const B& b) {retcrn x+b.x; } 1 ;int main )

{ B a 2 3 ) , b (-15)cout<<a+b;

return 0;

1

11. Descriefi pe scurt cum es te implementat mecanismul de control a1 tipului in timpul execufiei- RTTI.

111. Spune ti dacH prograrnul de mai jos este corect. in caz afirmativ, spunefi ce afiyeaza, in c az

negativ spun efi de ce n u este corect.

#include<iostream.h>

class A

I int x;public: A(int i=25) { x=i; 1friend int& f(const A&); 1;

int& f (const A& c) { return c.x; 1int main )

I A a(15)cout<<f (a)

return 0;

1

Page 38: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 38/60

IV. Spuneti dacii program ul de rnai jos este corect. i n caz afirmativ, spuneti ce afigeazii, in caz

negativ spuneti de ce nu este corect.

#include<iostream.h>

class A

I int *v, im;public: A(int i) { dim=i; v=new int[i];

for(int j=l; j < ~++) v[j]=j; }

int size() { return dim; 1friend int& operator I (A, int) };

int& operator [] (A a, int i) { return * (a.v+a.size ()-i) }

int main )

I A a(10);a[3]=7;

for (int i=O; i<a.size(); i+t) cout<<a[i];

return 0;

1

. -

V. Descriefi pe scurt difere nta din tre o clasii gi un obiect.

VI. Spuneti dace program ul de rnai jos este corect. in caz afirmativ, spuneri ce afigeazi, in caznegativ spuneti de ce n u este corect.

#include<iostream. >

class A

I int x;public: A(int i) x(i) }

int get x ) const { return x; } } ;-class B: public A

I int *y;public: B (int i) A(i) y=new int [i]

for(int j=0; j<i; j + + ) y[j]=l; }

B (B&)

int& operator[] int i) { return y [i] } 1;B::B(B& a)

I y=new int [a. et-x ( ) 1 ;

for (int i=0; <a. et-x ( ) ; ++) y [i] a [i]

1ostream& operator<<(ostream& 0, B a)

{ for (int i=0; <a. et-x ( ) ; ++) o<<a [il;

return o;

1int main )

I B b(5);cout<<b;

return 0;

1

Page 39: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 39/60

VII. Spune fi dace programul de mai jos este corect. i n caz afirmativ, spu nefi ce afi~ eazii,n caz

negativ spunefi de ce nu este corect.

#include<iostream.h>class A

{ static int x;public: A(int i=l) { x=i; 1

int f(A a) { return x+a.x; 1static int g() { return f 2) 2; } } ;

int A::x=7;int main )

1 cout<<A: g ) ;

return 0;

1

VIII. Descriefi pe scurt crearea dinam ice de obiecte.

Spuneii dace programul de rnai jos este corect. i n caz afirmativ, spunefi ce afigeazl_ n ca rnegativ spunefi de ce nu este corect.

#include<iostream.h>

class A

{ protected: int x;

public: A(int i=12) { x=i;1

int get-x() { return x;

class B: public A

I public: B(int i):A(i) { I

B (const A& a) {return a

int main )

I A a(9);

B b(a1;cout<<b.get- ();

return 0;

1

Page 40: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 40/60

X. Spuneli dace programul de mai jos este corect. in caz afirmativ, spuneli ce afigeaze, in c aznegativ spuneti de ce nu este corect.

#include<iostream.h>

class AI protected: int x;

public: A(int i=-16) { x=i; 1

virtual A f(A a) { return x+a.x; }

void afisare(){ cout<<x; } 1;

class B: public A

I public: B(int i=3):A(i) i }B f (B b) { return xtb.x+l; } 1;

int main )

{ A *pl=new B, *p2=new A, +p3=new A(p1->f(*p2));

p3->af isare ) ;

return 0;

1

XI. Descrieti pe scurt proprietgtile unui cimp static a1 unei clase.

XII. Spuneji dace programul de mai jos este corect. in caz afirmativ, spunefi ce a f i ~ e a z i ,n caz

negativ spunefi de ce nu este corect.

#include<iostream.h>

class A

{ public: int x;A(int i=O) { x=i; }

A operator; cons^ A& a) { return A(x+a. x); } } ;

ostream& operator<<(ostrean& o, A a) { o<<a.x; return o; )

template <class T>class B

I T y ;

public: B() I }

B(T i) { y=i; 1

B operator+ (B ob) { return B (ob.y+l); }

void afisare(){ cout<<y; I I ;

int main )I B<int> bl(-15); B<A> b2(1); Cc

(bltb2) afisare ) ;

return 0;

I

Page 41: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 41/60

XIII. Spuneti dacil prograrnul de mai jos este corect. in caz afirmativ, spuneti ce afiqeaza, in caznegativ spunefi de ce nu este corect.

#include<iostream.h>

class A

{ public: int x;

A(int i=13) { x=i; 1 1;

class B: virtual public A

{ public: B(int i=15) { x=i; 1 1;

class C: virtual public A

{ public: C(int i=17) { x=i; 1 1;

class D: public A

{ public: D(int i=19) { x=i; 1 1;

class E: public B, public C, public D

{ public: int y;

E(int i,int j) :D(i),B(j) y=x+i+j; 1E(E& e) { y=-e.y; 11;

int main )

{ E el (-9,3), e2=el;

cout<<e2. ;

return 0;

1

XIV. Descrieti pe scurt funciiile $ablon $i dati exemplu de 3 situatii in care un ape1 de funciie NUgenereazil o versiune a functiei dintr-un l~a blon isponibil pentru functia respectivil.

XV. Spuneti daca programul de mai jos este corect. i n caz a firmativ, spuneti ce afigeazii, in caznegativ spuneti de ce nu e ste corect.

#include<iostream.h>

class A

I const int x, y;public: A(int i, int j ) :x(i), ~ ( j )

int f ) { return xty; 1 1 ;

int main )

I const A a(5,6)

cout<<a. ) ;

return 0;

1

Page 42: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 42/60

XVI. Spuneti dacZI program ul de m ai jos este corec t. i n caz afirm ativ, spuneti ce afiqeazii, in caz

negativ spunefi de ce nu este co rect.

#include<iostream.h>

class A

I public: int x;

A(int i=O) { x=i; 1virtual A minus ) I return (1-x) 1 ;

class B: public AI public: B(int i=O) { x=i; 1void afisare() { cout<<x; } } ;

int main )

I A *pl=new B (27)*pl=pl->minus ) ;

pl->afisare ) ;

return 0;

XVII. -Descriefipe scurt diferenfa dintre polim orfismul de compilare 9i cel de execu tie.

XVIII. Spuneti dac l programul de mai jos este co rect. in caz afirmativ, spuneti ce afiqeazii pentru o

~ a l o a r entreagi citit5 egal5 cu 23, n caz negativ spuneti de ce nu este corect.

$include <iostream.h>

int f (int y)

I if (y%2) throw yt2.5;

return y / 2 ;

1int main 1{ int x;

tryIcout<<''Da-mi un numar: ";

cin>>x;

if (x%3) x=f(x);

else throw x;

cout<<"Nurnarul "<<x<<" e bun!"<<endl;

1catch (int i)

{ cout<<"Numarul "<<i<<" nu e bun!"<<endl;

1return 0;

1

Page 43: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 43/60

Mai 2009 Grupa 151

1.class A{ public:

int x; A(int i = 0) {x = i;}virtual A minus() {cout << x;}};

class B : public A{ public:

B (int i = 0) {x = i;}void afisare(){cout << x;}};

int main(){ A *p1 = new A(18);

*p1 = p1 -> minus();dynamic_cast<B*>(p1) -> afisare();return 0;}

2. Crearea dinamica de obiecte

3.class A{ int x;

public: A(int i = 2) : x(i){}int get_x() const{return x;}};

class B : public A{ int *y;

public:B(int i = 2) : A(i){ y = new int[i];

for(int j = 0; j < i; j++)y[j] = 1; }

B (B& b){ y = new int[b.get_x()];

for(int i = 0; i < b.get_x(); i++) {y[i] = b[i];} }int& operator [] (int i) const { return y[i]; } };

ostream& operator << (ostream& o, const B b){ for (int i = 0; i < b.get_x(); i++) o << b[i];

return o; }

Page 44: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 44/60

int main(){ const B b(5);

cout << b;return 0;}

4. class A{ protected:

int x;public:

 A (int i) : x(i){}int get_x() {return x;} };

class B : public A

{ public:B(int i) : A(i){}operator int () {return x;}B operator + (const B& b) {return x + b.x + 1;} };

int main(){ B a(2), b(-12);

cout << (a + b) + a;return 0; }

5. Proprietatile campurilor statice

6. class A{ int x;

public: A(int i = 25) {x = i;}int& f() const {return x;} };

int main(){ A a(15);

cout << a.f();

return 0; }

7. class A{ int x;

const int y;public:

 A(int i, int j) : x(i), y(j){}

Page 45: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 45/60

int f(int, int) const; };

int A :: f(int i, int j) const{return x ++;}int main(){ A ob(5, -8);

cout << ob.f(-9, 8);return 0; }

8. Proprietatile destructorului

9. class A{ int x;

public: A(int i) : x(i){}

int get_x() const {return x;} };class B : public A{ int* y;

public:B(int i) : A(i){

y = new int[i];for (int j = 0; j < i; j++)

y[j] = 1;}B(B&);int& operator[] (int i) {return y[i];} };

B :: B(B& a){ y = new int[a.get_x()];

for(int i = 0; i < a.get_x(); i++){

y[i] = a[i];}

}

ostream& operator << (ostream& o, B a){

for(int i = 0; i < a.get_x(); i++)o << a[i];

}int main(){ B b(5);

Page 46: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 46/60

cout << b;return 0; }

10. class A{ int i;

public: A(){i = 1;}int get_i(){return i;} };

class B : public A{ int j;

public:B(){j = 2;}int get_j(){return j;} };

int main(){ A *p;

int x = 0;if(x) p = new A;else p = new B;

if(typeid(p).name() == "B")cout << ((B*)p) -> get_j();

elsecout << "tipuri diferite";

return 0;}

11. Descrieti pe scurt diferenta dintre parametrii transmisi prin pointerisi cei prin referinta.

12. class A{ int x;

public: A(int i = 17){x = i;} };

class B

{ int x;public:

B(int i = -16){x = i;}operator A () {return x;}int get_x() {return x;} };

int main(){ A a;

Page 47: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 47/60

B b = a;cout << b.get_x(); return 0; }

13. class A{ protected:

int x;public:

 A(int i = -16){x = i;}virtual A f(A a){return x + a.x;}void afisare() {cout << x;} };

class B : public A{ public:

B(int i = 3) : A(i){} A f(A a) {return x + a.x + 1;} };

int main()

{ A *p1 = new B, *p2 = new A, *p3 = new A (p1 -> f(*p2));p3 -> afisare();return 0;

}

14. Ce repezinta o functie virtuala si in ce conditii o functie virtualadefineste o clasa abstracta.

15. class A{ public:

int x; A(int i = 0) {x = i;} A operator + (const A& a){

return A(x + a.x);} };

ostream& operator << (ostream& o, A a){ o << a.x;

return o; }

template <class T>class B{ T y;

public:B(){}B(T i) { y = i; }B operator + (B ob) {return B(ob.y + 1);}

Page 48: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 48/60

void afisare(){cout << y;} };

int main(){ B<int> b1(-15); B<A> b2(1);

(b1 + b2).afisare();return 0;

}

16. template <class T>T f(T x, T y){ return x + y; }

int f(int x, int y){ return x - y; }

int main(){ int* a = new int(5), *b = new int(8);

cout << f(a, b);return 0; }

17. RTTI

18. class A{ int x;

public: A(int i = 7){x = i;}int get_x(){return x;}operator int () {return x;} };

class B : public A{ public:

B(int i = -12) : A(i){}B operator + (B a) {return get_x() + a.get_x();} };

int main()

{ B a; int b = -21;b += a;cout << b;return 0; }

Page 49: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 49/60

Page 50: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 50/60

Page 51: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 51/60

Page 52: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 52/60

Page 53: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 53/60

Page 54: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 54/60

Page 55: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 55/60

Page 56: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 56/60

Page 57: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 57/60

Page 58: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 58/60

Page 59: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 59/60

Page 60: Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

7/15/2019 Subiecte Programare Orientata Obiect, anul I, Semestrul II, Facultatea de Informatica - UB.

http://slidepdf.com/reader/full/subiecte-programare-orientata-obiect-anul-i-semestrul-ii-facultatea-de-informatica 60/60