Se connecter avec
S'enregistrer | Connectez-vous

Problem Java

Dernière réponse : dans Programmation

Bonjour ,
l exercice consiste a creer un programme qui gere les ensembles mathematiques (des entiers ) !

on doit tout d abord ecrir un constructeur qui definie combien d element peut contenir l ensemble qui doit etre vide au debut !

voila ce que j ai pu ecrir :



  1. public class Ensemble {
  2.  
  3.  
  4. static int gr=0;
  5. static int tab[] ;
  6.  
  7.  
  8. // le constructeur qui definie normalement un ensemble vide !! nn ?
  9. public Ensemble(int gr)
  10. {
  11. tab=new int[gr];
  12. }
  13.  
  14. public static void main(String[] args) {
  15. inserer(18);
  16. inserer(2);
  17. inserer (9);
  18. inserer(10);
  19. inserer(113) ;
  20. reader () ;
  21.  
  22.  
  23. }
  24. public static void inserer (int elem) {
  25. gr++;
  26. new Ensemble(gr) ;
  27. for (int i=0 ; i<tab.length ; i++ )
  28.  
  29. Ensemble.tab[i]= elem ;
  30.  
  31.  
  32. }
  33. public static void reader()
  34. {
  35.  
  36. for(int i = 0; i < tab.length ; i++)
  37.  
  38. System.out.println("A l'emplacement " + i +" du tableau nous avons = " + tab[i]);
  39.  
  40. }





le programme compile mais il perd toutes les precedentes donnees , voila ce que j obtien :
(ce qui est sur que le tableau grandi peu a peu , ce qui n est pas mal , nn ? )

A l'emplacement 0 du tableau nous avons = 113
A l'emplacement 1 du tableau nous avons = 113
A l'emplacement 2 du tableau nous avons = 113
A l'emplacement 3 du tableau nous avons = 113
A l'emplacement 4 du tableau nous avons = 113

Ps : j ai cherche sur internet , il semble que la meilleur solution c est d utiliser Arraylist mais le probleme c est qu on ne doi en aucun cas utliser java.util !!

Si vous pouviez peut etre m aider !! merci !!1

Autres pages sur : problem java

Lassé par la pub ? Créez un compte
Expert Programmation

Salut,

C'est normal qu'il efface toutes les données, tu fais un new Ensemble(gr) à chaque fois qui va réinitialiser la variable tab par un tableau vide.
Il faut faire un reader() après chaque inserer si tu veux avoir les détails de chaque.

Salut,

Cette programmation n'est pas très propre (sans vouloir t'offenser). Pourquoi tu déclares tes méthodes et attributs en static ???
C'est un besoin ou pas ???

Parce que sinon pour moi, un truc plus propre c'est :

  1. public class Ensemble {
  2.  
  3. private int _nb_elem;
  4. private int _list_elem[] ;
  5.  
  6. // Constructeur : init des attributs à leur valeur par défaut
  7. public Ensemble()
  8. {
  9. _nb_elem = 0;
  10. _list_elem = new int[3000]; // nombre max d'éléments pour éviter
  11. // les recopies lors d'insertion d'éléments
  12. }
  13.  
  14. // Méthode d'insertion d'un élément à la suite des précédents
  15. public void inserer ( int p_elem )
  16. {
  17. if ( this._nb_elem < 3000 )
  18. {
  19. this._list_elem[this._nb_elem] = p_elem;
  20. this._nb_elem++;
  21. }
  22. }
  23.  
  24. // Debug pour afficher le contenu de la table
  25. public void reader()
  26. {
  27. for(int i = 0; i < this._nb_elem ; i++)
  28. System.out.println("A l'emplacement " + i +" du tableau nous avons = " + this._list_elem[i]);
  29. }
  30.  
  31. // Prog principal
  32. public static void main(String[] args) {
  33.  
  34. Ensemble l_mon_ensemble = new Ensemble();
  35.  
  36. l_mon_ensemble.inserer(18);
  37. l_mon_ensemble.inserer(2);
  38. l_mon_ensemble.inserer(9);
  39. l_mon_ensemble.inserer(10);
  40. l_mon_ensemble.inserer(113);
  41. l_mon_ensemble.reader () ;
  42. }
  43.  
  44.  
  45. }



Et ca donne au final le résultat que tu recherches (enfin je pense) :

A l'emplacement 0 du tableau nous avons = 18
A l'emplacement 1 du tableau nous avons = 2
A l'emplacement 2 du tableau nous avons = 9
A l'emplacement 3 du tableau nous avons = 10
A l'emplacement 4 du tableau nous avons = 113
Lassé par la pub ? Créez un compte
Tom's guide dans le monde