Merge branch 'mat-devel'
[ProjetInfo.git] / REPONSES
blob8fa084ee63c10be4f5d8520e90510444ea529ab1
1 Projet d'informatique II, semestre de printemps 2010 EPFL
2 REPONSES : réponses aux questions de conception et autres...
3 Damien Nguyen et Etienne Wodey (PH)
5 =====================================================================
7 Question P1.1
8 Les vecteurs de Rn pour n quelconque sont représentés par l'abstraction objet Vector implémenté sous la forme d'une classe. Le fichier CONCEPTION_CLASSES décrit l'organisation de toutes les classes utilisées dans ce projet.
9 On s'efforcera de respecter scrupuleusement le principe d'encapsulation, donc en particulier tous les attributs sont privés (ou protégés suivant le contexte d'héritage).
11 Argument en faveur de la représentation des composantes par std::vector<double>
12 On favorise ici la cohérence : les composantes d'un vecteur dans Rn sont une collection homogène de réels => tableau. L'aspect dynamique provient du fait que l'on ne connait a priori pas la dimension du vecteur lors de l'instanciation.
14 Politique de gestion des opérations sur des vecteurs de dimensions différentes
15 Dans la rigidité la plus aboutie, une exception (std::logic_error dans un premier temps) est lancée si des opérations sont tentées sur des vecteurs de dimensions différentes. Cette politique permet également de déceler lesdites erreurs de logiques éventuellement commises par la suite dans le code. (Le 2010-03-03 nous ne voyons pas l'intérêt de projeter ou de plonger Rn dans Rm, n!= m).
17 =====================================================================
19 Question P3.1
20 Ce choix n'a pas vraiment de raison d'être, le compilateur se chargeant d'en créer un par défaut, mais nous préférons le définir nous-même, afin de garantir son implémentation.
22 Question P3.2
25 Question P3.3
26 Nous avons transformé la methode 'void show()' en l'opérateur 'ostream& operator<< ()' et la methode 'bool equals()' en l'operateur 'bool operator == ()'.
28 =====================================================================