NFA032 : annale deuxième session : 21/04/2016

Modérateurs : F. Barthélemy, eric.soutil

Verrouillé
V.B.fod31
Messages : 83
Inscription : 10 févr. 2014 12:58

NFA032 : annale deuxième session : 21/04/2016

Message par V.B.fod31 » 08 févr. 2017 16:49

Bonjour,
Exercice 1 : programmation objet, question 2
voulez vous un resultat de type :
EntreeDico mot1 = new EntreeDico("lapin", "nom", "rongeur aimant les carrottes");
FormeFlechie forme = new FormeFlechie(mot1, "nom commun, masculin singulier");

ou :
EntreeDico mot1 = new EntreeDico("lapin", "nom", "rongeur aimant les carrottes");
FormeFlechie forme = new FormeFlechie(mot1, "masculin singulier (pluriel : lapins)");

ou :
EntreeDico mot1 = new EntreeDico("lapin", "nom", "rongeur aimant les carrottes");
FormeFlechie forme = new FormeFlechie(mot1, "lapins, lapine, lapines, lapereau, lapereaux");

Exercice 4 : interface/héritage
J'ai un gros soucis avec les questions car le constructeur des classes énoncées requièrent des paramètres.
Du coup toutes les propositions énoncées sont fausses.
Ce qui fait que la question 2 et 3 la réponse est aucune variable crées puisque il manque les paramètres pour construire André Paul et Sylvie. On en pourra pas non plus appeler de méthode....

S’agit-il d'une erreur dans les propositions données ou bien fallait-il constaté ces erreurs de paramètres manquants ?
la question vaut 4,5 point c'est donc important de savoir ce qu'il faut faire si samedi on tombe sur ce genre de cas :(

Dois-je répondre ce que j'ai expliqué plus haut et ajouté dans le doute :
par exemple pour la question 1 :
......
3. Animal an = new Animal() ; incorrect car il manque le paramètre p (le constructeur par défaut à été écrasé par le constructeur Animal ( int p )
......

Question 2 et 3
Pour traiter les question supposons que l'on aie écrit :
Animal andre = new Animal(43)
Animal paul = new Mouton(56);
Herbivore sylvie = new Mouton(54);
puis répondre aux questions avec ces exemples.

Mais c'est du temps en plus :(

Ce genre d'erreur n'est visible que quand on tente de faire l'exercice (je n'avais pas remarqué d'erreurs à la lecture).

achabe
Messages : 21
Inscription : 20 oct. 2016 18:09

Re: NFA032 : annale deuxième session : 21/04/2016

Message par achabe » 05 avr. 2017 9:56

Bonjour,

Je fais les mêmes constats que toi. Voici comment je vois les choses après avoir lu les conseils pour l'examen ainsi que la correction d'une annale de 2013 :
1) pour les dictionnaires et les formes fléchies, faire au plus simple (et au plus rapide) puisque rien n'est précisé dans l'énoncé. J'aurais mis, en reprenant ton exemple :
EntreeDico mot1 = new EntreeDico("lapin", "nom", "rongeur aimant les carrottes");
FormeFlechie forme = new FormeFlechie(mot1, "masculin singulier");

2) oui toutes les propositions sont fausses. Néanmoins, les propositions 3, 4 et 8 pourraient être correctes si le constructeur appelé avait un bon paramètre. En effet :
3. Animal an = new Animal() ; /* Faux car pas de constructeur sans argument dans la classe Animal */
mais Animal an = new Animal(500) ; /* OK */
4. Animal an = new Mouton() ; /* Faux car pas de constructeur sans argument dans la classe Mouton */
mais Animal an = new Mouton(500) ; /* OK car Mouton hérite de Animal */
8. Herbivore herb = new Mouton() ; /* Faux car pas de constructeur sans argument dans la classe Mouton */
mais Herbivore herb = new Mouton(500) ; /* OK car la classe Mouton implémente l'interface Herbivore */

Pour la suite de l'exercice 4 sur interface/héritage :
1) Questions 2 et 3 : l'erreur est reportée, on la signale mais on fait comme si les constructeurs avaient bien un bon paramètre.
2) La question 3 me semble est une redondance de la question 2 : on a listé les méthodes inclues dans chaque objet à la question 2, donc on sait quelles méthodes peuvent être appelées sur chaque objet à la question 3.
3) Herbivore sylvie = new Mouton();
- variables : vivant (boolean) hérité de Animal + poids (int) hérité de Animal
- méthodes : seules les méthodes définies dans l'interface Herbivore sont contenues dans l'objet Sylvie qui est de classe déclaré Herbivore (cf cours sur les interfaces), donc seules les méthodes mange() (extension) et meurt() (héritée de Animal), et surtout pas bele().
4) Animal paul = new Mouton();
J'ai un doute, mais si c'était Mouton paul = new Mouton(); j'aurais répondu :
- variables : vivant (boolean) hérité de Animal + poids (int) hérité de Animal
- méthodes : toutes les méthodes de la classe Mouton, soit mange() (extension), meurt() (héritée de Animal) et bele() (extension)
A priori je dirai que paul est de classe déclarée Animal mais de classe réelle Mouton, donc il a toutes les méthodes de Mouton. A confirmer, j'ai posé une question sur la conversion des types afin d'y voir plus clair.

A+

Verrouillé

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité