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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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