Vous êtes sur la page 1sur 1

Université de Nice-Sophia Antipolis vendredi 21 septembre 2018 respectivement, la première et la deuxième racine de l’équation.

mière et la deuxième racine de l’équation. Ces deux méthodes possèdent les


PeiP2 Durée: 2h en-têtes suivants :
/* *
* Renvoie la première racine de l ’ équation courante
Algorithmique et Programmation Java *
Travaux Pratiques – Séance no 2 * @return un < code > Complexe </ code >
*
*/
p u b l i c Complexe premièreRacine ()

1 Un objet équation du second degré /* *


* Renvoie la deuxième racine de l ’ équation courante
Il s’agit de d’écrire une classe Eq2Degré qui représente une équation du second degré de la forme *
ax2 + bx + c = 0 avec a 6= 0 et ses deux racines de type Complexe. * @return un < code > Complexe </ code >
*
1) Dans le répertoire Complexe, ouvrez un nouveau fichier Eq2Degré.java. Dans ce fichier définissez */
la classe Eq2Degré qui possède trois attributs privés, la constante epsilon, pour la précision des p u b l i c Complexe deuxièmeRacine ()
calculs, et les deux racines, rac1 et rac2 de type Complexe.
4) Ouvrez un nouveau fichier TestEq2degré.java, et écrivez la classe TestEq2degré avec la fonction
2) Ajoutez le constructeur Eq2Degré qui posséde comme paramètres  données , les trois coef- main pour tester la classe Eq2Degré.
ficients de l’équation et qui calcule les racines rac1 et rac2. Vous utiliserez une méthode privée
résoudre qui résout l’équation comme on le fait habituellement en math, en particulier pour les i m p o r t java . io .*;
racines réelles. De plus, ce constructeur vérifiera que le coefficient du terme de degré 2 est non nul c l a s s TestEq2degré {
p u b l i c s t a t i c v o i d main ( String [] args ) t h r o w s IOException {
et affichera un message d’erreur dans le cas contraire.

√ que si ∆ > 0, l’équation admet deux racines réelles r1 = (−b + √∆)/2a et
On rappelle Eq2degré e = new ...
r2 = (−b − ∆)/2a, sinon elle admet deux racines complexes r1 = r2 = −b/2a et i1 = −∆)/2a,
i2 = −i1. System . out . println (.....
p u b l i c c l a s s Eq2degré { }
p r i v a t e s t a t i c f i n a l d o u b l e epsilon = 1E -10; }
p r i v a t e Complexe rac1 , rac2 ;
5) Ajoutez à la classe Eq2Degré, la méthode toString qui renvoie une représentation des deux
/* * racines sous la forme d’une chaı̂ne de caractères
* Construit un objet Eq2degré avec les 3 coefficients a ( a !=0) , b et c
* et calcule ses 2 racines de type Complexe . 6) Dans la fonction main, testez la méthode toString en exécutant par exemple l’énoncé suivant :
*
System . out . println ( e );
* @param a coefficient < code > double </ code > du terme de degré 2
* @param b coefficient < code > double </ code > du terme de degré 1
* @param b coefficient < code > double </ code > du terme de degré 0 7) Testez votre programme avec les coefficients suivants a = 1e − 13, b = −200 et c = 1. Que
*/ constatez-vous ?
Eq2degré ( d o u b l e a , d o u b l e b , d o u b l e c ) {
8) Le résultat aberrant vient de l’inexactitude de l’arithmétique informatique sur les réels à cause de
assert .... leur représentation sur l’ordinateur. Le type réel décrit un nombre fini de représentants d’intervalles
résoudre (a ,b , c ); du continuum des réels mathématiques. Si deux objets réels sont dans le même intervalle, ils
} auront le même représentant et ne pourront pas être distingués. Une opération dangereuse est la
/* * soustraction qui faudra éviter et qui conduira à transformer les algorithmes afin de minimiser les
* Antécédent : a , b , c coefficients réels de l ’ équation ( ax 2 + bx + c = 0) erreurs.
* Conséquent : (x - rac1 ) (x - rac2 ) = 0
*/ Dans le cas du calcul des racines complexes,√on calcule d’abord la racine √ la plus grande en
p r i v a t e v o i d résoudre ( d o u b l e a , d o u b l e b , d o u b l e c ) { valeur absolue. Si b > 0, alors on calcule (−b − ∆)/2a, sinon c’est (−b + ∆)/2a. Une fois ce
.... calcul effectué, la seconde racine se déduit de la première par le produit r1 × r2 = c/a, sauf si la
} première est nulle. Auquel cas, la seconde l’est aussi.
} //fin classe Eq2degré
9) Écrivez une deuxième version de votre classe Eq2Degré qui met en œuvre l’algorithme précédent
Notez que chaque objet de type Eq2Degré définit une équation du second degré particulière et testez-la avec les coefficients précédents a = 1e − 13, b = −200 et c = 1.
représentée par ses deux racines.

3) Ajoutez à la classe Eq2Degré, les méthodes premièreRacine et deuxièmeRacine qui renvoient

1 2

Vous aimerez peut-être aussi