BE Chapitre #1 - Gestion et manipulation d’un polynôme¶
S7 Appro – Inf A3 EG - Applications concurrentes, mobiles et réparties en Java
Objectifs :
L’objectif est de créer une classe Polynome pour manipuler des polynômes tels que : 5 + 3 x^1 - 3.5 x^2 (évaluation en x, génération du polynôme dérivé…). Pour cela on commence par implémenter une classe Monome pour manipuler des monômes du type a X^b ; un polynôme étant alors représenté par un vecteur de monômes…
Partie 1 : la classe Monome¶
Un monôme est caractérisé par un degré (entier positif) et un coefficient (nombre réel). Cette classe comportera :
- Un constructeur permettant d’initialiser les attributs d’un monôme.
- Deux méthodes
getter
qui renvoient les degré et coefficient de l’objet. -
Une méthode d’affichage du monôme. Pour cela, surchargez la méthode
toString
de telle manière que l’affichage d’un monôme donne par exemple : 3.4 X^3. Pour améliorer la lisibilité de l’affichage, votre méthode devra respecter les règles suivantes pour les monômes de degrés 0 et 1 :- 2.5 X^0 s’affichera 2.5.
- 3 X^1 s’affichera 3 X.
- Un monôme de coefficient égal à 0 ne générera aucun affichage.
-
Une méthode
addMonomeMemeDegre(...)
qui met à jour le coefficient d’un monôme à partir d’un nombre réel transmis comme argument de la méthode. Ainsi, ajouter à un monôme P de coefficient 2.5 et de degré 3 la valeur 4.7 modifiera P en un monôme de coefficient 7.2 et de degré 3.
- Écrire un petit programme principal qui utilise les capacités de votre classe (n’oubliez pas d’utiliser
addMonomeMemeDegre(...)
, et qui permet de vérifier que les règles d’affichage sont respectées.
Partie 2 : la classe Polynome¶
Un objet de la classe Polynome sera représenté par un tableau de monômes. Lors de la création d’un polynôme, on stipulera l’ordre maximum du polynôme. Par exemple, un polynôme d’ordre 3 n’admettra que des monômes de degré 0, 1 et 2, et sera représenté par un tableau de 3 monômes (cette taille ne pourra pas changer au cours de l’existence de l’objet).
-
Écrire le constructeur en Java qui alloue le tableau de monômes et qui initialise le coefficient de chaque monôme à 0. Si l’ordre maximum transmis en argument est strictement négatif, on générera une exception standard avec un message d’erreur.
-
Écrire une méthode
void addMonome (Monome M)
qui met à jour le coefficient du monôme correspondant dans le polynôme avec le monôme M transmis en argument. Penser à vérifier que le degré de M est compatible avec le polynôme. -
Surcharger la méthode
toString
pour l’affichage d’un polynôme. -
Écrire un programme principal qui crée le polynôme 11.4-1.45X^2 et l’affiche.
Partie 3 : Compléments sur la classe Polynome¶
Ajoutez les méthodes suivantes :
-
double polyEval(double x)
qui renvoie la valeur du polynôme en x. On utilisera la méthodeMath.pow(x, y)
pour calculer x à la puissance y. Ainsi l’évaluation du polynôme de l’exercice 2 en x=1 devra retourner la valeur 9.95. -
polynome getPolyDeriv()
qui renverra un nouvel objet de la classe Polynome contenant le polynôme dérivé de l’objet sur lequel on applique la méthode. Ainsi le polynôme dérivé de la partie 2 s’affichera -2.9 X.