• Aucun résultat trouvé

Sujet 5 - Héritage & méthodes abstraites

N/A
N/A
Protected

Academic year: 2022

Partager "Sujet 5 - Héritage & méthodes abstraites"

Copied!
2
0
0

Texte intégral

(1)

IUT des Pays de l’Adour - RT1

M2207 - Consolidation des bases de la programmation

POO & langage Java

Sujet 5 - Héritage & méthodes abstraites

Expressions Numériques Dans cet exercice, il s’agit de spécifier et d’implémenter les différentes classes permet- tant de construire, d’évaluer et d’afficher des expressions numériques représentées sous forme d’arbre. Par exemple, l’expression 3 + 2 * 6 - 2 * (4 + 9) pourrait être représentée par l’arbre de la figure 1 (c’est une des solutions possibles) :

-

+

3 *

2 6

*

2 +

4 9

Figure1 – Expression numérique

? ? ?

Il faut pour cela commencer par définir une classeExpressionde laquelle hériteront les classes suivantes :

— classeConstante: les instances de cette classe seront des constantes réelles

— classe OperateurBinaire: les instances de cette classe seront composées d’une expression gauche, d’un opé- rateur et d’une expression droite ; bien évidemment (sic), l’opérateur ne sera pas explicitement codé dans un attribut quelconque, mais sera plutôt représenté implicitement par différentes sous-classes Plus, Moins, Multiplier,Diviser, etc. . .

Au final, le graphe de classes pourrait ressembler à celui de la figure 2. Ce ne sont que les grandes lignes. Libre à vous de le compléter comme bon vous semble en utilisant au mieux les différentes notions vues en cours et en TD (en vrac : méthodes et classes abstraites, méthodes et classes finales, méthodes génériques, constructeurs spécialisés, redéfinition de méthodes, surcharge de méthodes,. . .). Et n’oubliez pas de faire un programme de test pertinent!

Une fois ceci terminé et testé, vous vous attacherez ensuite à ajouter la classeVariable. Une variable est représentée par son nom, sa valeur pouvant varier selon le contexte. Vous devrez donc mettre en œuvre une classe Contexte permettant d’associer une valeur à une variable, de modifier la valeur associée à une variable, etc. . . Ensuite il faut faudra définir et implémenter (proprement et correctement) une nouvelle méthode permettant d’évaluer une expression numérique en fonction d’un contexte donné (celui-ci étant utilisé par les variables pour connaître leur valeur).

1

(2)

Expression

double evaluer()

String notationInfixee() String notationPostfixee()

Constante

double valeur

Plus Moins Multiplier Diviser

OperateurBinaire

Expression gauche Expression droite String opName()

Variable

String nom

Figure2 – Graphe de classes

2

Références

Documents relatifs

L’évaluation d’un circuit consiste, étant données se valeurs d’entrée, à déterminer sa valeur de sortie.. Travail

- d'utiliser en quelque sorte l'héritage multiple, même si cette notion est inexistante en java: Une classe dérivée ne peut hériter que d'une seule classe de

Deux nombres relatifs négatifs sont rangés dans l'ordre inverse de leurs distances à zéro.. Comparer des

Une écriture fractionnaire est une écriture d'un quotient avec un trait de fraction, mais le numérateur ou le dénominateur ne sont pas entiers. Un pourcentage est une

Il s'agit de bien repérer, dans le texte, les termes à traduire en expression littérale.. 

Il s'agit de bien repérer, dans le texte, les termes à traduire en expression littérale.. 

Le facteur commun peut avoir plusieurs formes : un nombre en écriture décimale, en écriture fractionnaire, sous forme d'une lettre ; une

Le facteur commun peut avoir plusieurs formes : un nombre en écriture décimale, en écriture fractionnaire, sous forme d'une lettre ; une