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

Java Discussion :

Problème Class Entier


Sujet :

Java

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 99
    Par défaut Problème Class Entier
    Bonjours à tous,

    Mon exercice consiste à manipuler des entiers (non int)...

    Voici ce que j'ai commencé à faire pour y répondre ; Je vous donne l'énoncé...
    je voudrais s'il vous plait que vous m'aidiez pour me débloquer, parce que je suis perdu.

    Merci

    Ecrire une classe Entier regroupant :
    - les attributs de représentation, notamment :
    o un tableau tab de chiffres ;
    o n chiffres au maximum dans ce tableau ;
    - des méthodes en vue de manipuler des objets ou des valeurs particulières de ce type Entier :
    o construire un objet de type Entier à partir d’un entier nb de type int passé en paramètre, en le décomposant en ses chiffres que vous rangez dans tab ;
    o une méthode pour déterminer le nombre de chiffres d’un entier nb passé en paramètre ;
    o affichage d’une valeur de type Entier ;
    o addition dune valeur de type Entier à une autre valeur de type Entier passée en paramètre, le résultat doit être une valeur également de type Entier ;
    o multiplication d’une valeur de type Entier par une autre valeur de type Entier passée en paramètre, le résultat doit également être une valeur de type Entier




    Voici ce que j'ai commencé a écrire :
    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
     
    public class Entier {
     
        private int n;
        int taillemax = n;
        int nbChiffres;
        Chiffres[] tab;
     
        public Entier(Chiffres[] t){
            tab = new Chiffres[taillemax];
            int m = t.length;
            for(int i=0;i<m;i++){
                tab[i]=t[i];
            nbChiffres = m;
            }
        }
     
        public int getNbChiffres() { 
            return nbChiffres;
        }
     
        public void setNbChiffres(int n) { 
            nbChiffres = n;
        }
     
        public Chiffres[] getTab() { 
            return tab;
        }
     
        public void settab(Chiffres[] tab) { 
            this.tab = tab;
        }
     
        public int getTaillemax() { 
            return taillemax;
        }
     
        public void afficher(){ 
            for(int i=0; i<nbChiffres; i++)
                tab[i].afficher();
        }
    }
    Et l'autre Classe :
    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
     
    public class Chiffres {
     
        byte tab;
     
        public Chiffres (byte _tab){
            tab = _tab;
        }
     
        public byte getTab(){ 
            return tab;
        }
     
        public void setChiffres(byte _tab){ 
            tab = _tab;
        }
     
        public void afficher(){ 
            System.out.println("- "+ tab);
        }
     
    }
    Merci pour touts vos conseils et informations...

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    Alors tout d'abord il est de bon ton de rappeller que nous ne sommes pas la pour faire les excercices a ta place (voir regles du forum). Nous pouvons cependant te donner des conseils.

    Si tu etais en DESS/Master de Genie Logiciel, je te dirais qu'il suffit de faire que Entier delegue la plupart de ses operations a Integer en indiquant que leur methode de stockage par tableau est totalement inefficace, et ca te vaudrait probablement la note maximale (enfin avec les profs que j'avais quand j'etais a la fac) en effectuant le moins de travail possible (faut savoir etre faineant...).

    Dans ton cas, et vu les details de l'ennoncee, ce n'est pas ce qu'ils demandent, et a mon avis tu es parti vers la bonne solution. Quelques remarque cependant :
    - d'apres l'ennoncee n n'est pas sense etre stocke dans la classe.
    - si tu utilises Java 5+, plutot que de passer des Chiffre[] dans le constructeur de Entier, passe Chiffre... (trois points qui se suivent). Ainsi, la variable t se manipule dans le constructeur comme un tableau, mais quand tu apelles le constructeur tu peux soit passer un tableau, soit des valeurs separees par des virgules ce qui est fort pratique (et t'evites de devoir initialiser un tableau de taille 1 quand tu n'as qu'un seul chiffre. Tu peux aussi appeler le constructeur sans parametre ce qui resulte automatiquement en un tableau de taille 0).
    - de la meme maniere avec Java 5+ tu peux utiliser des foreach (for (Chiffre c : t) { [...] ) ce qui t'evites de manipuler des indices (parfois un for classique est cependant mieux).
    - pense a verifer que le tableau passe en parametre n'est pas null ou ne contient pas de Chiffre null ou n'a pas une taille de 0. Et lance les exceptions appropriee (IllegalArgumentException) quand c'est le cas.
    - taillemax gagnerai a etre une variable statique (tout comme Integer.MAX_INT en fait).
    - le nombre de chiffres/ le rang d'un entier n peut etre trouve en faisant 1+log10(n) (en traitant a part le cas du nombre 0 puisque log10(0) tend vers - l'infini). Ceci dit si tu as de la memoire a revendre, c'est bien sur plus rapide de stocker cette valeur que de faire un log10 a chaque fois que la fonction est appellee. Par contre c'est une mauvaise idee que de pouvoir modifier cette valeur et il ne me semble pas que cela soit demande dans l'ennoncee (il y a de bonnes raison pour que Integer ne soit pas mutable). Donc setNbChiffres() et settab(Chiffres[] tab) sont plutot a eviter.
    - Il manque par contre un contructeur qui prend un int en parametre.
    - concernant la classe Chiffre, si tu as Java 6+, et vu que tu as un ensemble fini de 10 valeurs, ca vaut probablement le coup d'utiliser une enum a la place d'une classe.
    - pour les operation, rien de bien complique : tu recupere les valeures int des deux Entier, tu fais l'operation et tu creer un 3ieme Entier que tu retournes. Si leur coeur t'en dis (et si tes profs sont vicieux) tu peux essayer de faire l'operation directement sur les tableaux d'entiers (penser a propagger les retenues...).
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Citation Envoyé par bouye Voir le message
    concernant la classe Chiffre, si tu as Java 6+, et vu que tu as un ensemble fini de 10 valeurs, ca vaut probablement le coup d'utiliser une enum a la place d'une classe.
    J'ai eu la même idée que toi: enum pour les chiffres... à ceci près que java 5+ suffit
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    Faute de frappe
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 99
    Par défaut
    Salut,

    Merci pour toutes vos pistes...cela m'a beaucoup aidé...

    Je reviendrais sur ce forum si il me reste quelques questions

    ++

Discussions similaires

  1. Problème compilation- Classe Entier
    Par stansoad0108 dans le forum Général Java
    Réponses: 3
    Dernier message: 07/01/2008, 14h40
  2. Problème class
    Par Anduriel dans le forum Langage
    Réponses: 19
    Dernier message: 28/01/2006, 19h34
  3. problème classes templates...
    Par youp_db dans le forum C++
    Réponses: 3
    Dernier message: 02/11/2005, 13h04
  4. problème classe et fonction
    Par zmatz dans le forum C++
    Réponses: 14
    Dernier message: 19/10/2005, 21h46
  5. problème d'entier
    Par boucher_emilie dans le forum ASP
    Réponses: 7
    Dernier message: 13/07/2004, 16h52

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