Cette classe lit des entiers initialisé dans un tableau à 1 dimension, et les place dans un autre tableau à 1 dimension de même taille que le premier. La position de la valeur dans le tableau de destination est calculée par dichotomie.
cs_amiss
Messages postés1Date d'inscriptionjeudi 8 juin 2006StatutMembreDernière intervention23 septembre 2008 17 sept. 2007 à 12:04
Franchement j'ai lu ton code mais je ne trouve aucune utilité pour ton code. J'en veux pour preuves:
tu fais passer toutes les exceptions là où tu n'en a pas besoin.Tu pouvais facilement créer des nouvelles classes d'exceptions par
throw new UneException("indice negatif...") .
je ne vois même pas l'éfficacité de la POO par absence des attributs dans ton code et où tout est mis dans une seule classe(absence de modularité un des principes de la POO).
Tu aurais pu utiliser les collections de type ArrayList au moins ça pouvait être plus bénifique pour toi car elle est utilisée tous les jours en java.
bonne continuation.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 14 sept. 2007 à 15:04
poster ce genre de choses ici... ca aurait probablement plus sa place dans les snippets... si j'avais poste tout mes tds de java et chaque programme... j'en serais peut-etre a 500 sources... peut-etre plus...
thevman
Messages postés83Date d'inscriptionlundi 5 septembre 2005StatutMembreDernière intervention 3 juillet 2008 13 sept. 2007 à 22:01
Bonjour, :)
Si on met 0 en premier ca ne fonctionne plus. :(
int tnb[] = {0,1,2,321326,1255,10128,65,4,7,4,10,5,3,7,8};
xael2
Messages postés8Date d'inscriptionlundi 10 septembre 2007StatutMembreDernière intervention 7 octobre 2008 13 sept. 2007 à 10:09
en fait j'avais des soucis a la compilation a cause du throws absent dans des fonction qui en avaient besoin, et comme j'étais pressé j'en ais mis partout... voila la raison ;)
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 12 sept. 2007 à 09:41
Pas grave je suis là pour vous remonter le moral...
cela dit un truc me choc vraiment dans ton code :
Pourquoi tu fais un throws IOException sur toute tes méthodes alors qu'à aucun moment tu ne déclenches ou n'utilise de méthodes susceptible de lever ce type d'exception ? si tu le mets pour le plaisir, oriente toi vers une exception plus spécifique et c'est pas ce qui manque... genre tu pourrais tester les tailles de tes tableau en entrée genre :
public static void insertion( int val, int tab[], int pos) {
if(tab == null)
throw new NullPointerException("Le tableau est null");
if(tab.length < 2)
throw new ArrayIndexOutOfBoundsException("La taille ne peut être inférieure à 2");
if(pos < 0)
throw new IllegalArgumentException("La position n'est pas valide");
[...]
}
ainsi blinder le plus possible ton code sans le voir partir en while....
Note : avec les exceptions de type NullPointerException, ArrayIndexOutOfBoundsException, IllegalArgumentException le throws Exception n'est pas obligatoire...
autre point pourquoi tu mets des ';' quasiment après chaque '}' ? tu sais que ce n'est pas obligatoire voir inutile.
17 sept. 2007 à 12:04
tu fais passer toutes les exceptions là où tu n'en a pas besoin.Tu pouvais facilement créer des nouvelles classes d'exceptions par
throw new UneException("indice negatif...") .
je ne vois même pas l'éfficacité de la POO par absence des attributs dans ton code et où tout est mis dans une seule classe(absence de modularité un des principes de la POO).
Tu aurais pu utiliser les collections de type ArrayList au moins ça pouvait être plus bénifique pour toi car elle est utilisée tous les jours en java.
bonne continuation.
14 sept. 2007 à 15:04
13 sept. 2007 à 22:01
Si on met 0 en premier ca ne fonctionne plus. :(
int tnb[] = {0,1,2,321326,1255,10128,65,4,7,4,10,5,3,7,8};
0 - 1 - 2 - 321326 - 1255 - 10128 - 65 - 4 - 7 - 4 - 10 - 5 - 3 - 7 - 8
1 - 0 - 2 - 3 - 4 - 4 - 5 - 7 - 7 - 8 - 10 - 65 - 1255 - 10128 - 321326
13 sept. 2007 à 10:09
12 sept. 2007 à 09:41
cela dit un truc me choc vraiment dans ton code :
Pourquoi tu fais un throws IOException sur toute tes méthodes alors qu'à aucun moment tu ne déclenches ou n'utilise de méthodes susceptible de lever ce type d'exception ? si tu le mets pour le plaisir, oriente toi vers une exception plus spécifique et c'est pas ce qui manque... genre tu pourrais tester les tailles de tes tableau en entrée genre :
public static void insertion( int val, int tab[], int pos) {
if(tab == null)
throw new NullPointerException("Le tableau est null");
if(tab.length < 2)
throw new ArrayIndexOutOfBoundsException("La taille ne peut être inférieure à 2");
if(pos < 0)
throw new IllegalArgumentException("La position n'est pas valide");
[...]
}
ainsi blinder le plus possible ton code sans le voir partir en while....
Note : avec les exceptions de type NullPointerException, ArrayIndexOutOfBoundsException, IllegalArgumentException le throws Exception n'est pas obligatoire...
autre point pourquoi tu mets des ';' quasiment après chaque '}' ? tu sais que ce n'est pas obligatoire voir inutile.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.