Algorithmique des calculs (2)
•Addition
–Multiplier les dénominateurs etc…
– N1/D1 + N2/D2 =
(N1 x D2 + D1 x N2) / (D1 x D2)
•Soustraction
– Même principe
– N1/D1 - N2/D2 =
(N1 x D2 - D1 x N2) / (D1 x D2)
Addition en Java
Fraction add(Fraction f) {
Fraction r = new Fraction();
r.numerateur = numerateur *
f.denominateur + f.numerateur *
denominateur;
r.denominateur = denominateur *
f.denominateur;
return r;
}
Soustraction en Java
Fraction sub(Fraction f) {
Fraction r = new Fraction();
r.numerateur = numerateur *
f.denominateur - f.numerateur *
denominateur;
r.denominateur = denominateur *
f.denominateur;
return r;
}
Méthodes de comparaison
•Renvoient une valeur booléenne
– C’est un type primitif: boolean
•Comme pour le calcul, opèrent sur 2 fractions:
–L’une est la fraction à laquelle s’applique la méthode
–L’autre est donnée en argument
boolean maMethode(Fraction arg) {…}
Algorithmique des comparaisons
•Egalité
–Différent de l’identité: vrai si les deux fractions
représentent la même valeur
– N1/D1 = N2/D2 ssi N1 x D2 = D1 x N2
•Inégalité
–On utilise le même principe
– N1/D1 > N2/D2:
•si D2 de même signe, si N1 x D2 > D1 x N2
•Sinon, si N1 x D2 < D1 x N2
Égalité en Java
boolean equals(Fraction f) {
boolean r;
r = (numerateur *
f.denominateur) ==
(denominateur * f.numerateur);
return r;
}