IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Opération de base pour des fractions


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2008
    Messages : 15
    Points : 13
    Points
    13
    Par défaut 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 : 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

  2. #2
    Membre expérimenté Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    Par défaut
    tu fais Donc multiplier dois NORMALEMENT ressembler à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public Fraction multiplier(Fraction f){
        int num = this.numerateur*f.getNumerateur();
        int denom = this.denominateur*f.getDenominateur;
        return new Fraction(num,denum);
    }
    A toi de refaire là même chose avec tes autres méthodes
    Il était une fois [...] Et ils vécurent heureux et eurent beaucoup d'enfants!

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par stemariej Voir le message
    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.
    Souvent, commencer par s'arrêter aux premières erreurs. Il arrive que le compilateur te sorte, par exemple, une centaine d'erreurs a cause d'une accolade mal placée Une fois qu'il perd le fil de ton code, tout ce qui suit est généralement incompréhensible.

    Dans ton cas, je souligne en roouge les erreurs que je vois, puisque tu n'a pas daigné nous copier coller les erreurs que tu a recues.
    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
    // 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;
    
    
       
    // 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;
    }
    Ces majuscules sont en trop, ton champ a un nom minuscule dans ton code

  4. #4
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut Division par zéro
    Bonjour,

    une fois que tu aura compiler, lors de l'exécution tu risque lever l'exception ArithmericException si tu ne fait pas un test sur ton dénominateur.

    if (denominateur!=0) {
    // ton opération avec le dénominateur.
    }
    Article : Installation de Cocoon
    Je ne réponds pas aux MP à caractère technique.

Discussions similaires

  1. service WCF avec opérations asynchrone basée sur des evenements
    Par Yogy dans le forum Windows Communication Foundation
    Réponses: 5
    Dernier message: 10/12/2009, 19h21
  2. [MySQL] Opérations de bases à partir des fichiers systèmes ?
    Par byloute dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 30/05/2008, 11h20
  3. Base pour gérer des réservations
    Par curt dans le forum Access
    Réponses: 18
    Dernier message: 13/12/2006, 07h45
  4. Réponses: 13
    Dernier message: 01/09/2006, 15h57
  5. [MySQL] Parcourir la liste des emails extraits de la base pour envois de mail
    Par Ylias dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 11/02/2006, 22h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo