[aide ]problem java !

Résolu
Peter -  
 Peter -
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 ke j ai pu ecrir :

public class Ensemble {

static int gr=0;
static int tab[] ;

// le constructeur qui definie normalement un ensemble vide !! nn ?
public Ensemble(int gr)
{
tab=new int[gr];
}

public static void main(String[] args) {
inserer(18);
inserer(2);
inserer (9);
inserer(10);
inserer(113) ;
reader () ;

}
public static void inserer (int elem) {
gr++;
new Ensemble(gr) ;
for (int i=0 ; i<tab.length ; i++ )

Ensemble.tab[i]= elem ;

}
public static void reader()
{

for(int i = 0; i < tab.length ; i++)

System.out.println("A l'emplacement " + i +" du tableau nous avons = " + tab[i]);

}

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 , el 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

1 réponse

  1. varfendell Messages postés 3259 Date d'inscription   Statut Membre Dernière intervention   707
     
    Salut,

    tu as oublié de sauver ton tableau a chaque fois...il te faut creer un tableau temporaire pour sauvergarder le tableau avec les données actuelle sinon tu ré-ecrit apr dessus.

    Voici une solution:

    
    public class Tableau
    {
    	
    	static int[] tableau;
    	static int position = 0;
    		
    	
    	
    	public static void main(String[] args)
    	{ 
    		
    		tableau = new int[position+1];
    		ajouter(18); 
    		ajouter(2); 
    		ajouter (9); 
    		ajouter(10); 
    		ajouter(113) ;
    		afficher() ; 
    	}
    	
    	public static void ajouter (int elem)
    	{ 
    		int[] temp;
    		temp = new int[position+1];
    		//tu sauves ton tableau actuel
    		for (int i = 0; i < position; i++)
    		{
    			temp[i] = tableau[i];
    		}
    		tableau = new int[position+1];
    		for (int i = 0; i <= position; i++)
    		{
    			tableau[i] = temp[i];
    		}
    		tableau[position] = elem;
    		position++;
    		}
    
    	
    	static void afficher()
    	{
    		for (int i = 0; i < position; i++)
    		{
    			System.out.println("position : " + i + " valeur : " + tableau[i]);
    		}
    	}
    }
    


    et le résultat donne:

    position : 0 valeur : 18
    position : 1 valeur : 2
    position : 2 valeur : 9
    position : 3 valeur : 10
    position : 4 valeur : 113
    
    0
    1. Peter
       
      Merci bien !!!!
      0