Cautare
 
 

Rezultate pe:
 


Rechercher Cautare avansata

Ultimele subiecte
» Glume, bancuri, poante, divertisment
Joi Oct 25, 2012 9:54 pm Scris de crisiada

» Grile pentru sesiunea asta
Mier Ian 25, 2012 5:01 pm Scris de androx1971

» subiecte avizier anul 2 sem 1 drept si admin publica specializarea drept craiova 2011=2012...are cineva grilele???
Sam Ian 21, 2012 4:55 pm Scris de belualina44

» Master MTMPTE
Lun Iun 13, 2011 10:09 am Scris de androx1971

» Licenta februarie 2011
Vin Ian 21, 2011 7:42 pm Scris de blue_mc

» Stiri din invatamant
Vin Ian 21, 2011 9:22 am Scris de dany_danutza

» ADMSPPM 2010-2011
Vin Ian 14, 2011 3:14 pm Scris de andreima

» practica de specialitate
Lun Ian 10, 2011 10:50 am Scris de narcizush

» cum sa trimit prob.rezolvate pt.laboratoare?
Joi Dec 09, 2010 12:38 pm Scris de sil_viuro

jocuri pentru tineri

Mier Oct 14, 2009 9:07 am Scris de urdu_sandel

Am creat acest site pentru toti fanii de jocuri online gratis. Aici gasiti tot ce va doriti. Accesati si nu veti regreta.
www.entertaining-game.com

Comentarii: 1

Cine este conectat?
In total sunt 3 utilizatori conectati: 0 Inregistrati, 0 Invizibil si 3 Vizitatori

Nici unul

[ Vizualizeaza toata lista ]


Recordul de utilizatori conectati a fost de 283, Mar Feb 15, 2011 11:43 am
Octombrie 2018
LunMarMierJoiVinSamDum
1234567
891011121314
15161718192021
22232425262728
293031    

Calendar Calendar

Flux RSS


Yahoo! 
MSN 
AOL 
Netvibes 
Bloglines 



P.P.O.O.

Pagina 2 din 4 Înapoi  1, 2, 3, 4  Urmatorul

In jos

Re: P.P.O.O.

Mesaj  chmro la data de Lun Ian 26, 2009 8:17 pm

Doua probleme date la ex. pentru cei de anul III:

Fie programul :

// destructor virtual,
#include
class B{
public:
virtual ~B(){cout<<"~B()"<};
class D: public B{
public:
virtual ~D(){cout<<"~D()"<};
void main(){
B *pb;
D *pd;
pd= new D();
pb=new D();
delete pb;
delete pd;
}
Programul afiseaza:
a) ~ B()~D()~B() ~D()
b) ~ B() ~B() ~D()
c) ~ B() ~D()
d) ~ D()~B()~D() ~B()

Raspuns corect d.


O alta problema:

