[aide ]problem java !

Résolu/Fermé
Peter - 15 mai 2010 à 15:04
 Peter - 16 mai 2010 à 01:05
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
A voir également:

1 réponse

varfendell Messages postés 3256 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 699
15 mai 2010 à 18:46
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
Merci bien !!!!
0