Urgent svp un probleme de trie!!!!

Signaler
Messages postés
1
Date d'inscription
mardi 5 juin 2007
Statut
Membre
Dernière intervention
5 juin 2007
-
 Utilisateur anonyme -
avant de commencer bsr a tous,j'ai un probleme de tri,j'ai fais un tableau a une seul dimenssion et je voudrais le trié avant d'afficher son contenue et merci.
voila mon code:

public class class1 {
private int T[];
private int i;
static Saisie s=new Saisie();
public class1()
{}
public void ajout(int a)throws Exception
{
this.T=new int[a];
for(i=0;iT[(i+1)])
  {
   inter=T[i];
   T[i]=T[i+1];
   T[i+1]=inter;
   i=1;}
   else
   {
    i++;
   }
  }
}


public static void main(String arg[])throws Exception{
int choix;
class1 c1;
do
{
 c1=new class1();
 choix=0;
 System.out.println("\t\t\t*****Menu Général*****");
 System.out.println("1. Ajouter votre informations ");
 System.out.println("2. Afficher le contenue du tableau ");
 System.out.println("3. Trie les information du tableau ");
 System.out.println("4. Quitter ");
 System.out.print("introduire votre choix: ");
 choix=s.saisirEntier();
 switch(choix)
 {
 case 1:


  System.out.print("introduire la taille du tableau :");
  int n=s.saisirEntier();
  c1.ajout(n);
  break;
 case 2:
  c1.afficher();
  break;
 case 3:
  c1.trie();
  break;
 case 4:
  System.exit(0);
 break;
 }
}
while(choix!=4);
}
}

9 réponses

Messages postés
39
Date d'inscription
lundi 16 avril 2007
Statut
Membre
Dernière intervention
11 mai 2008

Slaut,
ta classe n'est pas claire:
static Saisie s=new Saisie(); // il est ou la class Saisie??? et il fait quoi?

on veut bien t'aider mais le faite de poser ton code sans la moindre explication ou ca marche pas, je me demande comment? 
Messages postés
26
Date d'inscription
vendredi 1 juin 2007
Statut
Membre
Dernière intervention
6 octobre 2008
2
bsr wissal,tu px essayer mon code,le voila!!!

public class Trie {
int T[];
int i;
int b;
static int a;
static Saisie s=new Saisie();
public Trie()
{}
public void ajout(int a)throws Exception
{
 this.T=new int[a];
 for(i=0;i<this.T.length;i++)
 {
  System.out.print("introduire un nombre :");
  int n=s.saisirEntier();
  T[i]=n;
 }
}
public void afficher()
{
 for(int i=0;i<this.T.length;i++)
 {
  System.out.println(T[i]+"\t");
 }
}
public void trie()throws Exception
{
 int elements=this.T.length;



 for( i=(elements-1); i>0; i--)
 {
   for(int j=0; jT[j+1])
     {
       int inter= T[j];
       T[j]= T[j+1];
       T[j+1]= inter;
     }
   }
 }
}





public static void main(String args[])throws Exception
{
 Trie t1;
 t1=new Trie();
 System.out.print("introduire la taille du tableau :");
 int n=s.saisirEntier();
 t1.ajout(n);
 t1.trie(); 
    t1.afficher();
 }

N.B:classe Saisie est une classe qui facilite la saisie des informations.
Messages postés
39
Date d'inscription
lundi 16 avril 2007
Statut
Membre
Dernière intervention
11 mai 2008

Salut,

Ta methode ajout(int a ) rempli le tableau avec la meme valeur( le nombre à introduire), alors ma question tu veux trier quoi?