Fie urmatorul program:
#include
class A{
public:
// supraincaracre void s()
void s(){cout<<"void A::s()"<void s(int i){i++;cout<<"void A::s(int)"<// supraincarcare void v()
virtual void v(){cout<<"virtual void A::v()"<virtual void v(int i){i++;cout<<"virtual void A::v(int)"<
};
class B:public A{
public:
// 1. supraincarcare metoda statica
int s(){cout<<"int B::s()"<
// 2. specializare metoda statica
void s(int i){i++;cout<<"void B::s(int)"<
// 3. specializare metoda virtuala
virtual void v(int i){i++;cout<<"virtual void B::v(int)"<};

void main(){
A *pa;
B b;
pa=&b; pa->s(); pa->v(1);
}
Prin executarea sa, programul afiseaza:
a) void B::v()
void A::v(int)
b) void A::v()
void B::v(int)
c) void A::s()
void B::v(int)
d) void A::v()
void A::v(int)

Raspuns corect d.

Si un link catre un document cu probleme date la examenul asta, nerezolvate inca. Cei care aveti compilatoarele de C++ si Java instalate, treceti la treaba. Asta o sa fac si eu, insa deseara. Daca codurile sunt corect copiate, se pot compila fara probleme. Succes!
Cod:

http://rapidshare.com/files/190063357/sub_ex_ppoo.rar
Aici am pus tot ce am gasit in materie de grile ppoo:
http://rapidshare.com/files/190097574/ppoo_actualizat.rar

Si cateva rezolvari la sub_ex_ppoo:
1a, 2d, 3d, 4a, 5c, 7a,
8 este identica cu pb. 11 din grila de C++ pusa mai sus numai ca aici are variantele de la
alta problema. Probabil o eroare de copiere.
9b, 11a, 17d, 18b, 19a, 20d,
21 - se afiseaza 11111
22c, 25a, 29a, 30a, 31a?
Deocamdata atat.


Ultima editare efectuata de catre chmro in Lun Feb 02, 2009 9:46 pm, editata de 1 ori
avatar
chmro

Numarul mesajelor : 159
Varsta : 47
Localizare : Turda
Data de inscriere : 08/05/2008

Vezi profilul utilizatorului

Sus In jos

O MATERIE DE KK...

Mesaj  laura_maria10 la data de Mier Ian 28, 2009 8:28 pm

AZI AM SUSTINUT EXAMENUL LA PPOO IN PITESTI.UN MARE KK EXAMENUL ASTA PT CINE NU CUNOASTE PROGRAMARE.10 INTREBARI IN 20 MIN .TOATE NUMAI PROGRAME DIN C++ SAU JAVA.NICI O INTREBARE DE TEORIE..NIMIK...CAT DESPRE TEORIA DE PE SITEUL UNIVERSITATI...SA SE STEARGA CINEVA CU EA LA TOALETA...NU E BUNA DE NIMIK..ORICUM BAFTA OAMENI BUNI SI NE VEDEM LA RESTANTE IN TOAMNA...APP CUM ERA DE ASTEPTAT S-A PICAT PE CAPETE LA NOI..ASTEPT VESTI DE LA CEILALTI...BAFTA..VA PUP
PS : MULTUMIM CELOR CE NE AJUTA SA REZOLVAM SUBIECTELE.
avatar
laura_maria10

Numarul mesajelor : 17
Varsta : 30
Localizare : pitesti
Data de inscriere : 20/05/2008

Vezi profilul utilizatorului

Sus In jos

rasp!

Mesaj  vl_33_dav la data de Joi Ian 29, 2009 10:29 am

1. C
2. C
3. B
4. D
5. B
6. B
7. B
8. D
9. A
10. D
11. D
12. C
13. D
14. D
15. B
16. A
17. C
18. D
19. C
20. A
21. D
22. D
23. D
24. A
25. D
26. A
27. C
28. B
29. B
30. D
31. D
32. C
33. D
34. C
35. C
36. C
37. B
38. C
39. A
40. B
41. D
42. D
43. D
44. A
45. D
46. A
47. D
48. A
49. C
50. B
51. D
52. C
53. D
54. B
55. D
56. B
57. D
58. D
59. C
60. D
61. C
62. B
63. D
64. D
65. D
66. D
67. B
68. B
69. C
70. C
71. B
72. D
73. C
74. B
75. B
76. C
77. B
78. C
79. A
80. D
81. B
82. B
83. C
84. D
85. C
86. B
87. C
88. A
89. D
90. C
91. B
92. A
93. C
94. A
95. A
96. A
97. A
98. B
99. B
100. C
101. C

UML

102. A
103. C
104. B
105. A
106. B
107. C
108. B
109. B
110. B
111. C
112. D
113. C
114. C
115. A
116. C
117. B
118. A
119. A
120. D
121. D
122. D
123. B
124. A
125. D
126. C
127. B
128. D
129. C
130. C
131. D
132. C
133. D
134. A
135. D
136. D (Strategy)
137. C
138. C
139. C
140. B
141. A
142. D
143. A
144. C
145. A
146. C
147. B
148. A
149. D
150. C
151. C
152. A
153. C
154. B
155. D
156. B
157. C
grila de anul trecut
avatar
vl_33_dav

Numarul mesajelor : 139
Varsta : 45
Localizare : RM. VALCEA
Data de inscriere : 08/05/2008

Vezi profilul utilizatorului

Sus In jos

Re: P.P.O.O.

Mesaj  pmactred la data de Joi Ian 29, 2009 12:06 pm

fiecare fisier este cu raspunsurile pe care le-am avut.
sper sa va fie de folos.
- sub_ex_ppoo.doc
- ppoo100[1].doc
- 4 ppoo_rezolvate[1].pdf
- pr-java.pdf

pmactred

Numarul mesajelor : 7
Varsta : 45
Localizare : cluj
Data de inscriere : 11/05/2008

Vezi profilul utilizatorului

Sus In jos

!?!

Mesaj  vl_33_dav la data de Vin Ian 30, 2009 9:28 am

Cine a dat ex la PPOO, se da si cu A/F ? ... sau macar postati ceva ajutator pt noi, c-am din ce s-a dat! MERSI! Arrow
avatar
vl_33_dav

Numarul mesajelor : 139
Varsta : 45
Localizare : RM. VALCEA
Data de inscriere : 08/05/2008

Vezi profilul utilizatorului

Sus In jos

Re: P.P.O.O.

Mesaj  chmro la data de Vin Ian 30, 2009 11:15 am

Din cate am inteles de la cei de anul III nu se da nimic teorie.
avatar
chmro

Numarul mesajelor : 159
Varsta : 47
Localizare : Turda
Data de inscriere : 08/05/2008

Vezi profilul utilizatorului

Sus In jos

;)

Mesaj  vl_33_dav la data de Vin Ian 30, 2009 6:53 pm

La noi la VL s-a dat si teorie... si A/F ... AM LUAT 6! uff
Cod:

Identify the letter of the choice that best completes the statement or answers the question.
__A__ 1. Fie următorul program C++:
#include <iostream.h>
class A{
public:
void m(){cout<<"A:m()"<<endl;};
virtual void v(){cout<<"A:v()"<<endl;};
};
class B: public A{
private:
void m(){cout<<"B:m()"<<endl;};
virtual void v(){cout<<"B:v()"<<endl;};
};
void main(){
A a,*p;
B b;
a.m();
p=&b;
p->v();
}
Care din afirmatiile următoare sunt adevărate:
a. Expresia p->v()este incorectă deoarece metoda v este inaccesibilă
b. Programul afiseaza mesajul:
A:m()
B:(v)
c. Programul afisează mesajul: A:v()
d. Expresia a.m() este incorectă deoarece metoda m este inaccesibilă
__D__ 2. Fie următorul program C++:
#include <iostream.h>
class A{
public:
void s(){cout<<"void A::s()"<<endl;}
void s(int i){i++;cout<<"void A::s(int i)"<<endl; }
virtual void v(){cout<<"virtual void A::v()"<<endl;}
virtual void v(int i){
i++;cout<<"virtual void A::v()"<<endl;
}
};
class B:public A{
public:
// 1.
int s(){
cout<<"int A::s()"<<endl;
return 1;
}
// 2.
void s(int i){
i++;cout<<"void A::s(int i)"<<endl;
}
// 3.
virtual void v(int i){
i++;cout<<"virtual void A::v()"<<endl;
}
// 4.
virtual int v(){
cout<<"int A::v()"<<endl; return 1;
}
};    Care din afirmatiile următoare sunt adevărate:
a. //1. este incorectă
b. //2. este incorectă
c. //3. este incorectă
d. //4. este incorectă
__B__ 3. Fie următorul program C++, în care operatorul de insertie << este supraîncărcat.
Operatorul de atribuire = este cel predefinit, cu semantica prin referinta.
#include <iostream.h>
class C{
public:
C(int n, int v[]);
void set(int i, int val){pi[i]=val;}
friend ostream& operator<<(ostream &o, const C&);
private:
int dim;
int *pi;
};
C::C(int n, int v[]) {
dim=n;
pi= new int[dim];
for(int j=0; j<dim; j++){pi[j]=v[j];}
}
ostream& operator<<(ostream &o, const C &m){
for(int j=0; j<m.dim; j++)o<< m.pi[j]<<" ";
return o;
}
void main(){
int a[]={1,2,3}, b[]={10,20};
C x(3,a),y(2, b);
cout<<(x=y)<<endl;
y.set(0,1000);
cout<<x<<endl;
}
Care din afirmatiile următoare sunt adevărate:
a. Programul afisează:
10 20
10 20
b. Programul afisează:
10 20
1000 20
c. Programul afisează:
1000 20
10 20
d. Programul afisează:
1000 20
1000 20
A__ 4. Fie următorul program C++, în care operatorul de insertie << si operatorul de atribuire = sunt
supraîncărcati.
Prin supraîncărcare, operatorul de atribuire are semantica prin valoare (el înlocuieste pe cel
predefinit, care are semantica prin referintă). Rersursele obiectului destinatie d din expresia d=s
sunt eliberate chiar si în cazul de autoatribure d=d.
#include <iostream.h>
class C{
public:
C(int n, int v[]);
void set(int i, int val){pi[i]=val;}
C& operator=(C&);
friend ostream& operator<<(ostream &o, const C&);
private:
int dim;
int *pi;
};
C::C(int n, int v[]) {
dim=n;
pi= new int[dim];
for(int j=0; j<dim; j++){pi[j]=v[j];}
}
// supraincarcare cu semantica prin valoare
C& C::operator=(C& x){
// incepe prin dezalocare resursa *pi
// fara verificarea cazului de autoatribuire d=d
delete[] pi;
dim=x.dim;
pi=new int[dim];
for(int j=0; j<dim; j++){pi[j]=x.pi[j];}
return *this;
}
ostream& operator<<(ostream &o, const C &m){
for(int j=0; j<m.dim; j++)o<< m.pi[j]<<" ";
return o;
}
void main(){
int a[]={1,2,3}, b[]={10,20};
C x(3,a),y(2, b);
cout<<(x=y)<<endl;
y.set(0,1000);
cout<<x<<endl;
cout<<(x=x)<<endl;
}
În afirmatiile de mai jos, xx si yy sunt valori arbitrare, rezultate prin referirea prin pointerul pi la o
zona de memorie *pi neinitializată
Care din afirmatiile următoare sunt adevărate:
a. Programul afisează:
10 20
10 20
xx yy
b. a) Programul afisează:
10 20
1000 20
xx yy
c. Programul afisează:
1000 20
10 20
xx yy
d. Programul afisează:
10 20
10 20
10 20
__D__ 5. Fie următorul program C++,
în care operatorul de insertie << si operatorul de atribuire = sunt supraîncărcati. Prin
supraîncărcare, operatorul de atribuire are semantica prin valoare (el înlocuieste pe cel
predefinit, care are semantica prin referintă). Rersursele obiectului destinatie d din expresia d=s
sunt eliberate numai dacă d?s.
#include <iostream.h>
class C{
public:
C(int n, int v[]);
void set(int i, int val){pi[i]=val;}
C& operator=(C&);
friend ostream& operator<<(ostream &o, const C&);
private:
int dim;
int *pi;
};
C::C(int n, int v[]) {
dim=n;
pi= new int[dim];
for(int j=0; j<dim; j++){pi[j]=v[j];}
}
C& C::operator=(C& x){
// incepe prin dezalocare resursa *pi
// numai daca destinatia difera de sursa
if(this!=&x){
dim=x.dim;
delete[] pi;
pi=new int[dim];
for(int j=0; j<dim; j++){pi[j]=x.pi[j];}
}
return *this;
}
ostream& operator<<(ostream &o, const C &m){
for(int j=0; j<m.dim; j++)o<< m.pi[j]<<" ";
return o;
}
void main(){
int a[]={1,2,3}, b[]={10,20};
C x(3,a),y(2, b);
cout<<(x=y)<<endl;
y.set(0,1000);
cout<<x<<endl;
cout<<(x=x)<<endl;
}
În afirmatiile de mai jos, xx si yy sunt valori arbitrare, rezultate prin referirea prin pointerul pi la o
zona de memorie *pi neinitializată
Care din afirmatiile următoare sunt adevărate:
a. Programul afisează:
10 20
10 20
xx yy
b. Programul afisează:
10 20
1000 20
xx yy
c. Programul afisează:
1000 20
10 20
xx yy
d. Programul afisează:
10 20
10 20
10 20
__A__ 6. Fie următorul program C++, unde functia abs calculează valoarea absolută a unui număr real:
#include <iostream.h>
void abs(float &x){if (x<0)x=-x;}
void main(){
float a=-1;
abs(a);
cout<<"a="<<a<<endl;
int i=-1;
abs(i); //temporary used for parameter x
cout<<"i="<<i<<endl; // i=-1
}
La compilare a fost emis următorul mesaj de avertizare:
Warning: temporary used for parameter ‘x’ in call to ‘abs(float &)
Care din afirmatiile următoare sunt adevărate:
a. Programul afisează:
a =1
i = -1
b. Programul afisează:
a =1
i = 1
c. Programul afisează:
a = -1
i = -1
d. Programul afisează:
a = -1
i = 1
__D__ 7.Fie următorul program C++:
#include <iostream.h>
class Punct{
public:
Punct(int=0, int=0); //constructor
protected:
int x,y;
friend ostream& operator<<(ostream&, const Punct&);
};
class Cerc: public Punct{
public:
Cerc(double r=0.0, int x=0, int y=0);// constructor
protected:
float raza;
friend ostream& operator<<(ostream&, const Cerc&);
};
//implementare Punct
Punct::Punct(int a, int b):x(a),y(b){} // constructor
ostream& operator<<(ostream& output, const Punct& p){
output<<"Punct"<<'['<<p.x<<", "<<p.y<< ']';
return output;
}
//implementare Cerc
Cerc::Cerc(double r, int a, int b):Punct(a,b), raza(r){}
ostream& operator<<(ostream& output, const Cerc& c){
output <<"Centru= "<< (Punct)(c)
<<"; Raza= "<<c.raza;
return output;
};
void main(){
Punct *punctPtr=0, p(30,50);
Cerc *cercPtr=0, c(2.7,120,89);
cout<<p<<endl;
cout<<c<<endl;
// Cerc tratat ca Punct (prin pointer la clasa de baza):
punctPtr=&c;
cout<< *punctPtr << endl;
/* Cerc tratat ca Cerc (prin pointer la clasa de baza, dar
cu conversie explicita de la Punct la clasa derivata Cerc
*/
cercPtr= (Cerc *)(punctPtr);
cout<< *cercPtr<<endl;
/*Punct tratat ca Cerc: programatorul isi asuma responsabilitatea
unor erori: anumite atribute sunt nedefinite
*/
punctPtr= &p; // punctPtr refera un Punct
//Urmeaza conversie asumata de programator,
//de la clasa de baza la clasa derivata
cercPtr=(Cerc *)(punctPtr);
// cercPtr refera p ca pe un cerc
//dar acest asa-zis cerc are raza nedefinita
cout<< *cercPtr <<endl;
}
Name: ________________________ ID: A
9
Prin xx este desemnată o valoare nedefinită.
Care din afirmatiile următoare sunt adevărate:
a. Programul afisează:
Punct[30,50]
Centru=Punct[30,50]; Raza=2.7
Punct[120,89]
Centru=Punct[120,89]; Raza=2.7
Centru=Punct[30,50]; Raza=xx
b. Programul afisează:
Punct[30,50]
Centru=Punct[120,89]; Raza=2.7
Punct[120,89]
Centru=Punct[120,89];
Centru=Punct[30,50]; Raza=xx
c. Programul afisează:
Punct[30,50]
Centru=Punct[30,50];
Punct[120,89]
Centru=Punct[120,89]; Raza=2.7
Centru=Punct[30,50]; Raza=xx
d. Programul afisează:
Punct[30,50]
Centru=Punct[120,89]; Raza=2.7
Punct[120,89]
Centru=Punct[120,89]; Raza=2.7
Centru=Punct[30,50]; Raza=xx
__A__ 8. Fie următorul program C++:
// constructor de copiere in clasa de baza;
// dar absent in clasa derivata
#include <iostream.h>
class B{
public:
B(){cout<<"B();";}
B(B &b){cout<<"B(B &b);";}
};
class D: public B{
public:
D(){cout<<"D();";}
};
void main(){
B b;
B b1(b);
D d;
D d1(d);
B bd(d);
}
Care din afirmatiile următoare sunt adevărate:
a. Programul afisează:
B() B(B &b) B() D() B(B &b) B(B &b)
b. Programul afisează:
B() B() B() D() B(B &b) B(B &b)
c. Programul afisează:
B() B() B(B &b) D() B(B &b) B(B &b)
d. programul afisează:
B() B(B &b) B() D() B() B()
Name: ________________________ ID: A
10
__B__ 9. Fie următorul program C++:
// destructor static
#include <iostream.h>
#include <conio.h>
class B{
public:
B(){cout<<"B()"<<endl;}
~B(){cout<<"~B()"<<endl;}
};
class D: public B{
public:
D(){cout<<"D()"<<endl;}
~D(){cout<<"~D()"<<endl;}
};
void main(){
clrscr();
B *b=new B(); // apel B()
delete b;
b=new D(); // apel B();D()
delete b;
}
Care din afirmatiile următoare sunt adevărate:
a. Programul afisează:
B() ~B() B() D() ~D()
b. Programul afisează:
B() ~B() B() D() ~B()
c. Programul afisează:
B() ~B() B() ~B()
d. Programul afisează:
B() ~B() D() ~B()
Name: ________________________ ID: A
11
__B__ 10. Fie următorul program C++:
// destructor virtual
#include <iostream.h>
class B{
public:
B(){cout<<"B()"<<endl;}
virtual ~B(){cout<<"~B()"<<endl;}
};
class D: public B{
public:
D(){cout<<"D()"<<endl;}
virtual ~D(){cout<<"~D()"<<endl;}
};
void main(){
clrscr();
B *b=new B(); // apel B()
delete b;
b=new D(); // apel B();D();
// destructorii, in ordine inversa
delete b;
}
Care din afirmatiile următoare sunt adevărate:
a. Programul afisează:
B() ~B() B() D() ~D() ~B()
b. Programul afisează:
B() ~B() B() D() ~B() ~B()
c. Programul afisează:
B() ~B() B() D() ~B() ~D()
d. Programul afisează:
B() ~B() B() D() ~B()
Name: ________________________ ID: A
12
__C__ 11. Fie următorul program C++:
#include <string.h>
#include <iostream.h>
class Person{
public:
Person(char *p){
name=new char[strlen(p)+1];
strcpy(name,p);
}
~Person(){delete[] name;}
private:
char *name;
};
void f(){
// obiect nou, alocare dinamica in memoria heap
Person *p =new Person("Balanescu");
delete p;
}
void main(){
while(1)f();
}
Care din afirmatiile următoare sunt adevărate:
a. Programul se termină, deoarece instructiunea delete p eliberează memoria
alocată pentru obiectul referit de p
b. Programul se termină, deoarece la iesirea din functia f se eliberează memoria
alocată pe stivă pentru obiectul referit de p
c. Programul nu se termină, deoarece conditia de continuare din instructiunea while
este mereu îndeplinită
d. Programul se blochează la epuizarea memoriei heap
Name: ________________________ ID: A
13
__C__ 12. Fie următorul program C++:
#include <iostream.h>
class Persoana{
public:
Persoana(char * n){nume=n;}
void afisare(){cout<<nume<<endl;}
char *nume;
};
Persoana q="Balanescu";
void fvalue(Persoana p){p.afisare();}
void faddress(Persoana *p){p->afisare();}
void freference(Persoana &p){p.afisare();}
void main(){
fvalue(q);
faddress(&q);
freference(q);
fvalue("Tudor");
freference("Tudor");// Warning: temporary used for p
}
Care din afirmatiile următoare sunt adevărate:
a. Expresia faddress(&q); este eronată;
b. Instructiunea de declarare Persoana q="Balanescu"; este eronată;
c. Expresia p->afisare() este eronată;
d. Programul afisează:
Balanescu
Balanescu
Balanescu
Tudor
Tudor
Name: ________________________ ID: A
14
__C__ 13. Fie următorul program C++:
#include <iostream.h>
class B{
public:
B(int i):i(i){}
protected:
int i;
};
class D1: public B{
public:
D1(int i):B(i){}
void inc(){i++;}
};
class D2: public B{
public:
D2(int i):B(i){}
void afisare(){cout<<”i=”<<i<<endl;}
};
class D: public D1, public D2{
public:
D(int i):D1(i),D2(i){}
};
void main(){
D d(0);
d.inc();
d.afisare();
}
Care din afirmatiile următoare sunt adevărate:
a. Programul afisează i=-1
b. Programul afisează i=2
c. Programul afisează i=0
d. Programul afisează i=1
Name: ________________________ ID: A
15
__B__ 14. Fie următorul program C++:
#include <iostream.h>
class B{
public:
B(int i=-1):valB(i){}
B& operator=(const B &b){
valB=b.valB;
cout<<"B::op= ";
return *this;
}
private:
int valB;
};
class D:public B{
public:
D(int i, int j):B(i),valD(j){}
D& operator=(const D &d){
valD=d.valD;
cout<<"D::op= ";
return *this;
}
private:
int valD;
};
void main(){
B b(0), b1(1);
B *pB;
D d(0,0), d1(1,1);
b=b1;
d=d1;
b=d;
pB=&d;
*pB=d;
pB->operator=(d);
}
Care din afirmatiile următoare sunt adevărate:
a. Programul afisează :
B::op= D::op= D::op= B::op= D::op=
b. Programul afisează:
B::op= D::op= B::op= B::op= B::op=
c. Programul afisează:
B::op= D::op= B::op= D::op= D::op=
d. Programul afisează:
B::op= D::op= D::op= D::op= B::op=
Name: ________________________ ID: A
16
__B__ 15. Fie următorul program C++:
class A{
int x;
public:
A(int x):x(x){};
};
class B{
protected:
int x;
public:
B(int x):x(x){};
};
class D:public B{
A a;
B b; // 1
B b(1); // 2
public:
void m(){
x=1; // 3
http://b.x=1; //x nu este accesibil obiectelor
}
};
void main(){
B b(1); // 4
}
Care din următoarele instructiuni sunt eronate:
a. B b; // 1
b. B b(1); // 2 (din clasa D)
c. x=1; // 3
d. B b(1); // 4 (din functia main)
Name: ________________________ ID: A
17
__C__ 16. class A{
int x;
public:
A(int x):x(x){};
};
class B{
protected:
int x;
public:
B(int x):x(x){};
};
class D:public B{
A a;
B b; // 1
public:
void m(){
x=1; // 2
b.x=1; //3
}
};
void main(){
B b(1); // 4
}
Care din următoarele instructiuni sunt eronate:
a. B b; // 1
b. x=1 // 2
c. b.x=1; // 3
d. B b(1); // 4 (din functia main)
de aici mi-au picat 5!!! una am nimerit-o!
BAFTA! Arrow
avatar
vl_33_dav

Numarul mesajelor : 139
Varsta : 45
Localizare : RM. VALCEA
Data de inscriere : 08/05/2008

Vezi profilul utilizatorului

Sus In jos

Re: P.P.O.O.

Mesaj  varvara la data de Dum Feb 01, 2009 12:50 am

utile atasamentele de la pmactred, dar sunt si subiecte absolut noi,si pentru cei de la ID nu se aloca decat 20 minute. Succes tuturor si mii de multumiri!

varvara

Numarul mesajelor : 6
Varsta : 62
Data de inscriere : 04/06/2008

Vezi profilul utilizatorului

Sus In jos

Re: P.P.O.O.

Mesaj  nike03 la data de Lun Feb 02, 2009 1:23 pm

vl_33_dav a scris:La noi la VL s-a dat si teorie... si A/F ... AM LUAT 6! uff

Identify the letter of the choice that best completes the statement or answers the question.
__A__ 1. Fie următorul program C++:
#include
......

de aici mi-au picat 5!!! una am nimerit-o!
BAFTA! Arrow

De unde ai luat aceste subiecte?!
Voi ati incercat sa descarcati si subiectele la PPOO din anul III sem I de pe site-ul facultatii ? Am ramas uimit, sunt aceleasi ca cele de anul acesta! Ceva e in neregula! Nu cumva sunt gresite grilele(ori astea de anul asta, ori acelea de anul III)?! Mi-e teama sa nu fie cele de anul acesta!

nike03

Numarul mesajelor : 42
Varsta : 49
Localizare : Bucuresti
Data de inscriere : 12/05/2008

Vezi profilul utilizatorului

Sus In jos

Re: P.P.O.O.

Mesaj  chmro la data de Lun Feb 02, 2009 8:37 pm

Voi ati incercat sa descarcati si subiectele la PPOO din anul III sem I de pe site-ul facultatii ? Am ramas uimit, sunt aceleasi ca cele de anul acesta! Ceva e in neregula! Nu cumva sunt gresite grilele(ori astea de anul asta, ori acelea de anul III)?! Mi-e teama sa nu fie cele de anul acesta!

Sunt aceleasi subiecte pentru ca noi facem numai trei ani si s-au redistribuit materiile.

Iata ce mi-a picat mie:
Cod:


1.   Fie programul :
// constructor de copiere atat in clasa de baza cat si in clasa derivata
// constructorul de copiere din clasa derivata utilizeaza pe B() pentru
constructia // // subobiectului B
#include <iostream.h>
class B{
public:
B(){cout<<"B()"<<endl;}
B(B &b){cout<<"B(B &b)"<<endl;}
};
class D: public B{
public:
D(){cout<<"D()"<<endl;}
D(D &d){cout<<"D(D &d)"<<endl;}
};
void main(){
B b; // apel B()
B b1(b); // apel B(B & ); nu se mai utilizeaza B()!
D d; // apel B();D()
D d1(d); // nu se apeleaza B(B &b)
}
Programul afiseaza :
a.   B() B(B&b) B() D() B(B &b) D(D &d)
b.   B() B(B&b) B() D() B() D(D &d)
c.   B() B() B(B&b) B() D() B(B &b) D() B(B &b)
d.   B() B(B&b) D() B(B &b) D() B(B &b)



2.   Fie urmatorul program, in care se utilizeaza clase abstracte:
// abselem.h
#ifndef ABSTRACTELEM_H
#define ABSTRACTELEM_H
class AbstractElem{
public:
virtual void display()=0;
virtual void process()=0;
};
#endif
http://LIST.h
#ifndef LIST_H
#define LIST_H
#include "abselem.h"
class LIST{
public:
LIST(int nrmax=0);
void put(AbstractElem *);
AbstractElem* get();
void remove();
private:
int nrmax;
int nrelem;
int first;
int free;
AbstractElem* *support;
};
#endif
http://elements.h
#include "abselem.h"
#include "iostream.h"
class Person: public AbstractElem{
public:
Person(char *name);
virtual void display();
virtual void process();
private:
char *name;
};
class Car: public AbstractElem{
public:
Car(char *name);
virtual void display();
virtual void process();
private:
char *name;
};
http://driver.cpp
#include "elements.h"
#include "LIST.h"
LIST x(3);
void main(){
x.put(new Person("Tudor"));
x.put(new Person("Andrei"));
x.put(new Car("B-39-TDR"));
x.get()->process(); x.remove();
x.get()->process(); x.remove();
x.get()->process(); x.remove();
}
http://LIST.cpp
#include "LIST.h"
LIST::LIST(int nrmax):nrmax(nrmax){
first=free=nrelem=0;
support = new AbstractElem* [nrmax-1];
}
void LIST::put(AbstractElem * pe){
support[free]=pe; free= ++free % nrmax; nrelem++;
}
AbstractElem* LIST::get(){
return support[first];
}
void LIST::remove(){
first= ++first % nrmax;
--nrelem;
}
http://elements.cpp
#include "elements.h"
Person::Person(char *name):name(name){};
void Person::display(){cout<<name<<endl;}
void Person::process(){
cout<<"A Person: ";
display();
}
Car::Car(char *name):name(name){};
void Car::display(){cout<<name<<endl;}
void Car::process(){
cout<<"A Car:";
display();
}


Programul afiseaza datele in ordinea:
a.   Tudor Andrei B-39-TDR
b.   B-39-TDR Andrei Tudor
c.   Andrei B-39-TDR Tudor
d.   B-39-TDR Tudor Andrei


3.   Fie urmatorul program:
// Constructor cu semantica prin referinta
// Operatorul = este cel implicit
#include <iostream.h>
class C{
public:
C(int n=0, int v[]);
friend ostream& operator<<(ostream &o, const C&);
private:
int dim;
int *pi;
};   
C::C(int n, int v[]) {
dim=n;
pi= v;
}
ostream& operator<<(ostream &o, const C &m){
for(int j=0; j<m.dim; j++)o<< m.pi[j]<<" ";
return o;
}
void main(){
int a[]={1,2,3}, b[]={10,20};
C x(3,a),y(2, b);
a[0]= -100;
cout<<x<<endl;
}
Programul afiseaza:
a.   -100 2 3
b.   1 2 3
c.   100 2 3
d.   1 20 30



4.   Fie urmatorul program, in care se utilizeaza clase abstracte:
// abselem.h
#ifndef ABSTRACTELEM_H
#define ABSTRACTELEM_H
class AbstractElem{
public:
virtual void display()=0;
virtual void process()=0;
};
#endif
http://LIST.h
#ifndef LIST_H
#define LIST_H
#include "abselem.h"
class LIST{
public:
LIST(int nrmax=0);
void put(AbstractElem *);
AbstractElem* get();
void remove();
private:
int nrmax;
int nrelem;
int first;
int free;
AbstractElem* *support;
};
#endif
http://LIST.cpp
#include "LIST.h"
LIST::LIST(int nrmax):nrmax(nrmax){
first=free=nrelem=0;
support = new AbstractElem* [nrmax-1];
}
void LIST::put(AbstractElem * pe){
support[free]=pe; free= ++free % nrmax; nrelem++;
}
AbstractElem* LIST::get(){
return support[first];
}
void LIST::remove(){
first= ++first % nrmax;
--nrelem;
}
Care afirmatie este adevarata:
a.   LIST este o structura de date de tip coada
b.   LIST este o structura de date de tip stiva
c.   LIST este o clasa abstracta
d.   LIST este un vector


5.   Fie urmatoarea specificare de clase:
class Complex;
class Punct{
public:
Punct(float x=0, float y=0):x(x),y(y){}
operator Complex();
operator float(){return x;}
private:
float x,y;
};
class Complex{
public:
Complex(float x=0, float y=0):x(x),y(y){}
operator Punct(){return Punct(x,y);}
operator float(){return x;}
private:
float x,y;
};
Metoda Complex:: operator float() este utilizata pentru
a.   Conversia unui numar real in obiect Complex
b.   Conversia unui obiect Complex in obiect Punct
c.   Conversia obiectelor Complex in numere reale
d.   Conversia unui obiect Punct in obiect Complex


6.   Fie urmatorul program:
#include <iostream.h>
class A{
public:
// supraincaracre void s()
void s(){cout<<"void A::s()"<<endl;}
void s(int i){i++;cout<<"void A::s(int)"<<endl; }
// supraincarcare void v()
virtual void v(){cout<<"virtual void A::v()"<<endl;}
virtual void v(int i){i++;cout<<"virtual void A::v(int)"<<endl;}
};
class B:public A{
public:
// 1. supraincarcare metoda statica
int s(){cout<<"int B::s()"<<endl; return 1;}
// 2. specializare metoda statica
void s(int i){i++;cout<<"void B::s(int)"<<endl; }
// 3. specializare metoda virtuala
virtual void v(int i){i++;cout<<"virtual void B::v(int)"<<endl;}
};
void main(){
A *pa;
B b;
pa=&b; pa->v(); pa->s(1);
}
Prin executarea sa, programul afiseaza:
a.   void B::v()
void A::v(int)
b.   void A::v()
void B::v(int)
c.   void A::v()
void A::v(int)
d.   void B::v()
void A::s(int)


7.   Fie programul
//static atribut
#include <conio.h>
#include <string.h>
#include <iostream.h>
class Person{
public:
Person(char *p){name=new char[strlen(p)+1]; strcpy(name,p);
nr++; cout<<nr<<endl;
}
~Person(){nr--; delete[] name;}
private:
char *name;
static long nr;
};
long Person::nr=0;
void f(){Person *p =
new Person("Balanescu");
}
void main(){
for (int i=0; i<5; i++)f();
getch();
}
Programul afiseaza:
a.   1 2 3 4 5
b.   1 1 1 1 1
c.   0 0 0 0 0
d.   0 1 2 3 4


8.   Fie urmatoarea clasa Java:
class C{
public static int i=1;
}
si instructiunile:
C x=new C();
C y=new C();
x.i =x.i +1;
Care afirmatie este adevarata:
a.   Dupa executarea instructiunii x.i =x.i +1; avem x.i = 2 si y.i=2;
b.   Dupa executarea instructiunii x.i =x.i +1; avem x.i = 2 si y.i=1;
c.   Dupa executarea instructiunii x.i =x.i +1; avem x.i = 1 si y.i=2;
d.   Dupa executarea instructiunii x.i =x.i +1; avem x.i = 1 si y.i=1;


9.   Fie urmatoarea clasa Java:
public class Person{
public Person(String p){name=new String(p);
System.out.println(++nr);
}
public static void main(String[] args){
while(true)f();
}
private static void f(){Person p =
new Person("Ionescu");
// obiectele NU se acumuleaza
// in heap si NU blocheaza executarea, spre deosebire de C++
}
private String name;
private static long nr=0;
};
Care afirmatie este adevarata:
a.    Programul nu se opreste din executare;
b.   Programul se termina, cu mesaj de eroare, deoarece la un moment dat nu mai
c.   Exista memorie suficienta pentru crearea obiectelor Person;
d.   Programul are erori de sintaxa;
e.   Programul se termina, fara mesaj de eroare

10.   Fie urmãtorul program Java:

import java.util.Observer;
import java.util.Observable;
import java.awt.*;
import java.awt.event.*;
public class Observator      extends Frame
                  implements WindowListener, Observer{
      static protected ModelObservabil m=new ModelObservabil();
      protected Button exitB, actB;
      protected TextField field;
      private ButtonController buttonC;
      public static void main(String args[]){
            Frame fn=new Observator(0);// nu observa pe m
                 
            Frame f01=new Observator(1);// observa pe m
            Frame f02=new Observator(1);// observa pe m
      }
     
      public Observator(int i){
            if (i==1)m.addObserver(this);
            Panel p= new Panel();
            buttonC=new ButtonController(this);
            exitB= new Button("Exit");
            exitB.addActionListener(buttonC);
            actB= new Button("modifica");
            actB.addActionListener(buttonC);
            field= new TextField("MyTextField");
            field.setEditable(true);
            p.add(exitB);
            p.add(actB);
            add(field);
            add("North",p);
            addWindowListener(this);
            setSize(160,110);
            setVisible(true);
                                   
      }
      public void windowClosed(WindowEvent e){}
      public void windowOpened(WindowEvent e){}     
      public void windowIconified(WindowEvent e){}
      public void windowDeiconified(WindowEvent e){}
      public void windowActivated(WindowEvent e){}
      public void windowDeactivated(WindowEvent e){}
      public void windowClosing(WindowEvent e){dispose();
            http://System.exit(0);
      }
     
      public void update(Observable observ, Object ob){
            field.setText(m.afis);

      }

}

class ButtonController implements ActionListener{
      Observator view;
      public ButtonController(Observator win){
            view=win;
      }
      public void actionPerformed (ActionEvent e){
            Object source=e.getSource();
            if (source == view.exitB) System.exit(0);
            else {
                  view.m.modifica();     
            };
      }
}

class ModelObservabil extends Observable{
      protected int i=0;
      protected String afis="    ";
      public ModelObservabil(){
         
            setChanged();
            notifyObservers();
      }
      public void modifica(){
            i++;
            afis= " "+ i;
            setChanged();
            notifyObservers();
      }
}
Care afirmatie este adevarata, daca se face de click pe butonul stang  mouse asupra butonului „modifica” din fereastra fo1 sau fo2:
a.    Doar in campul de text  field al ferestrei fo1 este  afisata valoarea actualizata a atributului Observator.m.i 
b.  Doar in campul de text  field al ferestrelor fo1 si fo2 este  afisata valoarea actualizata a atributului Observator.m.i 
c.  În campul de text  field al tuturor ferestrelor este  afisata valoarea actualizata a atributului Observator.m.i 
d.  Doar in campul de text  field al ferestrei fo2 este  afisata valoarea actualizata a atributului Observator.m.i 

Am raspuns astfel:
1b, 2(11)a, 3a, 4a?, 5d?, 6c, 7(30)a, 8d (am pus b), 9(33)a, 10(13)b. Am gresit 3.
Numerele din paranteza reprezinta numarul intrebarii din grila sub_ex_ppoo. Intrebarea 8 e nr. 5 din grila de Java. La intrebarea 6 am pus c desi nu afiseaza nici un raspuns din cele de acolo. Se afiseaza: void A::v() void A::s(int)


Ultima editare efectuata de catre chmro in Lun Feb 02, 2009 10:57 pm, editata de 1 ori
avatar
chmro

Numarul mesajelor : 159
Varsta : 47
Localizare : Turda
Data de inscriere : 08/05/2008

Vezi profilul utilizatorului

Sus In jos

Re: P.P.O.O.

Mesaj  nike03 la data de Lun Feb 02, 2009 10:51 pm

Sa inteleg ca ai luat 7, nu chmro?!
Deci se dau 10 subiecte ?
La raspunsuri tie nu-ti lipseste subiectul 7 ?

nike03

Numarul mesajelor : 42
Varsta : 49
Localizare : Bucuresti
Data de inscriere : 12/05/2008

Vezi profilul utilizatorului

Sus In jos

Re: P.P.O.O.

Mesaj  chmro la data de Lun Feb 02, 2009 10:59 pm

nike03 a scris:Sa inteleg ca ai luat 7, nu chmro?!
Deci se dau 10 subiecte ?
La raspunsuri tie nu-ti lipseste subiectul 7 ?

Da, am luat 70/100. Se dau 10 subiecte in 20 de minute. Eu am terminat in 12 minute. Fiecare intrebare am copiat-o pe un notepad apoi am salvat fisierul pe scribd.com sa-l am acasa. Am adaugat intrebarea 7.
avatar
chmro

Numarul mesajelor : 159
Varsta : 47
Localizare : Turda
Data de inscriere : 08/05/2008

Vezi profilul utilizatorului

Sus In jos

Re: P.P.O.O.

Mesaj  smaricel la data de Mar Feb 03, 2009 12:06 am

multumesc chmro pt raspunsuri si in special pentru indicatii, sa inteleg ca 4a? si 5d? le consideri gresite?

smaricel

Numarul mesajelor : 59
Varsta : 48
Localizare : Bucuresti
Data de inscriere : 14/05/2008

Vezi profilul utilizatorului

Sus In jos

Re: P.P.O.O.

Mesaj  chmro la data de Mar Feb 03, 2009 12:08 am

smaricel a scris:multumesc chmro pt raspunsuri si in special pentru indicatii, sa inteleg ca 4a? si 5d? le consideri gresite?

Cel mai probabil sunt gresite. Impreuna cu cea pe care am pus-o eu gresit fac trei intrebari. Eu am gresit trei, deci...
avatar
chmro

Numarul mesajelor : 159
Varsta : 47
Localizare : Turda
Data de inscriere : 08/05/2008

Vezi profilul utilizatorului

Sus In jos

Re: P.P.O.O.

Mesaj  nike03 la data de Mar Feb 03, 2009 10:54 am

Multumesc chmro ! Dar te intreb si pe tine de unde au scos subiectele astea ca eu nu le-am gasit in nici o grila ?!(Sau poate nu m-am uitat eu bine?!)

nike03

Numarul mesajelor : 42
Varsta : 49
Localizare : Bucuresti
Data de inscriere : 12/05/2008

Vezi profilul utilizatorului

Sus In jos

Re: P.P.O.O.

Mesaj  inform la data de Mar Feb 03, 2009 8:22 pm

S-au dat si subiecte de teorie? Sau numai programare C si Java?

inform

Numarul mesajelor : 12
Varsta : 50
Data de inscriere : 08/05/2008

Vezi profilul utilizatorului

Sus In jos

Re: P.P.O.O.

Mesaj  singlexyz la data de Mar Feb 03, 2009 11:58 pm

inform a scris:S-au dat si subiecte de teorie? Sau numai programare C si Java?
Am inteles ca da, dar nu stiu de unde le poti lua ...

singlexyz

Numarul mesajelor : 16
Varsta : 39
Data de inscriere : 21/05/2008

Vezi profilul utilizatorului

Sus In jos

Re: P.P.O.O.

Mesaj  inform la data de Mier Feb 04, 2009 8:16 am

Din grila de anul trecut, sunt subiectele de teorie!


Ultima editare efectuata de catre inform in Joi Feb 05, 2009 9:55 pm, editata de 1 ori

inform

Numarul mesajelor : 12
Varsta : 50
Data de inscriere : 08/05/2008

Vezi profilul utilizatorului

Sus In jos

Re: P.P.O.O.

Mesaj  PopMary la data de Mier Feb 04, 2009 11:25 am

La grila postata de vl_33_dav cred ca unele variante de raspuns sunt gresite.
La compilare am obtinut urmatoarele rezultate:
1. b
10. a
12. d

PopMary

Numarul mesajelor : 1
Varsta : 30
Localizare : CT
Data de inscriere : 04/02/2009

Vezi profilul utilizatorului

Sus In jos

Re: P.P.O.O.

Mesaj  smaricel la data de Mier Feb 04, 2009 5:40 pm

La ex 1 programul afiseaza: A:m() si B:v(), seamana putin cu varianta b dar probabil raspunsul corect este a, la 10 si 12 ai dreptate.

smaricel

Numarul mesajelor : 59
Varsta : 48
Localizare : Bucuresti
Data de inscriere : 14/05/2008

Vezi profilul utilizatorului

Sus In jos

subiecte la PPOO din 05.02.2009

Mesaj  costybr la data de Joi Feb 05, 2009 6:47 pm

nike03 a scris:Sa inteleg ca ai luat 7, nu chmro?!
Deci se dau 10 subiecte ?
La raspunsuri tie nu-ti lipseste subiectul 7 ?

Iata ce subiecte mi-au picat mie:
Cod:

1. Fie programul :
#include <iostream.h>
class Cerc{
public:
      Cerc(float r):raza(r){}
      float getRaza(){return raza;}
      void operator++(){raza++;}
private:
      float raza;
};
class Cilindru: public Cerc{
public:
      Cilindru(float raza, float inaltime):Cerc(raza), inaltime(inaltime){};
      void operator++(){inaltime++;}
      float getInaltime(){return inaltime;}
private:
      float inaltime;
};
void main(){
      Cerc *pc;
      Cilindru c(1,5);
        pc=&c;
      ++ *pc;
      cout<<pc->getRaza()<<" "<<c.getInaltime()<<endl;
      getch();
}                            Programul afiseaza :                              b.   2  5   

2. Fie programul :
// destructor virtual,
#include <iostream.h>
class B{
public:
virtual ~B(){cout<<"~B()"<<endl;}
};
class D: public B{
public:
virtual ~D(){cout<<"~D()"<<endl;}
};
void main(){
B *pb;
D *pd;
pd= new D();
pb=new D();
delete pb;
delete pd;
}                                  Programul afiseaza:            d.   ~ D()~B()~D() ~B()

3. Fie programul:
#include <iostream.h>
class Cerc{
public:
      Cerc(float r):raza(r){}
      float getRaza(){return raza;}
      Cerc operator++(){raza++;return *this;}// return by value
      Cerc operator--(){raza--;return *this;}// return by value
private:
      float raza;
};
void main(){
      Cerc c(1.0);
      cout<<(++(++c)).getRaza()<<” ”;     
      cout<<c.getRaza()<<” ”;             
      cout<<(--(--c)).getRaza()<<” ”;     
      cout<<c.getRaza()<<” ”;             
}                                                              Programul afiseaza : a.     3 2 0 1     

4. Fie programul:
#include <string.h>
#include <iostream.h>
class Person{
public:
      Person(char *p){name=new char[strlen(p)+1]; strcpy(name,p);
            nr++; cout<<nr<<endl;
      }
private:
      char *name;
      static long nr;
};
long Person::nr=0;
void f(){Person *p =
      new Person("Balanescu");
      delete p;
}
void main(){
      while(1)f();
}Care afirmatie este adevarata:
        a.   Programul afiseaza un sir finit de numere 1 2 3 4...etc. pana memoria este epuizata   

5. Fie urmatorul program:
// Public redeclarat private
// #include <iostream.h>
class A{
public:
      void m(){cout<<"A:m()"<<endl;};
      virtual void v(){cout<<"A:v()"<<endl;};
};
class B: public A{
private:
      void m(){cout<<"B:m()"<<endl;};
      virtual void v(){cout<<"B:v()"<<endl;};
};
void main(){
      A a,*p;
      B b;
      b.m(); 
        b.v(); 
  // obiect de tip A
  p=&a; p->m(); p->v();
  // obiect de tip B
      p=&b; p->m(); p->v();
}              Care expresie este incorecta:                                            a.     b.v(); 


6. Fie urmatorul program:
// Public redeclarat private
#include <iostream.h>
class A{
public:
      void m(){cout<<"A:m()"<<endl;};
      virtual void v(){cout<<"A:v()"<<endl;};
};
class B: public A{
private:
      void m(){cout<<"B:m()"<<endl;};
      virtual void v(){cout<<"B:v()"<<endl;};
};
void main(){
      A a,*p;
      B b;
      b.m(); 
        b.v(); 
  // obiect de tip A
  p=&a; p->m(); p->v();
  // obiect de tip B
      p=&b; p->m(); p->v();
}              Care expresie este corecta:                                            d.    p->m(); 
 
7.    Fie urmatorul program:
#include <iostream.h>
class Cerc{
public:
      Cerc(float r):raza(r){}
      float getRaza(){return raza;}
      Cerc operator++(){raza++;return *this;}// return by value
      Cerc& operator--(){raza--;return *this;}// return by reference
private:
      float raza;
};
void main(){
      Cerc c(1.0);
      cout<<(++(++c)).getRaza()<<” ”;     
      cout<<c.getRaza()<<” ”;             
      cout<<(--(--c)).getRaza()<<” ”;
      cout<<c.getRaza()<<” ”;             
}                                                                  Programul afiseaza: c.     3 2 0 0

8.    Fie urmatorul program:
// Constructor cu semantica prin referinta
// Operatorul = este cel implicit
#include <iostream.h>
class C{
public:
      C(int n=0, int v[]);
        void set(int i, int val){pi[i]=val;}

friend      ostream& operator<<(ostream &o, const C&);
private:
      int dim;
      int *pi;
};
C::C(int n, int v[])      {
      dim=n;
      pi= v;
      }
ostream& operator<<(ostream &o, const C &m){
      for(int j=0; j<m.dim; j++)o<< m.pi[j]<<" ";
      return o;
}
void main(){
      int a[]={1,2,3}, b[]={10,20};
      C x(3,a),y(2, b);
      x=y;
      y.set(0,-1000);
      cout<<x<<endl;
}                                                        Programul afiseaza: b.   –1000 20

9. Fie urmatorul program:
// Constructor cu semantica prin referinta
// Operatorul = este cel implicit
#include <iostream.h>
class C{
public:
C(int n=0, int v[]);
friend ostream& operator<<(ostream &o, const C&);
private:
int dim;
int *pi;
};
C::C(int n, int v[]) {
dim=n;
pi= v;
}
ostream& operator<<(ostream &o, const C &m){
for(int j=0; j<m.dim; j++)o<< m.pi[j]<<" ";
return o;
}
void main(){
int a[]={1,2,3}, b[]={10,20};
C x(3,a),y(2, b);
a[0]= -100;
cout<<x<<endl;
}                                    Programul afiseaza:                      a. -100 2 3   

10. Fie următoarele clase Java:
class CoadaCirculara{
public CoadaCirculara(int n, String s){maxDim=n; nume=s; v= new Object[maxDim];}
public boolean esteGoala(){return numarElemente==0;}
public boolean estePlina(){return numarElemente==maxDim;}
public void adauga(Object ob){
  numarElemente++;
  ultim= (ultim+1)%maxDim;
  v[ultim]=ob;
}
public void elimina(){
  numarElemente--;
  prim=(prim+1)%maxDim; 
}

public Object element(){
  return v[prim];
}
public String nume(){return nume;}
private Object v[];
private int maxDim; // numarul maxim de elemente
private int prim=0;//pozitia primului element din lista
private int ultim=-1; //pozitia  elementului  adaugat ultima data
//lista are elementele in vectorul v, de la prim la ultim,
//in sensul acelor de ceasrnic
private int numarElemente=0; // numarul de elemente din coada
private String nume;// numele cozii
}
public class TestCoadaCirculara{
      public static void main(String[] args){
            CoadaCirculara x=new CoadaCirculara(3,"X");
            CoadaCirculara y=new CoadaCirculara(3,"Y");
            x.adauga("aa");
            y.adauga("aa");           
            if(x.equals(y)) System.out.println("X=Y");
            y.adauga("aa");           
            if(x.equals(y)) System.out.println("X=Y");           
      }
}                          Care afirmație este adevărată:              a.  Programul nu afiseaza nimic   

Am luat 50 din 100 de puncte.Nu stiu unde am gresit.

costybr

Numarul mesajelor : 12
Varsta : 64
Data de inscriere : 17/05/2008

Vezi profilul utilizatorului

Sus In jos

NUMAI 10 INTREBARI ?

Mesaj  manolachespz la data de Joi Feb 05, 2009 7:10 pm

ai avut numai 10 intrebari ? astea postate atat ? si astea sunt raspunsurile tale nu ?

manolachespz

Numarul mesajelor : 23
Varsta : 33
Data de inscriere : 18/05/2008

Vezi profilul utilizatorului

Sus In jos

Re: P.P.O.O.

Mesaj  nike03 la data de Joi Feb 05, 2009 7:18 pm

costybr a scris:

Iata ce subiecte mi-au picat mie:
1. Fie programul :
#include
class Cerc{
public:
Cerc(float r):raza(r){}
float getRaza(){return raza;}
void operator++(){raza++;}
private:
float raza;
};
class Cilindru: public Cerc{
public:
........
..........
y.adauga("aa");
if(x.equals(y)) System.out.println("X=Y");
}
} Care afirmație este adevărată: a. Programul nu afiseaza nimic


