Opération de base pour des fractions
Bonsoir,
J'ai un petit problème, je dois créer un code qui permet de fiare les opérations arythmétique de base pour des fractions. J'ai cependant un nombre de message d'erreur complètement invraisemblable par rapport à mes méthdoes de calcul. Si j'en crois le compilateur, le reste du code semble correct. Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
| // La classe FRACTION2 pour permet la construction des fractions, je crois que mes erreurs sont dans cette classe//
public class Fraction{
private int numerateur;
private int denominateur;
public int getNumerateur(){ return this.numerateur;}
public int getDenomerateur(){ return this.denominateur;}
public void setNumerateur(int numerateur){ this.numerateur = numerateur;}
public void setDenominateur(int denominateur){this.denominateur = denominateur;}
// Addition
public Fraction addition (Fraction fract1, Fraction fract2, Fraction fract3)
{
if (fract1.Denominateur == fract2.Denominateur){
fract3.Denominateur = fract1.Denominateur * fract2.Denominateur;
fract3.Numerateur = (( fract1.Numerateur*fract2.Denominateur) + (fract2.Numerateur * fract1.Numerateur));
}
else
{
fract3.Denominateur= fract1.Denominateur;
fract3.Numerateur= fract1.Numerateur+fract2.Numerateur;
}
return fract3;
}
//soustraction
public Fraction soustraction (Fraction fract1, Fraction fract2, Fraction fract3)
{
if (fract1.Denominateur == fract2.Denominateur){
fract3.Denominateur = fract1.Denominateur * fract2.Denominateur;
fract3.Numerateur = (( fract2.Numerateur*fract1.Denominateur) + (fract1.Numerateur * fract2.Denominateur));
}
else
{
fract3.Denominateur= fract1.Denominateur;
fract3.Numerateur= fract1.Numerateur-fract2.Numerateur;
}
return fract3;
}
// multiplication
public Fraction multiplication (Fraction fract1, Fraction fract2, Fraction fract3)
{
fract3.Denominateur= fract1.Denominateur*fract2.Denominateur;
fract3.Numerateur= fract1.Numerateur*fract2.Numerateur;
return fract3;
}
//Division
public Fraction division (Fraction fract1, Fraction fract2, Fraction fract3)
{
fract3.Denominateur= fract1.Numerateur*fract2.Denominateur;
fract3.Numerateur= fract1.Denominateur*fract2.Numerateur;
return fract3;
}
public class ApplicationFraction{
public static void main(String[ ] args){
Fraction f1 = new Fraction(1, 3);
Fraction f2 = new Fraction(2, 5);
Fraction f3 = new Fraction(3, 2);
//Affichage des 3 fractions
System.out.println("f1 : "+f1.getNumerateur()+"/"+f1.getDenomerateur());
System.out.println("f2 : "+f2.getNumerateur()+"/"+f2.getDenomerateur());
System.out.println("f3 : "+f3.getNumerateur()+"/"+f3.getDenomerateur());
//Tests des méthodes de calculs
System.out.println("f1 - f2 = " + f1.soustraire(f2));
System.out.println("f3 / f1 = " + f3.diviser(f1));
System.out.println("f2 * f3 = " + f2.multiplier(f3));
}
}
} |
Et la classe d'exécution ou <<Classe principale>> :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| public class Applicationfraction{
public static void main(String[ ] args){
Fraction f1 = new Fraction(1, 3);
Fraction f2 = new Fraction(2, 5);
Fraction f3 = new Fraction(3, 2);
//Affichage des 3 fractions
System.out.println("f1 : "+f1.getNumerateur()+"/"+f1.getDenomerateur());
System.out.println("f2 : "+f2.getNumerateur()+"/"+f2.getDenomerateur());
System.out.println("f3 : "+f3.getNumerateur()+"/"+f3.getDenomerateur());
//Tests des méthodes de calculs
System.out.println("f1 - f2 = " + f1.soustraire(f2));
System.out.println("f3 / f1 = " + f3.diviser(f1));
System.out.println("f2 * f3 = " + f2.multiplier(f3));
}
} |
J'ai tenté plusieurs façons pour les méthodes mais je tourne en rond.
Merci de votre précieuse aide
Jonathan