Corrigé Examen 2009-2010

  • 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