Am luat 50 din 100 de puncte.Nu stiu unde am gresit.

Multumim costybr pentru ca ai postat subiectele ce ti-au picat la examen !
Dar celelalte doua subiecte lipsa, din cele postate de tine, au fost cumva de teorie?!
Daca as lua si eu macar 5, as fi foarte mulumit! Laughing

nike03

Numarul mesajelor : 42
Varsta : 49
Localizare : Bucuresti
Data de inscriere : 12/05/2008

Vezi profilul utilizatorului

Sus In jos

Re: P.P.O.O.

Mesaj  chmro la data de Joi Feb 05, 2009 8:19 pm

Mai, costybr, nu inteleg cum ai putut lua numai 5 cu raspunsurile alea ca sunt ok toate. Pentru siguranta am compilat intrebarile 1, 2, 3, 4, 7, 8, 9 si dau acelasi rezultat. Deci macar 7 trebuia sa iei. Astia nu-s normali la cap. Ar trebui sa faci contestatie.
avatar
chmro

Numarul mesajelor : 159
Varsta : 47
Localizare : Turda
Data de inscriere : 08/05/2008

Vezi profilul utilizatorului

Sus In jos

Re: P.P.O.O.

Mesaj  costybr la data de Joi Feb 05, 2009 9:23 pm

