Probleme en execution code java
Fermé
Hacker#1
Messages postés
76
Date d'inscription
mardi 6 janvier 2009
Statut
Membre
Dernière intervention
20 avril 2010
-
1 mai 2009 à 12:26
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 - 1 mai 2009 à 15:04
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 - 1 mai 2009 à 15:04
A voir également:
- Probleme en execution code java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Le code ascii en informatique - Guide
- Code puk bloqué - Guide
- Java apk - Télécharger - Langages
3 réponses
scriptiz
Messages postés
1424
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
14 septembre 2023
425
1 mai 2009 à 12:45
1 mai 2009 à 12:45
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.
Hacker#1
Messages postés
76
Date d'inscription
mardi 6 janvier 2009
Statut
Membre
Dernière intervention
20 avril 2010
1 mai 2009 à 14:37
1 mai 2009 à 14:37
pas une autre solution
scriptiz
Messages postés
1424
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
14 septembre 2023
425
1 mai 2009 à 15:04
1 mai 2009 à 15:04
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...