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 :

je cherche l'erreur dans mon code java


Sujet :

avec Java

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 71
    Points : 63
    Points
    63
    Par défaut je cherche l'erreur dans mon code java
    java erreur de code

    Bonjour,
    je dois faire un code de java pour mon td
    mais il marche pas quand je compile

    je dois pendre un entier dans le cas de mon programme l'entier "a "qui est égale à 7
    vérifier si il est pair ou impair
    dans le cas pair diviser par 2
    dans le cas impair *3+1
    jusqu'à que l'entier soit égale à 1
    et tous afficher
    exemple
    7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1

    voila 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
     
     
               {
               double [] monTableau;
               monTableau = new double[20];
               double a;
               int i;
               i=0;
               a=7;
              while (a!=1)
              {
         if (a%2 == 0) 
          {
           a=a/2;
           monTableau[i] = 'a';
          }
         else
          {
           a=(a*3)+1;
           monTableau[i] = 'a';
          }
         i++;
          }
         System.out.println(monTableau); 
    }

  2. #2
    Membre averti Avatar de Tux++
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    281
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 281
    Points : 379
    Points
    379
    Par défaut
    Bonjour,

    1° tu nous parle d'entiers et tu utilises des doubles?
    2° pas de définitions de classe ni de méthodes?
    3° tu essayes d'afficher un tableau par: System.out.println(letableau)...Il faut boucler sur chaque élément d'un tableau pour l'afficher
    4° tu assignes des 'a' à des doubles? autrement dit des chaines de caractères à des doubles?

    bref, revois-tes bases, ca ne saurait compiler tel quel




    EDIT: les infos que le compilateur te donne comme erreurs/warnings ne sont en général pas très difficile à trouver (sauf exceptions )
    Certified Oracle Advanced PL/SQL Professional
    Certified Oracle APEX Expert
    Certified Oracle SQL Expert

  3. #3
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 88
    Points : 106
    Points
    106
    Par défaut
    juste comme ca pour le fun

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public void static test(int y)
    {
       while ( y != 1 )
       {
            if ( y%2 == 0 )
               y=y/2;
            else
               y=3*y-1;
            System.out.print(y+ " ");
       }
    }
    Je me demande si on peut pas améliorer les performances. Par exemple au lieu de faire y%2, n'y a t'il pas moyen de tester simplement le dernier binaire du nombre ?

    Sinon je suis d'accord avec Tux++
    Sébastien

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 71
    Points : 63
    Points
    63
    Par défaut
    le problème de ton code c'est que c'est une boucle sans fin
    essaye le sur ce site
    lol


    http://www.zamples.com/JspExplorer/i...format=jdk16cl

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 71
    Points : 63
    Points
    63
    Par défaut
    j'ai modifier pour les double merci
    sinon voila j'ai pas compris pour l'affichage du tableau
    et pour la méthode je l'ai défini c'est juste que j'ai pas ajouté la partie code
    car j'utilise un site pour tester donc il en a pas besoin

    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
    {
               int [] monTableau;
               monTableau = new int[20];
               int a;
               int i;
               i=0;
               a=7;
              while (a!=1)
              {
         if (a%2 == 0) 
          {
           a=a/2;
           monTableau[i] = 'a';
          }
         else
          {
           a=(a*3)+1;
           monTableau[i] = 'a';
          }
         i++;
          }
         System.out.println(monTableau); 
    }

  6. #6
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 88
    Points : 106
    Points
    106
    Par défaut
    Je ne fait qu'implémenté ton algorithme en supposant qu'elle se termine forcément. Si c'est pas le cas il faut surement ajouter d'autre protection.

    D'un autre coté, ton code ne dois pas compiler et tu dois avoir des erreurs évidentes à corriger comme
    monTableau[i] = 'a';
    est faux.

    Par contre, je ne sais pas si je dois donner la solution ou te laisser chercher.
    Sébastien

  7. #7
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 71
    Points : 63
    Points
    63
    Par défaut
    en fait il se répète ton code il va jusqu'à 1 .ensuite il recommence
    j'ai donné la valeur 7 a ton programme il est arrivé a 1 ensuite il est reparti de nouveau de 7 il me donne la suite que je cherche mais sans arrete

    donc qsq je dois corriger pour montableau elle est ou l'erreur

  8. #8
    Invité
    Invité(e)
    Par défaut
    Salut,
    MrCba, ton programme boucle car tu fais "-1" au lieu de "+1" si y est impair...
    Sinon ta version est beaucoup plus propre je trouve et marche parfaitement...

  9. #9
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 71
    Points : 63
    Points
    63
    Par défaut
    bien vu il y a bien un -1

    et une fois corrigé sa marche
    mais
    je vois toujour pas l'erreur mon erreur a moi

  10. #10
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 88
    Points : 106
    Points
    106
    Par défaut
    Ok autant pour moi c'est vraiment dommage de se tromper si bettement
    Sébastien

  11. #11
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 71
    Points : 63
    Points
    63
    Par défaut
    si tu peux juste me guider sur mon erreur

  12. #12
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 88
    Points : 106
    Points
    106
    Par défaut
    Citation Envoyé par Boss38400 Voir le message
    bien vu il y a bien un -1

    et une fois corrigé sa marche
    mais
    je vois toujour pas l'erreur mon erreur a moi

    monTableau[i] = 'a';
    à remplacer par
    monTableau[i] = a;

    et le System.out.println(monTableau); ne fonctionne pas non plus si je me trompe pas tu dois boucler sur les éléments de ton tableau et les écrires un à un.

    Il faut aussi que tu eneleve ton compteur i qui ne sert aps.

    Tu peus ausis ne pas passer par un tableau et écrire directement dans la boucle
    Sébastien

  13. #13
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Citation Envoyé par MrCba Voir le message
    et le System.out.println(monTableau); ne fonctionne pas non plus si je me trompe pas tu dois boucler sur les éléments de ton tableau et les écrire un à un.
    Pour l'affichage d'un tableau sans boucle, si tu travaille avec une version de Java supérieure à 1.5 tu peux utiliser le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Arrays.toString(monTableau);

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  14. #14
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 71
    Points : 63
    Points
    63
    Par défaut
    MrCba

    je te remercie c bon j'ai pu le finir le code

    juste un truc dans ton code je viens de le voir
    c'est plutôt public static void
    a la place de public void static
    lol
    merci encore pour le coup de main

  15. #15
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 22
    Points : 28
    Points
    28
    Par défaut essaie çà ?
    Je me demande si on peut pas améliorer les performances. Par exemple au lieu de faire y%2, n'y a t'il pas moyen de tester simplement le dernier binaire du nombre ?
    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
     
    public class Bit {
     
    	public static boolean estPair(int nb) {
    		return 	(nb & 1) == 0;
    	}
     
    	public static void main(String[] args) {
     
    		for (int i = -10; i <= 10; i++) {
    			System.out.println( i + " est pair ? " + Bit.estPair(i) );
    		}
     
    	}
     
    }
    http://datizo.sourceforge.net
    Framework de manipulation des dates en Javascript.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. erreur dans mon code "java.lang.NullPointerException"
    Par wiss20000 dans le forum Langage
    Réponses: 12
    Dernier message: 19/04/2007, 09h08
  2. Réponses: 5
    Dernier message: 14/05/2006, 22h41
  3. Erreur dans mon code PHP
    Par jack_1981 dans le forum Langage
    Réponses: 6
    Dernier message: 12/05/2006, 10h01
  4. erreur dans mon code
    Par sacco dans le forum C
    Réponses: 4
    Dernier message: 14/04/2006, 11h50
  5. [VBA][Débutant][export]erreurs dans mon code?
    Par Christophe93250 dans le forum Access
    Réponses: 4
    Dernier message: 06/01/2006, 19h52

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