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 :

Application d'opération sur les fractions : erreurs de compilation


Sujet :

avec Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Application d'opération sur les fractions : erreurs de compilation
    Bonjour a tous j'ai des problèmes lors que je compile avec javac sur mon programme suivant et je suis pour l'instant incapable de trouver mon erreur.

    Est-ce que quelqu'un pourrait m'aider?

    Voici les consignes:

    Concevez une application qui permet d’effectuer les opérations d’addition, de soustraction, de multiplication et de division sur deux fractions. Pour ce : • Créez une classe Fraction permettant de décrire une fraction.
    • Déclarez les champs numerateur et denominateur.
    • En plus des méthodes d'accès aux champs, définissez des méthodes permettant d’additionner, de soustraire, de multiplier et de diviser des fractions. Définissez également une méthode pour afficher une fraction sous sa forme mathématique.
    • Créez une classe principale ApplicationFraction (contenant la méthode main(String[ ] args)), créez des objets de type Fraction, testez les méthodes et affichez les résultats obtenus.
    • Produisez la documentation avec le générateur de documents Java (javadoc).

    Exemple d'exécution


    La fraction F1 est : 1/3
    La fraction F2 est : 2/5
    L’addition de F1 avec F2 est : 11/15
    La soustraction de F2 de F1 est : 1/15
    La multiplication de F1 par F2 est : 2/15
    La division de F1 par F2 est : 5/6

    et voici mon programme:

    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
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    import java.util.*;
     
    public class Fraction // Declaration de la Classe
    {
      private int Numerateur;// Declaration des attributs
      private int Denominateur;
     
     
    public Fraction(int uneNumerateur, int uneDenominateur)
    {
       setNumerateur(uneNumerateur);
       setDenominateur(uneDenominateur);
    }
     
    public void setNumerateur(int uneNumerateur)
    {
      Numerateur = uneNumerateur;
    }
    public int getNumerateur()
    {
             return Numerateur;
    }
     
    public void setDenominateur(int uneDenominateur)
    {
      Denominateur = uneDenominateur;
    }
    public int getDenominateur()
    {
             return 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 String ToString(Fraction FracString)
    { 
    String Chaine = FracString.Numerateur + "/" + FracString.Denominateur;
    return Chaine;
    }
     
    public Fraction afficheResultat()
    {
    System.out.println("La fraction F1 est : " + ToString(f1));
    System.out.println("La fraction F2 est : " + ToString(f2));
    System.out.println("L'addition de F1 par F2 est: " + ToString(Fraction.addition(f1,f2)));
    System.out.println("La soustraction de F1 par F2 est: " + ToString(Fraction.soustraction(f1,f2)));
    System.out.println("La multiplication de F1 par F2 est: " + ToString(Fraction.multiplication(f1,f2)));
    System.out.println("La division de F1 par F2 est: " + ToString(Fraction.division(f1,f2)));
     
    }
    }
     
     
    class ApplicationFraction
    {
    public void main(String [ ] args){
       Fraction f1 = new Fraction(3,5);
       Fraction f2 = new Fraction(6,12);
       Fraction afficheResultat;
    }
    }
    Merci

    Luc

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    La déformation du C
    Un conseil habitue toi aux messages d'erreurs de compilation. Les erreurs lors de la compilation sont quand même assez explicites (en run-time c'est une autre histoire).

    Les classes Fraction et ApplicationFraction seraient bien plus à l'aise dans deux fichiers séparées Fraction.java et ApplicationFraction.


    -- ApplicationFraction --
    N'oublie pas le static dans la signature de cette méthode.



    Tout le reste ce sont des problèmes de prototypages:

    -- classe Fraction méthode afficheResultat --

    Tel que tu le gères :
    a) le prototype de afficheResultat indique que tu retournes une instance de la classe Fraction et le code ne retourne rien; tu utilises f1 et f2 dans le corps de cette méthode : public void afficheResultat(Fraction f1, Fraction f2) { ... }

    b) afficheResultat doit être static et l'appelle ainsi formé Fraction.afficheResultat(uneFraction, uneAutreFraction).

    c) tu peux aussi utiliser : f1.afficherResultat(f2);

    d) le même souci pour toString() : soit une fonction static (solution hyper moyenne) ou bien la version : f1.toString(); et f2.toString(); et non ToString(unefraction);; il faut revoir la signature de toString également.

    -- classe Fraction methode multiplication / addition / etc --

    L'argument fraction3 n'est pas utile. Tu instancies un objet Fraction au sein de ta méthode et tu le retournes à travers de l'objet Fraction retournée. Ca règle tes problèmes dans afficheResultat parce que tu donnes 2 arguments à l'appel de ces méthodes au lieu de 3 exigées par l'implémentation.

    Ensuite c'est une question de granularité, un puriste POO ferait peut-être une classe abstraite AbstractRatioOperation puis des sous-classes RatioAddition, RatioMultiplication, etc. Mais il ne faut pas se précipiter quand le code donnée tournera, ce sera déjà pas si mal.


    J'en oublie sûrement mais en revisant ton code comme ça tu auras surement moins de correction à faire.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci je vais essayer cela et je te reviens.

    Luc

Discussions similaires

  1. Erreur lors des opérations sur les dates
    Par Alexandre le Grand dans le forum Entity Framework
    Réponses: 14
    Dernier message: 07/08/2014, 02h27
  2. Opérations sur les fractions
    Par roobi dans le forum Pascal
    Réponses: 7
    Dernier message: 25/01/2013, 14h45
  3. [TPW] Opérations simples sur les fractions
    Par forum dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 16/11/2011, 20h43
  4. opérations sur les bits d'un byte
    Par petitours dans le forum C++Builder
    Réponses: 4
    Dernier message: 10/02/2004, 20h42
  5. opérations sur les dates
    Par coucoucmoi dans le forum Débuter
    Réponses: 2
    Dernier message: 12/08/2003, 11h45

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