Recherche dichotomique dans un fichier
Fermé
joujou98
-
20 déc. 2018 à 11:32
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 20 déc. 2018 à 14:08
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 20 déc. 2018 à 14:08
A voir également:
- Recherche dichotomique dans un fichier
- Fichier rar - Guide
- Fichier host - Guide
- Fichier iso - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
2 réponses
[Dal]
Messages postés
6174
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 février 2024
1 083
Modifié le 20 déc. 2018 à 13:36
Modifié le 20 déc. 2018 à 13:36
Salut joujou98,
Si tu dois chercher un mot, pourquoi ne prends-tu qu'un caractère dans le fichier au début de chaque ligne et ne fais-tu une comparaison que du premier caractère du mot passé à la fonction ?
Sais-tu réellement que tes lignes ne font pas plus de 128 caractères ?
Est-ce un dictionnaire de mots de la langue française ? Peux-tu en donner un extrait (quelques lignes d'exemple à partir du début) ?
Ta fonction retourne un long selon son prototype. Là tu ne retournes rien. Que veux-tu retourner ?
Tu devrais améliorer ton style qui est très difficile à lire (et pour la coloration syntaxique sur le forum d'un code en langage C utilise la balise <code c> pas juste <code>). Vois :
https://fr.wikipedia.org/wiki/Style_d%27indentation#Style_K&R
https://www.cas.mcmaster.ca/~carette/SE3M04/2004/slides/CCodingStyle.html ou, mieux, lis le livre de Kernighan et Ritchie ...
Dal
Si tu dois chercher un mot, pourquoi ne prends-tu qu'un caractère dans le fichier au début de chaque ligne et ne fais-tu une comparaison que du premier caractère du mot passé à la fonction ?
Sais-tu réellement que tes lignes ne font pas plus de 128 caractères ?
Est-ce un dictionnaire de mots de la langue française ? Peux-tu en donner un extrait (quelques lignes d'exemple à partir du début) ?
Ta fonction retourne un long selon son prototype. Là tu ne retournes rien. Que veux-tu retourner ?
Tu devrais améliorer ton style qui est très difficile à lire (et pour la coloration syntaxique sur le forum d'un code en langage C utilise la balise <code c> pas juste <code>). Vois :
https://fr.wikipedia.org/wiki/Style_d%27indentation#Style_K&R
https://www.cas.mcmaster.ca/~carette/SE3M04/2004/slides/CCodingStyle.html ou, mieux, lis le livre de Kernighan et Ritchie ...
Dal
c'est déjà précisé j'ai besoin d'une recherche dichotomique
je sais que ma fonction retourne un long, je veux retourner la position de ce mot dans le fichier
la ligne n'est pas un problème mais la recherche dicho j'ai pas su la faire c ça qui minteresse
je sais que ma fonction retourne un long, je veux retourner la position de ce mot dans le fichier
la ligne n'est pas un problème mais la recherche dicho j'ai pas su la faire c ça qui minteresse
[Dal]
Messages postés
6174
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 février 2024
1 083
Modifié le 20 déc. 2018 à 14:12
Modifié le 20 déc. 2018 à 14:12
Tu ne réponds pas à mes questions, mais c'est toi qui vois.
Ce n'est pas en prenant seulement le premier caractère de chaque mot que tu vas faire une recherche dichotomique.
Tu dois :
- charger tous les mots du dictionnaire (qui sont dans l'ordre alphabétique, puisque c'est un dictionnaire)
- prendre le mot du milieu du dictionnaire et voir si le mot que tu cherches est avant ou après (tu dois donc comparer des mots) et pour cette comparaison il y a une fonction standard dans le langage C que tu devrais utiliser :
- répéter l'opération en prenant le mot à la moitié de la partie dans laquelle le mot devrait se trouver jusqu'à ce que tu tombes sur le mot ou qu'il ne reste plus rien à diviser en deux
Bon courage :-)
Ce n'est pas en prenant seulement le premier caractère de chaque mot que tu vas faire une recherche dichotomique.
Tu dois :
- charger tous les mots du dictionnaire (qui sont dans l'ordre alphabétique, puisque c'est un dictionnaire)
- prendre le mot du milieu du dictionnaire et voir si le mot que tu cherches est avant ou après (tu dois donc comparer des mots) et pour cette comparaison il y a une fonction standard dans le langage C que tu devrais utiliser :
strcmp()voir : http://www.cplusplus.com/reference/cstring/strcmp/
- répéter l'opération en prenant le mot à la moitié de la partie dans laquelle le mot devrait se trouver jusqu'à ce que tu tombes sur le mot ou qu'il ne reste plus rien à diviser en deux
Bon courage :-)