Exercice n° 3: pour une granularité plus fine (trop fine ?)

On a remarqué à l'exercice précédent que l'écriture des méthodes pour les expressions composées est encore complexe.
Alors on spécialise ces expressions composées en Addition , Soustraction , Multiplication et Division.

Question 1 : Donner le nouveau schéma Uml et la nouvelle implantation avec le programme de test modifié.

En fait les expressions composées peuvent avoir des opérateurs binaires mais aussi des opérateurs unaires (comme l'inversion ou -unaire) et les Expressions simples sont en fait des expressions constantes qui peuvent être autre chose que des nombres.
On a donc réorganisée le graphe d'héritage de la manière suivante :

                       

Question 2 : Donner la nouvelle implantation avec le programme de test modifié.

Question 3 : On  a remarqué que l'affichage par la méthode 'toString()' ne convient que si l'écriture de l'expression ne demande pas de parenthèses. Ajouter un affichage postfixe des expressions. Le moins unaire sera noté _.
Exemple : 1+2*(-5)-3 postfixée : 1 2 5 _ * 3 - +

Question 4: Ajouter un affichage préfixe des expressions i.e. l'écriture fonctionnelle.
Exemple : 1+2*(-5)-3 préfixée : add(1 , sous(mult(2 , inv(5)) , 3))

Remarque : --Méthode informelle d'introduction d'une nouvelle opération/action sur les Expressions--

  • Il faut ouvrir tous les fichiers de l'application et implanter la nouvelle méthode (soit abstraite, soit spécialisée)


/* des idées...   Q1  ,  Q2 +Q3