costybr a scris:
nike03 a scris:Sa inteleg ca ai luat 7, nu chmro?!
Deci se dau 10 subiecte ?
La raspunsuri tie nu-ti lipseste subiectul 7 ?

Iata ce subiecte mi-au picat mie:
1. Fie programul :
#include
class Cerc{
public:
Cerc(float r):raza(r){}
float getRaza(){return raza;}
void operator++(){raza++;}
private:
float raza;
};
class Cilindru: public Cerc{
public:
Cilindru(float raza, float inaltime):Cerc(raza), inaltime(inaltime){};
void operator++(){inaltime++;}
float getInaltime(){return inaltime;}
private:
float inaltime;
};
void main(){
Cerc *pc;
Cilindru c(1,5);
pc=&c;
++ *pc;
cout<getRaza()<<" "< getch();
} Programul afiseaza : b. 2 5

2. Fie programul :
// destructor virtual,
#include
class B{
public:
virtual ~B(){cout<<"~B()"<};
class D: public B{
public:
virtual ~D(){cout<<"~D()"<};
void main(){
B *pb;
D *pd;
pd= new D();
pb=new D();
delete pb;
delete pd;
} Programul afiseaza: d. ~ D()~B()~D() ~B()

3. Fie programul:
#include
class Cerc{
public:
Cerc(float r):raza(r){}
float getRaza(){return raza;}
Cerc operator++(){raza++;return *this;}// return by value
Cerc operator--(){raza--;return *this;}// return by value
private:
float raza;
};
void main(){
Cerc c(1.0);
cout<<(++(++c)).getRaza()<<” ”;
cout< cout<<(--(--c)).getRaza()<<” ”;
cout<} Programul afiseaza : a. 3 2 0 1

4. Fie programul:
#include
#include
class Person{
public:
Person(char *p){name=new char[strlen(p)+1]; strcpy(name,p);
nr++; cout< }
private:
char *name;
static long nr;
};
long Person::nr=0;
void f(){Person *p =
new Person("Balanescu");
delete p;
}
void main(){
while(1)f();
}Care afirmatie este adevarata:
a. Programul afiseaza un sir finit de numere 1 2 3 4...etc. pana memoria este epuizata

5. Fie urmatorul program:
// Public redeclarat private
// #include
class A{
public:
void m(){cout<<"A:m()"< virtual void v(){cout<<"A:v()"<};
class B: public A{
private:
void m(){cout<<"B:m()"< virtual void v(){cout<<"B:v()"<};
void main(){
A a,*p;
B b;
b.m();
b.v();
// obiect de tip A
p=&a; p->m(); p->v();
// obiect de tip B
p=&b; p->m(); p->v();
} Care expresie este incorecta: a. b.v();


6. Fie urmatorul program:
// Public redeclarat private
#include
class A{
public:
void m(){cout<<"A:m()"< virtual void v(){cout<<"A:v()"<};
class B: public A{
private:
void m(){cout<<"B:m()"< virtual void v(){cout<<"B:v()"<};
void main(){
A a,*p;
B b;
b.m();
b.v();
// obiect de tip A
p=&a; p->m(); p->v();
// obiect de tip B
p=&b; p->m(); p->v();
} Care expresie este corecta: d. p->m();

7. Fie urmatorul program:
#include
class Cerc{
public:
Cerc(float r):raza(r){}
float getRaza(){return raza;}
Cerc operator++(){raza++;return *this;}// return by value
Cerc& operator--(){raza--;return *this;}// return by reference
private:
float raza;
};
void main(){
Cerc c(1.0);
cout<<(++(++c)).getRaza()<<” ”;
cout< cout<<(--(--c)).getRaza()<<” ”;
cout<} Programul afiseaza: c. 3 2 0 0

8. Fie urmatorul program:
// Constructor cu semantica prin referinta
// Operatorul = este cel implicit
#include
class C{
public:
C(int n=0, int v[]);
void set(int i, int val){pi[i]=val;}

friend ostream& operator<<(ostream &o, const C&);
private:
int dim;
int *pi;
};
C::C(int n, int v[]) {
dim=n;
pi= v;
}
ostream& operator<<(ostream &o, const C &m){
for(int j=0; j return o;
}
void main(){
int a[]={1,2,3}, b[]={10,20};
C x(3,a),y(2, b);
x=y;
y.set(0,-1000);
cout<} Programul afiseaza: b. –1000 20

9. Fie urmatorul program:
// Constructor cu semantica prin referinta
// Operatorul = este cel implicit
#include
class C{
public:
C(int n=0, int v[]);
friend ostream& operator<<(ostream &o, const C&);
private:
int dim;
int *pi;
};
C::C(int n, int v[]) {
dim=n;
pi= v;
}
ostream& operator<<(ostream &o, const C &m){
for(int j=0; jreturn o;
}
void main(){
int a[]={1,2,3}, b[]={10,20};
C x(3,a),y(2, b);
a[0]= -100;
cout<} Programul afiseaza: a. -100 2 3

10. Fie următoarele clase Java:
class CoadaCirculara{
public CoadaCirculara(int n, String s){maxDim=n; nume=s; v= new Object[maxDim];}
public boolean esteGoala(){return numarElemente==0;}
public boolean estePlina(){return numarElemente==maxDim;}
public void adauga(Object ob){
numarElemente++;
ultim= (ultim+1)%maxDim;
v[ultim]=ob;
}
public void elimina(){
numarElemente--;
prim=(prim+1)%maxDim;
}

public Object element(){
return v[prim];
}
public String nume(){return nume;}
private Object v[];
private int maxDim; // numarul maxim de elemente
private int prim=0;//pozitia primului element din lista
private int ultim=-1; //pozitia elementului adaugat ultima data
//lista are elementele in vectorul v, de la prim la ultim,
//in sensul acelor de ceasrnic
private int numarElemente=0; // numarul de elemente din coada
private String nume;// numele cozii
}
public class TestCoadaCirculara{
public static void main(String[] args){
CoadaCirculara x=new CoadaCirculara(3,"X");
CoadaCirculara y=new CoadaCirculara(3,"Y");
x.adauga("aa");
y.adauga("aa");
if(x.equals(y)) System.out.println("X=Y");
y.adauga("aa");
if(x.equals(y)) System.out.println("X=Y");
}
} Care afirmație este adevărată: a. Programul nu afiseaza nimic


Am luat 50 din 100 de puncte.Nu stiu unde am gresit.

Iata si restul de subiecte:

9. Fie urmatorul program:
// Constructor cu semantica prin referinta
// Operatorul = este cel implicit
#include
class C{
public:
C(int n=0, int v[]);
friend ostream& operator<<(ostream &o, const C&);
private:
int dim;
int *pi;
};
C::C(int n, int v[]) {
dim=n;
pi= v;
}
ostream& operator<<(ostream &o, const C &m){
for(int j=0; jreturn o;
}
void main(){
int a[]={1,2,3}, b[]={10,20};
C x(3,a),y(2, b);
a[0]= -100;
cout<} Programul afiseaza: a. -100 2 3

10. Fie următoarele clase Java:
class CoadaCirculara{
public CoadaCirculara(int n, String s){maxDim=n; nume=s; v= new Object[maxDim];}
public boolean esteGoala(){return numarElemente==0;}
public boolean estePlina(){return numarElemente==maxDim;}
public void adauga(Object ob){
numarElemente++;
ultim= (ultim+1)%maxDim;
v[ultim]=ob;
}
public void elimina(){
numarElemente--;
prim=(prim+1)%maxDim;
}

public Object element(){
return v[prim];
}
public String nume(){return nume;}
private Object v[];
private int maxDim; // numarul maxim de elemente
private int prim=0;//pozitia primului element din lista
private int ultim=-1; //pozitia elementului adaugat ultima data
//lista are elementele in vectorul v, de la prim la ultim,
//in sensul acelor de ceasrnic
private int numarElemente=0; // numarul de elemente din coada
private String nume;// numele cozii
}
public class TestCoadaCirculara{
public static void main(String[] args){
CoadaCirculara x=new CoadaCirculara(3,"X");
CoadaCirculara y=new CoadaCirculara(3,"Y");
x.adauga("aa");
y.adauga("aa");
if(x.equals(y)) System.out.println("X=Y");
y.adauga("aa");
if(x.equals(y)) System.out.println("X=Y");
}
} Care afirmație este adevărată: a. Programul nu afiseaza nimic

costybr

Numarul mesajelor : 12
Varsta : 64
Data de inscriere : 17/05/2008

Vezi profilul utilizatorului

Sus In jos

Re: P.P.O.O.

Mesaj  Continut sponsorizat


Continut sponsorizat


Sus In jos

Pagina 2 din 4 Înapoi  1, 2, 3, 4  Urmatorul

Sus


 
Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum