Se connecter / S'enregistrer
Votre question

Problem Java

Tags :
  • element
  • Programmation
Dernière réponse : dans Programmation
15 Mai 2010 15:48:42

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

a c 232 L Programmation
15 Mai 2010 19:37:02

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.
m
0
l
16 Mai 2010 17:53:41

salut
parce que il écrase toutes les valeurs par la dernière qui est 113 ,pour cela je tu conseille de donne à inser(a,b)
ou a est l'élément à insérer
b l'emplacement .
m
0
l
19 Mai 2010 09:34:32

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
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS