Commit d6eeddaa3870a8d46b1a7af5e22ef204e2c5d8fd
1 parent
46b621e7
toutes les fonctions sont finis
Showing
1 changed file
with
27 additions
and
36 deletions
Show diff stats
arbre.c
@@ -31,27 +31,18 @@ int calculcase(char c) | @@ -31,27 +31,18 @@ int calculcase(char c) | ||
31 | return c-'a'; | 31 | return c-'a'; |
32 | } | 32 | } |
33 | } | 33 | } |
34 | - | ||
35 | -bool est_vide(struct arbre *arbre) | ||
36 | -{ | ||
37 | - return arbre==NULL; | ||
38 | -} | ||
39 | - | 34 | + |
40 | bool mot_existe(struct arbre *monarbre,char *mot,int i){ | 35 | bool mot_existe(struct arbre *monarbre,char *mot,int i){ |
41 | if (monarbre==NULL){ | 36 | if (monarbre==NULL){ |
42 | -// printf("false\n"); | 37 | + printf("%s n'est pas dans le dictionnaire\n",mot); |
43 | return false; | 38 | return false; |
44 | } | 39 | } |
45 | -// printf("%c \n",(monarbre->val)); | ||
46 | if (mot[i+1]=='\0'){ | 40 | if (mot[i+1]=='\0'){ |
47 | -// printf("finmot\n"); | 41 | + printf("%s %d\n",mot, monarbre->finmot); |
48 | return monarbre->finmot; | 42 | return monarbre->finmot; |
49 | } | 43 | } |
50 | - else { | ||
51 | - i++; | ||
52 | - return mot_existe(monarbre->suite[calculcase(mot[i])],mot,i); | ||
53 | - | ||
54 | - } | 44 | + i++; |
45 | + return mot_existe(monarbre->suite[calculcase(mot[i])],mot,i); | ||
55 | } | 46 | } |
56 | 47 | ||
57 | void ini_dico(struct dico *pt_dico) | 48 | void ini_dico(struct dico *pt_dico) |
@@ -84,13 +75,14 @@ void ajout_mot(struct arbre **arbrecourant,char *mot,int i) | @@ -84,13 +75,14 @@ void ajout_mot(struct arbre **arbrecourant,char *mot,int i) | ||
84 | if (*arbrecourant==NULL){ | 75 | if (*arbrecourant==NULL){ |
85 | creation_arbre(arbrecourant,mot[i]); | 76 | creation_arbre(arbrecourant,mot[i]); |
86 | } | 77 | } |
87 | - i++; | ||
88 | if(mot[i+1]=='\0'){ | 78 | if(mot[i+1]=='\0'){ |
89 | -// printf("mot:%s %d\n\n\n",mot,i); | 79 | + printf("mot:%s %c\n",mot,mot[i]); |
90 | (*arbrecourant)->finmot=true; | 80 | (*arbrecourant)->finmot=true; |
91 | } | 81 | } |
92 | - else ajout_mot(&((*arbrecourant)->suite[calculcase(mot[i])]),mot,i); | 82 | + i++; |
83 | + ajout_mot(&((*arbrecourant)->suite[calculcase(mot[i])]),mot,i); | ||
93 | } | 84 | } |
85 | + else return ; | ||
94 | 86 | ||
95 | } | 87 | } |
96 | 88 | ||
@@ -156,20 +148,20 @@ void affiche_dico(struct dico *dico) | @@ -156,20 +148,20 @@ void affiche_dico(struct dico *dico) | ||
156 | } | 148 | } |
157 | 149 | ||
158 | 150 | ||
159 | -void analyse_fichier(FILE *fp,Dico *pt_dico, int *res[2]){ | 151 | +void analyse_fichier(FILE *fp,Dico *pt_dico, int *nb_t, int *nb_f){ |
160 | int nbmot_t=0; | 152 | int nbmot_t=0; |
161 | int nbmot_f=0; | 153 | int nbmot_f=0; |
162 | char mot[20]; | 154 | char mot[20]; |
163 | while (fscanf(fp, "%s", mot)==1){ | 155 | while (fscanf(fp, "%s", mot)==1){ |
164 | // printf("mot:%s\n\n\n",mot); | 156 | // printf("mot:%s\n\n\n",mot); |
165 | // printf("\nlettre:%c\n",mot[0]); | 157 | // printf("\nlettre:%c\n",mot[0]); |
166 | - if(mot_existe(pt_dico->alpha[calculcase(mot[0])],mot,0)){ | 158 | + if(mot_existe(pt_dico->alpha[calculcase(mot[0])],mot,0)==1){ |
167 | nbmot_t++; | 159 | nbmot_t++; |
168 | } | 160 | } |
169 | else nbmot_f++; | 161 | else nbmot_f++; |
170 | } | 162 | } |
171 | - *res[0]=nbmot_t; | ||
172 | - *res[1]=nbmot_f; | 163 | + *nb_t=nbmot_t; |
164 | + *nb_f=nbmot_f; | ||
173 | } | 165 | } |
174 | 166 | ||
175 | int main (int argc,char *argv[]){ | 167 | int main (int argc,char *argv[]){ |
@@ -188,15 +180,15 @@ int main (int argc,char *argv[]){ | @@ -188,15 +180,15 @@ int main (int argc,char *argv[]){ | ||
188 | 180 | ||
189 | struct dico *mondico=malloc(sizeof(struct dico)); | 181 | struct dico *mondico=malloc(sizeof(struct dico)); |
190 | charger_dico(dico,&mondico); | 182 | charger_dico(dico,&mondico); |
191 | - affiche_dico(mondico); | 183 | +// affiche_dico(mondico); |
192 | fclose(dico); | 184 | fclose(dico); |
193 | char mot[]="zombie"; | 185 | char mot[]="zombie"; |
194 | - char mot2[]="zombbbiiee"; | ||
195 | -// mot_existe(mondico->alpha[calculcase(mot[0])],mot,0); | ||
196 | -// mot_existe(mondico->alpha[calculcase(mot2[0])],mot2,0); | 186 | + char mot2[]="chaine"; |
187 | +// mot_existe(mondico->alpha[calculcase('r')],"rerere",0); | ||
188 | + //mot_existe(mondico->alpha[calculcase(mot2[0])],mot2,0); | ||
197 | 189 | ||
198 | - printf("%s:%d \n",mot,mot_existe(mondico->alpha[calculcase(mot[0])],mot,0)); | ||
199 | - printf("%s:%d \n",mot2,mot_existe(mondico->alpha[calculcase(mot2[0])],mot2,0)); | 190 | + printf("1: %s:%d \n",mot,mot_existe(mondico->alpha[calculcase(mot[0])],mot,0)); |
191 | + printf("2: %s:%d \n",mot2,mot_existe(mondico->alpha[calculcase(mot2[0])],mot2,0)); | ||
200 | 192 | ||
201 | FILE* fichier_utilisateur = NULL; | 193 | FILE* fichier_utilisateur = NULL; |
202 | if(argc >2){ | 194 | if(argc >2){ |
@@ -205,17 +197,16 @@ int main (int argc,char *argv[]){ | @@ -205,17 +197,16 @@ int main (int argc,char *argv[]){ | ||
205 | printf("Fin Analyse de votre fichier \n"); | 197 | printf("Fin Analyse de votre fichier \n"); |
206 | } | 198 | } |
207 | 199 | ||
208 | -// if (fichier_utilisateur!=NULL){ | ||
209 | -// printf("analyse en cours"); | ||
210 | -// int *res[2]; | ||
211 | -// analyse_fichier(fichier_utilisateur,mondico,res); | ||
212 | -// printf("juste:%d \n",*res[0]); | ||
213 | -// printf("faux:%d \n",*res[1]); | ||
214 | -// } | 200 | + if (fichier_utilisateur!=NULL){ |
201 | + printf("analyse en cours\n"); | ||
202 | + int juste=0; | ||
203 | + int faux=0; | ||
204 | + analyse_fichier(fichier_utilisateur,mondico,&juste,&faux); | ||
205 | + printf("juste:%d \n",juste); | ||
206 | + printf("faux:%d \n",faux); | ||
207 | + } | ||
215 | 208 | ||
216 | printf("fin programme \n"); | 209 | printf("fin programme \n"); |
217 | - | ||
218 | - | ||
219 | free_dico(mondico); | 210 | free_dico(mondico); |
220 | if (fichier_utilisateur!=NULL){ | 211 | if (fichier_utilisateur!=NULL){ |
221 | fclose(fichier_utilisateur); | 212 | fclose(fichier_utilisateur); |