Explication de code
Fermé
logma23
Messages postés
7
Date d'inscription
mercredi 3 mai 2017
Statut
Membre
Dernière intervention
3 mai 2017
-
3 mai 2017 à 15:43
logma23 Messages postés 7 Date d'inscription mercredi 3 mai 2017 Statut Membre Dernière intervention 3 mai 2017 - 3 mai 2017 à 23:05
logma23 Messages postés 7 Date d'inscription mercredi 3 mai 2017 Statut Membre Dernière intervention 3 mai 2017 - 3 mai 2017 à 23:05
A voir également:
- Explication de code
- Code ascii de a - Guide
- Code puk bloqué - Guide
- Code de déverrouillage oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
3 réponses
Felice_
Messages postés
265
Date d'inscription
mardi 25 avril 2017
Statut
Membre
Dernière intervention
20 juillet 2017
11
3 mai 2017 à 16:03
3 mai 2017 à 16:03
Faite juste un copier coller du code. Sans cela personne ne pourra vous aider…
Felice_
Messages postés
265
Date d'inscription
mardi 25 avril 2017
Statut
Membre
Dernière intervention
20 juillet 2017
11
3 mai 2017 à 17:34
3 mai 2017 à 17:34
Ta fonction ne fait que comparer deux tableaux.
Elle vérifie simplement si le mot premier mot du tableau « sacMot » est plus petit en caractères.
Si c'est le cas il remplace par le tableau « this.mots ».
Dans le cas contraire il teste si le premier mot des deux tableaux ont le même nombre de caractères.
Si c'est le cas il vérifie si le mot du tableau « this.mots » existe dans « sacMot ».
S'il n'existe pas il l'ajoute.
Enfin au début si « sacMot » est vide alors il reçois la valeur de « this.mots »
La fonction retourne finalement le nouveau tableau de la variable « sacMot ».
Elle vérifie simplement si le mot premier mot du tableau « sacMot » est plus petit en caractères.
Si c'est le cas il remplace par le tableau « this.mots ».
Dans le cas contraire il teste si le premier mot des deux tableaux ont le même nombre de caractères.
Si c'est le cas il vérifie si le mot du tableau « this.mots » existe dans « sacMot ».
S'il n'existe pas il l'ajoute.
Enfin au début si « sacMot » est vide alors il reçois la valeur de « this.mots »
La fonction retourne finalement le nouveau tableau de la variable « sacMot ».
logma23
Messages postés
7
Date d'inscription
mercredi 3 mai 2017
Statut
Membre
Dernière intervention
3 mai 2017
3 mai 2017 à 17:40
3 mai 2017 à 17:40
ici c'est dans un arbre que les mots d'un dictionnaire sont triés par ordre alphabétique et chaque lettre est stocké dans un noeud de l'arbre. Ca marche pareil?
logma23
Messages postés
7
Date d'inscription
mercredi 3 mai 2017
Statut
Membre
Dernière intervention
3 mai 2017
3 mai 2017 à 17:42
3 mai 2017 à 17:42
la Fonction recherche des mots les plus longs est celle que je n'arrive pas du tout a comprendre
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
3 mai 2017 à 22:42
3 mai 2017 à 22:42
Bonjour,
"je ne comprends pas une partie du code"
Il faut dire que le code en question est quand même particulièrement mal fichu... mais c'est le risque on prends le code d'un autre.
Quelques commentaires sur le code :
Et voici un code après correction des commentaires, normalement ça fait la même chose :
"je ne comprends pas une partie du code"
Il faut dire que le code en question est quand même particulièrement mal fichu... mais c'est le risque on prends le code d'un autre.
Quelques commentaires sur le code :
public ArrayList<String> // On ne devrait pas renvoyer la classe ArrayList mais l'interface List Recherche(// Le nom de la méthode devrait commencer par une minuscule String mot, String s, int prof, ArrayList<String> sacMot) { // idem : sacMot devrait être une interface int i, j; // i ne devrait pas être déclaré ici mais dans la boucle for, j ne sert à rien if (prof == mot.length()) { // les noms sont mal choisis, on ne sait pas à quoi correspond "prof" sacMot = this.TestListe(sacMot); // on ne devrait pas réaffecter un argument de la méthode avec une autre valeur } else { // on peut se passer du else, il aurait fallu faire un return avant car dans le cas du if le résultat est déjà connu for (i = 0; i < s.length(); i++) { // c'est ici qu'il fallait déclarer int i; char c = s.charAt(i); // c n'est utilisé qu'une fois, on peut s'en passer int index = ((int) c - 97); // 97 n'est pas intuitif, il aurait mieux fallu mettre 'a' directement try { sacMot = this.fils[index] // le this est inutile .Recherche(mot, s.substring(i + 1, s.length()), prof + 1 + i, sacMot); // simplifiable (un peu) sacMot = this.TestListe(sacMot); } catch (NullPointerException npe) { // grosse faute, il vaut mieux tester le cas == null plutôt que de gérer ça avec un catch sacMot = this.TestListe(sacMot); // si le catch a le même résultat que le this alors autant sortir les deux } } } return sacMot; }
Et voici un code après correction des commentaires, normalement ça fait la même chose :
public List<String> recherche(String mot, String s, int prof, List<String> sacMot) { if (prof == mot.length()) return testListe(sacMot); for (int i = 0; i < s.length(); i++) { int index = s.charAt(i) - 'a'; if (fils[index] != null) { String s2 = s.substring(i + 1, s.length()); int prof2 = prof + i + 1; sacMot = fils[index].recherche(mot, s2, prof2, sacMot); } sacMot = testListe(sacMot); } return sacMot; }
logma23
Messages postés
7
Date d'inscription
mercredi 3 mai 2017
Statut
Membre
Dernière intervention
3 mai 2017
3 mai 2017 à 23:05
3 mai 2017 à 23:05
le fais des études par correspondance et on me demande de comprendre ce truc. prof je pense que c'est la profondeur du noeud
Modifié le 3 mai 2017 à 16:44
3 mai 2017 à 16:40
La prochaine fois, pense bien à utiliser les balises code du forum, l’icône </>.
3 mai 2017 à 16:45
3 mai 2017 à 17:01
3 mai 2017 à 17:10