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

Langage Java Discussion :

Problème de tri à bulles et d'affichage - débutant


Sujet :

Langage Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2007
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Problème de tri à bulles et d'affichage - débutant
    Bonjour! En passant, c'est ma première visite sur ce site. J'ai cherché ma réponse dans les FAQ mais je n'ai pas trouvé.

    Pour un cours je dois faire ceci:

    Écrire un programme à qui on fait entrer une dizaine de nombre dans un tableau et qui ordonne (ordre croissant) les éléments dans le tableau et ensuite de les afficher à l’écran.

    Voici ce que j'ai fait (j'aimerais que vous me disiez si c'est okay et pourquoi rien ne s'affiche. Je travaille en Java sur Eclipse):

    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
    //Package d'extension de Java
    import javax.swing.JOptionPane;
     
    public class Exercice1 {
     
    	public static void main(String[] args) {
     
          int[] nb = new int [10];
          int i=0;
          int transition=0;
          boolean permutation;
     
          for (i=0; i<10; i++)
          {
          nb[i]=Integer.parseInt(JOptionPane.showInputDialog("Entrez la valeur" +i + " du tableau: "));
          }  	
     
          do
          {
     
     
     
        	//hypothèse : le tableau est trié
              permutation=false;	
     
     
     
              for (i=0; i<9; i++)
          {
     
            	  if(nb[i]>nb[i+1])
                       {
                       //s'ils ne le sont pas on échange leurs positions
                       nb[i]=transition;
                       nb[i]=i+1;
                       nb[i+1]=transition;
     
     
                       permutation=true;
     
                       }
          		}
          }
          while(permutation); 
     
     
     
    	 for (i=0; i<10; i++){
    		 System.out.println(nb[i]);
    }
    }
    }

  2. #2
    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 : 41
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    nb[i]=transition;
    nb[i]=i+1;
    nb[i+1]=transition;
    Relis ce code... et corrige-le! Il est fonctionnellement faux... Tu as certainement compris le principe du tri, je te laisse maintenant l'implémenter correctement.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2007
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    oups j'avais oublier mes crochets pour le nb[i+1]

    mais tout de même... cela ne m'affiche que des 0 comme résultats...

    Et j'ai beau tout relire cela ne m'avance pas.

  4. #4
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour,
    Quels Crochets ? Ils existent déjà ...
    Ce bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    nb[i]=transition;
    nb[i]=i+1;
    nb[i+1]=transition;
    Les deux premières lignes ...
    N'oublies pas qu'il est censé echangr les valeurs de nb[i] et nb[i+1], càd mettre nb[i] dans nb[i+1] et la valeur de nb[i+1] dans nb[i] ... y procèdes tu correctement ?
    Pour simplifier, essaies de le faire avec deux variables x et y ...

    Bonne chance.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2007
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    c ca je voulais dire par les crochets.. dsl de pas avoir été clair.

    regardez je remets mon code et je redemande pkoi ca affiche 10 fois la valeur "0":

    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
     
    //Package d'extension de Java
    import javax.swing.JOptionPane;
     
    public class Test {
     
    	public static void main(String[] args) {
    		int[] nb = new int[10];
    		int i = 0;
    		int transition = 0;
    		boolean permutation;
     
    		for (i = 0; i < 10; i++) {
    			nb[i] = Integer.parseInt(JOptionPane
    					.showInputDialog("Entrez la valeur" + i + " du tableau: "));
    		}
     
    		do {
    			// hypothèse : le tableau est trié
    			permutation = false;
     
    			for (i = 0; i < 9; i++) {
     
    				if (nb[i] > nb[i + 1]) {
    					// s'ils ne le sont pas on échange leurs positions
    					nb[i] = transition;
    					nb[i] = nb[i + 1];
    					nb[i + 1] = transition;
     
    					permutation = true;
    				}
    			}
    		} while (permutation);
     
    		for (i = 0; i < 10; i++) {
    			System.out.println(nb[i]);
    		}
    	}
    }

  6. #6
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour.
    Il y'a toujours un problème avec les 3 lignes qu'on a pointé CyberChouan et moi ... dans la première ligne plus exactement.
    N'oublies pas que tu veux sauvegarder la valeur de nb[i] dans transition et pas l'inverse.

    Bonne chance.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2007
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    lol

    je viens de comprendre

    c'est donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    transition= nb[i]
    nb[i] = nb[i+1]
    nb[i+1] = transition


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

Discussions similaires

  1. Problème algorithme tri à bulle
    Par sushis dans le forum VB.NET
    Réponses: 7
    Dernier message: 21/12/2009, 23h02
  2. [débutant]Problème de tri sur ListView : IComparer
    Par TomDuBouchon dans le forum Windows Forms
    Réponses: 5
    Dernier message: 01/09/2009, 10h36
  3. Problème avec le timer d'un tri à bulles
    Par McAdam dans le forum Débuter
    Réponses: 0
    Dernier message: 16/03/2009, 20h45
  4. Problème d'affichage (débutant)
    Par biforspot dans le forum Sql*Plus
    Réponses: 3
    Dernier message: 30/09/2008, 15h25
  5. Tri à bulle - Affichage de sprite
    Par Gory dans le forum Assembleur
    Réponses: 5
    Dernier message: 10/03/2005, 15h27

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