Exercice 2 — Équations
1. On se place dans le fichier Equation.java
import fr.jussieu.script.Deug;
import java.lang.*;
class Equation {
double a, b, c, delta, r1, r2;
}
Ces propriétés sont suffisantes mais pas nécessaires : les 2 équations x2+x+ 1 = 0 et
2x2+ 2x+ 2 = 0 sont en effet les mêmes. Il y a une redondance dans le fait de se donner
a,bet c, et encore plus si l’on se donne delta,r1et r2que l’on peut calculer à partir des
précédents. En fait, une des façons les plus compactes de décrire toutes les équations du
second ordre serait de fixer aà1et de se donner bet cdeux rééls.
2. Notre classe ressemble maintenant à ça :
class Equation {
double a, b, c, delta, r1, r2;
Equation(double _a, double _b, double _c)
{
a=_a;
b=_b;
c=_c;
}
}
Notez qu’un constructeur porte toujours le même nom que sa classe, et ne retourne aucune
valeur (il initialise seulement un objet).
Nous venons d’écrire un constructeur qui sera appelé lorque l’on créera une instance
d’Equation avec new. Par exemple si quelquepart on a :
Equation e = new Equation(1, 2, 3);
eest alors une référence vers un objet Equation dont les coefficients sont 1, 2 et 3.
3. On rajoute le membre suivant à la classe.
void calculerRacines(){
delta=b*b-4*a*c;
if (delta>=0)
{
r1=(-b-Math.sqrt(delta))/(2*a);
r2=(-b+Math.sqrt(delta))/(2*a);
}
}
Si on veut ajouter un drapeau (ou flag) indiquant la validité des racines stockées, notre
code va devenir le suivant :
class Equation {
double a, b, c, delta, r1, r2;
boolean racinesCalculees;
Equation(double _a, double _b, double _c)
{
2