Upload
fouadhb
View
213
Download
0
Embed Size (px)
Citation preview
8/17/2019 Corrigé Examen 2009-2010
1/7
Faculté d’Electronique & d’Informatique Année 2009/2010
Département Informatique2 ème Année Licence IIL /
E!A"E# $ Introduction % la prorammation orientée o'(et’’
E)ercice 01 *10pt+,1. Ecrire la classe Calcul qui contient la fonction statique xn (n entier naturel positif) sous une
forme récur+i-e :
float puissance(float x; int n);
class Calcul {
public static float puissance(float x, int n) (1)
{
if (n == 0) return 1;
else return x*puissance(x,n-1);
}
}
2. "odéli+ation de polnme +ou+ forme d’un ta'leau
On cherche à modéliser les polynmes de de!rés inférieurs à un maximum (1"") sous la
forme d#un ta$leau contenant ses coefficients
p(x) % a" & a1x &a'x'&...&an1x
n1 &anxn sera représenté dans le ta$leau
a" a1 a' ... an1 an
Ecrire une classe olnome représentant un polynme sous cette forme en encapsulant
l#acc*s au coefficients !r+ce à ' méthodes +etcoefficient*float coefl 3 int dere, et float
etcoefficient*int dere,
Ecrire son con+tructeur qui initialisera tout polynme à p(x)%"
Ecrire la méthode float 4alcul*float ), qui retourne la ,aleur du polynme pour un param*tre x donné en utilisant la formule traditionnelle
p(x) % a" & a1x &a'x'&...&an1x
n1 &anxn en utilisant la fonction puissance définie à la question1.
class TPolynoe
{
float!" tab;(0,#$)
public %oi& setcoefficient(float coefl, int &e're) (0,$)
{
tab!&e're" = coefl;
}
-a!e 1 sur
8/17/2019 Corrigé Examen 2009-2010
2/7
float 'etcoefficient(int &e're) (0,$)
{
return tab!&e're";
}
public TPolynoe(int n) (0,$)
{
tab = ne float!100"; for (int i = 0; i n; i) tab!i" = 0;
}
public float CalculP(float x) (1)
{
float poly = 0;
for (int i = 0; i tab+en't; i)
poly = tab!i" * Calcul+puissance(x, i);
return poly;
}
}
5. "onme
Ecrire une classe "onome permettant de mémoriser un monme a.xn défini par le couple
d#attri$uts (de!ré coefficient).
Ecrire le constructeur "onome*int dere3float coef ) permettant d#initialiser un o$/et de
cette classe.
Ecrire la méthode float 4alcul*float ), calculant la ,aleur du monme pour le param*tre xen utilisant la fonction puissance définie à la question 1.
class T.onoe
{
public int &e're; float coef; (0,#$)
T.onoe(int &e're,float coef) (0,$)
{
tis+&e're = &e're;
tis+coef = coef;
}
float calcul(float x) (1)
{
return coef * Calcul+puissance(x, &e're);
}
}
6. "odéli+ation de polnme +ou+ forme d’une li+te de monme+
Ecrire une classe olnomeLi+te qui contiendra dans un o$/et de la classe ArraLi+t une
liste d#o$/ets monome.
Ecrire le constructeur de cette classe.
-a!e ' sur
8/17/2019 Corrigé Examen 2009-2010
3/7
Ecrire la méthode float etcoefficient*int dere, qui cherche si un monme de de!ré dereexiste dans la liste et ram*ne son coefficient (sinon la fonction ram*ne ").
Ecrire la méthode +etcoefficient*float coef 3 int dere, qui a/oute un monme si le polynme ne contient pas de monme de ce de!ré dans la liste ou qui remplace dans la liste le
coefficient du monme du de!ré considéré s#il existe dans la liste.
Ecrire la méthode float 4alcul*float ), qui retourne la ,aleur du polynme pour un param*tre x.
class TPolynoeiste
{
/rrayist tab; (0,#$)
public TPolynoeiste()(0,#$)
{
tab = ne /rrayist();
}
public float 'etcoefficient(int &e're) (1,$) {
int i=0;
ile ((i tab+Count) (((T.onoe)tab!i")+&e're = &e're))
{
i;
}
if (i == tab+Count) return 0;
else return ((T.onoe)tab!i")+coef;
}
public %oi& setcoefficient(float coef, int &e're) (1,$)
{
if ('etcoefficient(&e're) == 0)
{ tab+/&&(ne T.onoe(&e're, coef));
}
else
{
int i = 0;
ile ((i tab+Count)(((T.onoe)tab!i")+&e're = &e're))
{
i;
}
((T.onoe)tab!i")+coef = coef;
}
}
public float CalculP(float x) (1)
{
float poly=0;
foreac (T.onoe y in tab)
{
poly = y+calcul(x);
}
return poly;
}
}
ArrayList
-a!e 0 sur
8/17/2019 Corrigé Examen 2009-2010
4/7
La classe ArrayList contient des éléments de type Object
La propriété Count permet de connaître le nombre d’éléments dans la collection
La méthode Add permet d’ajouter un object à la fin de la ArrayList
La méthode insert permet d’ajouter un object à une position dans la ArrayList
La méthode remove permet de supprimer supprimer un object de la ArrayList
Utiliser [ pour accéder au! éléments de la ArrayList
La méthode Clear permet de supprimer tous les éléments
E)ercice 2 *5 pt+,1. On consid*re le code sui,ant : (1)class pro'ra
{
public static %oi& .ain()
{
2 e1 = ne 2biss();
e1+f();
((2)e1)+f();
((2biss)e1)+f();
}
} class 2
{
public %irtual %oi& f()
{
Console+3riteine(42+f4);
'();
}
public %irtual %oi& '()
{
Console+3riteine(42+'4);
}
}
class 2biss52 {
public o%erri&e %oi& f()
{
Console+3riteine(42biss+f4);
'();
}
public o%erri&e %oi& '()
{
Console+3riteine(42biss+'4);
}
}
rou,er la ou les $onnes réponses
a Ce pro!ramme ne peut pas 2tre compilé.
$ 3l !én*re une erreur à l#exécution.
c 4a sortie sera :E$iss.f E$iss.! E$iss.f E$iss.! E$iss.f E$iss.!.
d 4a sortie sera :E$iss.f E$iss.! E.f E.! E$iss.f E$iss.!.
e 4a sortie sera :E.f E.! E.f E.! E$iss.f E$iss.!.
'. 4#interface 3Clona$le est définie comme suit : ("5)interface 6Cloneable
{
public ob7ect Clone();
}
6oit la classe - telle que :class P 5 6Cloneable
{
-a!e 7 sur
8/17/2019 Corrigé Examen 2009-2010
5/7
public int i=10;
P(int i){tis+i=i;}
public ob7ect Clone()
{
try
{ return base+Clone(); } catc (2xception e) { return null;}
}
}
8uelle est la $onne réponse et pourquoi 9
a Cette implémentation est correcte.
$ Cette implémentation n#est pas correcte. 4a classe O$/ect ne contient pas de méthode Clone
0. interface 3 (15) ,oid f(); int f(int i);
interface < : 3 ,oid f(dou$le d);
class = :
8/17/2019 Corrigé Examen 2009-2010
6/7
(h) D interface Goo : oo ee
(i) D interface @oo : i (/) D class Goom : i @aF (H) D class oon : oo Goom (l) D interface Iroom : i @aF (m) D class Jo> : oo i
(7) Considérer les classes sui,antes et indiquer laKles réponses correcte(s) si linstruction
proposée est insérée en li!ne L : (15)
1 class pro'ra
# {
8 public static %oi& .ain()
9 {
$ : x1 = ne :();
: x# = ne }
(5) Considérer les classes sui,antes et indiquer laKles réponses correcte(s) si linstruction
proposée est insérée en li!ne : (05)
1 class pro'ra
# {
8 public static %oi& .ain()
9 {
$ / a = ne /(); B b = ne B();
?* @ replacer*?
> }
A }
10 class /
11 {
1# public %irtual %oi& &oTeob(){}
18 }
19 class B 5 /
1$ {
1 public o%erri&e %oi& &oTeob() { }
1 }
1> class C1A {
#0 public %oi& &oTeob() { }
-a!e M sur
8/17/2019 Corrigé Examen 2009-2010
7/7
#1 }
-a!e sur