Licence professionnelle : Technologie
des Applications Internet
TD de Programmation n°5
Objectifs : Le but de ce TP est de vous faire expérimenter avec l’écriture et l’utilisation de méthodes statiques
On désire écrire en langage JAVA une application éducative pour apprendre la notion de polynôme à une variable à des collégiens, et les initier aux notions d’évaluation, d’égalité, d’addition et de dérivation de polynômes.
Un polynôme est représenté par la séquence des ses coefficients rangés dans un tableau. On se limitera à des polynômes de degré 10 au maximum.
Par exemple le polynôme P(x) = 10.4 x10 + 0.3 x8 - 1.3 x7 + 4.25 x4 + 6.7 x - 5.1 sera représenté par le tableau p1 suivant :
index |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
p1 |
-5.1 |
6.7 |
0.0 |
0.0 |
4.25 |
0 |
0 |
-1.3 |
0.3 |
0 |
10.4 |
Le programme permet à l’utilisateur de définir 5 polynômes et d’expérimenter sur ceux –ci en choisissant l’une des actions suivantes :
1 : afficher le degré d’un polynôme donné (l’utilisateur indique par son rang lequel des 5 polynômes il veut afficher)
2 : afficher un polynôme donné (l’utilisateur indique par son rang lequel des 5 polynômes il veut afficher)
3 :
afficher les 5 polynômes
4 : modifier les coefficients d’un polynôme donné (l’utilisateur indique
par son rang lequel des 5 polynômes il veut afficher)
6 : générer (en tirant leurs coefficients au hasard) 5 nouveaux polynômes
7 : évaluer un polynôme pour une valeur donnée (l’utilisateur indique par son rang lequel des 5 polynômes il veut évaluer et fournit la valeur de x )
8 : additionner deux polynômes (l’utilisateur indique par leur rang lesquels des 5 polynômes il veut additionner ainsi que le rang du polynôme dans lequel il veut stocker le résultat)
9 : tester l’égalité de deux polynômes (l’utilisateur indique par leur rang lesquels des 5 polynômes il veut comparer)
10 : dériver un polynôme (l’utilisateur indique par son rang lequel des 5 polynômes il veut dériver)
Pour réaliser ces opérations on définira les méthodes suivantes :
static double[] creerPolynomeHasard(int d, double coeffMin, double coeffMax)
// crée et retourne un tableau de coefficients pour un polynome de degré d en tirant au hasard ses
// coefficients dans l'intervalle [coeffMin, coeffMax]
static double[] creerPolynome()
// crée et retourne un tableau de coefficients pour un polynôme , les coefficients étant lus au clavier
// ---------- méthodes ------------------------------------------
static int degre()
// retourne le degré du polynôme
static boolean egalite(double[] p1, double[] p2)
// retourne vrai si les coefficients du polynôme p1 sont égaux aux coefficients du polynôme p2, faux sinon
static void afficher(double[] p)
// affiche sur la console le polynôme dont les coefficients sont dans le tableau p
// les monômes de coefficient non nul sont affichés dans l’ordre des degrés décroissant (dans le cas
// d’un coefficient positif on prendra soin de précéder l’affichage du monôme (voir méthode affiche de la
// classe Monome) du signe ‘+’ (sauf si il s’agit du premier monôme).
//
// exemples :
// "P(x) = 0"
// "P(x) = -13.245"
// "P(x) = 10.4 x^4 +2.345 x^3 -6.4 x + 2"
// "P(x) = -12.5 x^7 +3.4 x^5 +2.4 x"
static double evaluer(double[] p, double x)
// calcule et renvoie la valeur du polynôme dont les coefficients sont dans le tableau p pour la donnée x
static double[] ajouter(double[] p1, double[] p2)
// crée et retourne le tableau des coefficients du polynôme qui est la somme des deux polynôme p1 et p2
// passés en paramètre
static double[] deriver(double[] p)
// crée et retourne le
tableau des coefficients du polynôme qui est la dérivée du polynôme p passé en
// paramètre
Travail à réaliser :
Le squelette de l’application polynôme vous est fourni (Polynome.java). Recopiez ce fichier source sur votre compte et complétez le en réalisant les opérations ci-dessus.
pour tirer un nombre au hasard, on utilisera la methode random de la classe Math qui renvoie un nombre (double) tiré aléatoirement dans l’intervalle 0..1 (appel par Math.random()).