Urgent svp un probleme de trie!!!!

wissal04 Messages postés 1 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 5 juin 2007 - 5 juin 2007 à 21:36
 Utilisateur anonyme - 28 oct. 2010 à 11:02
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);
}
}
A voir également:

9 réponses

bensFouad Messages postés 39 Date d'inscription lundi 16 avril 2007 Statut Membre Dernière intervention 11 mai 2008
5 juin 2007 à 21:54
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? 
0
sarita199 Messages postés 26 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 6 octobre 2008 2
5 juin 2007 à 22:43
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.
0
bensFouad Messages postés 39 Date d'inscription lundi 16 avril 2007 Statut Membre Dernière intervention 11 mai 2008
5 juin 2007 à 23:04
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;
 }
0
sarita199 Messages postés 26 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 6 octobre 2008 2
5 juin 2007 à 23:19
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bensFouad Messages postés 39 Date d'inscription lundi 16 avril 2007 Statut Membre Dernière intervention 11 mai 2008
5 juin 2007 à 23:35
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.
0
sarita199 Messages postés 26 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 6 octobre 2008 2
6 juin 2007 à 00:12
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
0
bensFouad Messages postés 39 Date d'inscription lundi 16 avril 2007 Statut Membre Dernière intervention 11 mai 2008
6 juin 2007 à 21:17
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);;




 }



}
0
laguchori Messages postés 62 Date d'inscription mardi 26 octobre 2010 Statut Membre Dernière intervention 13 janvier 2012
28 oct. 2010 à 04:35
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);
}
}
0
Utilisateur anonyme
28 oct. 2010 à 11:02
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 /...
0