public void ajout(int a)throws Exception
{
 this.T=new int[a];
 for(i=0;i<this.T.length;i++)
 {
  System.out.print("introduire un nombre :");
  int n=s.saisirEntier();
  T[i]=n;
 }
Messages postés
26
Date d'inscription
vendredi 1 juin 2007
Statut
Membre
Dernière intervention
6 octobre 2008
2
bsr bensFouad le a introduit indique le nombre d'éléments qui contient ce tableau T,et la methode ajout permet de remplir ce tbleau avec des nombres
public void ajout(int a)throws Exception
{
 this.T=new int[a];
 for(i=0;i<this.T.length;i++)
 {
  System.out.print("introduire un nombre :");
  int n=s.saisirEntier();
  T[i]=n;
 }
et la methode trie permet de trier ces elements par order croissant,mais mlheureusement je n'arrive pas de faire tous ca dans un menu,bah si tu le fais,je te félicite
Messages postés
39
Date d'inscription
lundi 16 avril 2007
Statut
Membre
Dernière intervention
11 mai 2008

Bonsoir;
J'ai compris que le "a" est la taille de ton tableau, mais moi je parle de n (int n=s.saisirEntier()) et t'es entrain de remplir ton tableau avec la meme valeur de n ( T[i] = n).



Si a = 3 et n= 7, bah selon ta methode ajout(a) t'auras :
T[0]=7
T[1]=7
T[2]=7
 
Voila.
Messages postés
26
Date d'inscription
vendredi 1 juin 2007
Statut
Membre
Dernière intervention
6 octobre 2008
2
bonsoir:
Non par contre le n prend une nouvelle valeur a chaque fois de repitition du programme jusqu'à le "a",car nous avons utiliser le for(i=0;iexp:
le a=4;et n dans la saisie
1er  n=19;
 2eme n=5;
3eme n=159;
4eme n=2;
vous pouvez utiliser mon code pr mieux comprende mon code,et si tu besion de la classe saisie dis le moi pr l'ajouter ici,elle facilite la saisie des elements qlqe soit son type:
String,int,double
Messages postés
39
Date d'inscription
lundi 16 avril 2007
Statut
Membre
Dernière intervention
11 mai 2008

Bonsoir,
OK, Je connais pas ta méthode saisirEntier(), j'ai utilisé ta classe en donnant a n des valeurs au hazard et apparament ça marche: il classe les chiffres par ordre croissant.





public






void

ajout(int
a) throws
Exception

{



  this

.T= new

int

[a];






 for

(i =0;i<this
.T.length;i
++)

{




  System.

out

.print("introduire un nombre :"
);










  T[i]=(int
) (Math.random()*10);;




 }



}
Messages postés
62
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
10 juin 2014

VOILA LE CORRIGE DE VOTRE PROGRAMME/




import java.io.*;


public class class1 {
private int T[];
private int i;
static BufferedReader sa=new BufferedReader(new InputStreamReader(System.in));
public class1()
{}
public void ajout(int a)throws Exception
{
this.T=new int[a];
for(i=0;iT[(i+1)])
{
inter=T[i];
T[i]=T[i+1];
T[i+1]=inter;
i=1;}
else
{
i++;
}
}
}

public static void main(String arg[])throws Exception{
Integer choix;
class1 c1;
do
{
c1=new class1();
choix=0;
System.out.println("\t\t\t*****Menu Général*****");
System.out.println("1. Ajouter votre informations ");
System.out.println("2. Afficher le contenue du tableau ");
System.out.println("3. Trie les information du tableau ");
System.out.println("4. Quitter ");
System.out.print("introduire votre choix: ");
String choi;
choi=sa.readLine();
choix=Integer.parseInt(choi);
switch(choix)
{
case 1:

System.out.print("introduire la taille du tableau :");
String bb;
Integer n;
bb=sa.readLine();
n=Integer.parseInt(bb);
c1.ajout(n);
break;
case 2:
c1.afficher();
break;
case 3:
c1.trie();
break;
case 4:
System.exit(0);
break;
}
}
while(choix!=4);
}
}

Salut,

Pour trier ton tableau T[], rien de plus simple à condition qu'il contienne des données comparables.
C'est le cas puisque le tableau T (il aurait été préférable de le nommer t...) est un tableau d'int.
Arrays.sort(T); // import java.util.Arrays;


Cordialement,


...\ Dan /...