Probleme en execution code java
Hacker#1
Messages postés
88
Statut
Membre
-
scriptiz Messages postés 1494 Statut Membre -
scriptiz Messages postés 1494 Statut Membre -
Bonjour,
qaund j'execute mon code il ne donne aucun erreur mais quand je l'execute j'ai le message suivant
http://i653.photobucket.com/albums/uu255/osskan/1.jpg
qaund j'execute mon code il ne donne aucun erreur mais quand je l'execute j'ai le message suivant
http://i653.photobucket.com/albums/uu255/osskan/1.jpg
interface Rangement
{
public void ajouter(Object o);
public Object retirer(int i);
public Object tete();
public int getTaille();
public void setTaille(int i);
public boolean estVide();
}
abstract class StructureDeDonnees implements Rangement{
public int nbObjets;
public void setTaille(int i)
{
nbObjets=i;
}
public int getTaille()
{
return nbObjets;
}
public boolean estVide()
{
if(nbObjets==0)
return true;
return false;
}
abstract public void ajouter(Object o);
abstract public Object retirer(int i);
abstract public Object tete();
}
class Tableau extends StructureDeDonnees
{
Object tab[]=new Object[getTaille()];
Tableau(int a)
{this.nbObjets=a;}
public void ajouter(Object o)
{
for(int i=0;i<tab.length;i++)
tab[i]=o;}
public Object retirer(int i)
{Object a = null;
if(!estVide())
{a=tab[i];
for(int j=i;j<tab.length-1;j++)
{tab[j]=tab[j+1];}
this.nbObjets--;}
return a;}
public Object tete()
{Object a;
a=tab[0];
if(!estVide())
{this.nbObjets--;
for(int i=0;i<tab.length-1;i++)
{tab[i]=tab[i+1];}
this.nbObjets--;
}
return a;
}
public static void main(String args[])
{
Tableau t=new Tableau(3);
t.ajouter(3);
t.ajouter(2);
t.ajouter(1);
System.out.println(t.retirer(1));
}
}
A voir également:
- Probleme en execution code java
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Code ascii - Guide
- Code puk bloqué - Guide
- Waptrick java voiture - Télécharger - Jeux vidéo
3 réponses
Dans ta méthode retirer(int i) tu sort du tableau à la ligne 46 de ton code.
En gros c'est comme si tu créais un tableau de 10 éléments allant de 0 à 9 et que tu essayais d'accéder à l'emplacement 12 ou -3.
Vérifie donc ta méthode retirer pour être sur de ne pas sortir du tableau.
En gros c'est comme si tu créais un tableau de 10 éléments allant de 0 à 9 et que tu essayais d'accéder à l'emplacement 12 ou -3.
Vérifie donc ta méthode retirer pour être sur de ne pas sortir du tableau.
Ma réponse est pourtant bonne, tu sort des limites de ton tableau étant donné que tu ne l'instancie même pas.
Qui plus est ta méthode en sortait quand même comme je l'avais dit.
C'est dommage que tu n'ai pas cherché par toi même, j'ai cependant corrigé ton code, bien qu'il est étrange et que je n'aurais pas fait ça de la même manière j'ai gardé ton optique :
Rangement.java
StrucutreDeDonnees.java
Tableau.java
Testé et fonctionnel bien que je le répète, tu devrais réfléchir à la façon dont tu retire des éléments, prévoir d'autres erreurs, genre si tu fais trop d'ajouts...
Qui plus est ta méthode en sortait quand même comme je l'avais dit.
C'est dommage que tu n'ai pas cherché par toi même, j'ai cependant corrigé ton code, bien qu'il est étrange et que je n'aurais pas fait ça de la même manière j'ai gardé ton optique :
Rangement.java
interface Rangement
{
public void ajouter(Object o);
public Object retirer(int i);
public Object tete();
public int getTaille();
public void setTaille(int i);
public boolean estVide();
}
StrucutreDeDonnees.java
abstract class StructureDeDonnees implements Rangement
{
public int nbObjets;
public void setTaille(int i)
{
nbObjets=i;
}
public int getTaille()
{
return nbObjets;
}
public boolean estVide()
{
return nbObjets == 0;
}
abstract public void ajouter(Object o);
abstract public Object retirer(int i);
abstract public Object tete();
}
Tableau.java
class Tableau extends StructureDeDonnees
{
Object tab[]=new Object[getTaille()];
Tableau(int a)
{
this.tab = new Object[a];
this.nbObjets = 0;
}
public void ajouter(Object o)
{
this.tab[this.nbObjets++] = o;
}
public Object retirer(int i)
{
if(i < 0 || i >= this.nbObjets) return null;
if(estVide()) return null;
Object a = tab[i];
for(int j=i;j<this.nbObjets-1;j++)
{
tab[j]=tab[j+1];
}
this.nbObjets--;
return a;
}
public Object tete()
{
Object a;
a=tab[0];
if(!estVide())
{
this.nbObjets--;
for(int i=0;i<tab.length-1;i++)
{
tab[i]=tab[i+1];
}
this.nbObjets--;
}
return a;
}
public static void main(String args[])
{
Tableau t=new Tableau(3);
t.ajouter(3);
t.ajouter(2);
t.ajouter(1);
System.out.println(t.retirer(2));
System.out.println(t.retirer(0));
System.out.println(t.retirer(1));
System.out.println(t.retirer(0));
}
}
Testé et fonctionnel bien que je le répète, tu devrais réfléchir à la façon dont tu retire des éléments, prévoir d'autres erreurs, genre si tu fais trop d'ajouts...