Commit 47a7c29a8cbff8f95776be1ffce6440aec6d0829

Authored by tvieuble
1 parent bd536e67

Suppression fichier inutile

Showing 1 changed file with 0 additions and 214 deletions   Show diff stats
projetfinalaccent2.c deleted
... ... @@ -1,214 +0,0 @@
1   -#include <stdio.h>
2   -#include <stdlib.h>
3   -#include <wchar.h>
4   -#include <locale.h>
5   -
6   -#include "fonctions.h"
7   -
8   -#define A 256
9   -
10   -void ajout_tete(wchar_t elem, struct cell** pL) {
11   - struct cell* p;
12   - p = malloc(sizeof(struct cell));
13   - p->arbre = malloc(sizeof(struct node));
14   - p->arbre->listeFils = NULL;
15   - p->arbre->lettre = elem;
16   - p->arbreSuivant = *pL;
17   - *pL = p;
18   -}
19   -
20   -struct cell ** insertion(wchar_t elem, struct cell** pL) {
21   - if(((*pL) == NULL) || ((*pL)->arbre->lettre > elem)) {
22   - ajout_tete(elem, pL);
23   - return &(*pL)->arbre->listeFils;
24   - }
25   - else if((*pL)->arbre->lettre == elem) {
26   - return &(*pL)->arbre->listeFils;
27   - }
28   - else {
29   - return insertion(elem, &(*pL)->arbreSuivant);
30   - }
31   -}
32   -
33   -void initialisation_tab_arbre(struct node tab[]) {
34   - int i = 0;
35   - for(wchar_t u = 'a'; u < A; u++) {
36   - tab[i].lettre = u; //ajout lettres minuscules
37   - tab[i].listeFils = NULL;
38   - i++;
39   - }
40   - tab[i].lettre = '?';
41   - tab[i+1].lettre = '!';
42   - tab[i+2].lettre = '\'';
43   - tab[i+3].lettre = '.'; //Ajout des caractères de ponctuation par défau
44   - tab[i+4].lettre = ':';
45   - tab[i+5].lettre = ';';
46   - for(int j = 0; j <= 5; j++) {
47   - tab[i+j].listeFils = NULL;
48   - insertion('\0', &(tab[i+j].listeFils));
49   - }
50   -}
51   -
52   -int indice_lettre(struct node tab_arbre_prcp[], wchar_t lettre) {
53   - int i = 0;
54   - while(i >= 0 && i < A){
55   - if(lettre == tab_arbre_prcp[i].lettre ){
56   - return i;
57   - }
58   - i++;
59   - }
60   -return -1;
61   -}
62   -
63   -void remplir_dico(FILE* fd, struct node tab_arbre_prcp[]) {
64   -
65   - struct cell** localisationArbre = NULL;
66   - int cptmot = 0, indice = 0;
67   - wchar_t motLu[50];
68   - while(fwscanf(fd, L"%ls", motLu)==1) {
69   - int estUneLettre = 1;
70   - int i = 0;
71   - cptmot += 1;
72   - if((motLu[0] >= 'A') && (motLu[0] <= 'Z')) {
73   - localisationArbre = &tab_arbre_prcp[motLu[0]-65].listeFils;
74   - }
75   - else if((motLu[0] >= 'a') && (motLu[0] <= 'z')) {
76   - localisationArbre = &tab_arbre_prcp[motLu[0]-97].listeFils;
77   - }
78   - else if((motLu[0] < 'A') || (motLu[0] > 'z')) {
79   - indice = indice_lettre(tab_arbre_prcp, motLu[0]);
80   - localisationArbre = &tab_arbre_prcp[indice].listeFils;
81   - if(indice == -1) {
82   - wprintf(L"Erreur remplissage dico : L'un des caracteres n'est pas une lettre\n");
83   - wprintf(L"Mot : '%ls' incorrect\n", motLu);
84   - estUneLettre = 0;
85   - }
86   - }
87   - else {
88   - wprintf(L"Erreur remplissage dico : L'un des caracteres n'est pas une lettre\n");
89   - wprintf(L"Mot : '%ls' incorrect\n", motLu);
90   - estUneLettre = 0;
91   - }
92   - while((motLu[i] != '\0') && (estUneLettre == 1)) {
93   - i += 1;
94   - localisationArbre = insertion(motLu[i], localisationArbre);
95   - }
96   - }
97   - wprintf(L"\n");
98   - fclose(fd);
99   - wprintf(L"%d mots inseres dans le dictionnaire.\n", cptmot);
100   -}
101   -
102   -struct cell ** test_mot(wchar_t mot, struct cell** localisation, int* verif) {
103   -
104   - if((*localisation == NULL) || (*localisation)->arbre->lettre > mot) {
105   - *verif = 0;
106   - return NULL;
107   - }
108   - if((*localisation)->arbre->lettre == mot) {
109   - return &(*localisation)->arbre->listeFils;
110   - }
111   - else {
112   - return test_mot(mot, &(*localisation)->arbreSuivant, verif);
113   - }
114   -}
115   -
116   -void correction_txt(FILE* fd, struct node tab_arbre_prcp[]) {
117   - struct cell** localisationArbre = NULL;
118   - int verif;
119   - int indice = 0, cptfaute = 0;
120   - wchar_t motLu[50];
121   - wprintf(L"\nCorrection du fichier texte : \n\n");
122   - while(fwscanf(fd, L"%ls", motLu)==1) {
123   - verif = 1;
124   - int i = 0;
125   - if((motLu[0] >= 'A') && (motLu[0] <= 'Z')) {
126   - localisationArbre = &tab_arbre_prcp[motLu[0]-65].listeFils;
127   - }
128   - else if((motLu[0] >= 'a') && (motLu[0] <= 'z')) {
129   - localisationArbre = &tab_arbre_prcp[motLu[0]-97].listeFils;
130   - }
131   - else if((motLu[0] < 'A') || (motLu[0] > 'z')) {
132   - indice = indice_lettre(tab_arbre_prcp, motLu[0]);
133   - localisationArbre = &tab_arbre_prcp[indice].listeFils;
134   - if(indice == -1) {
135   - wprintf(L"Erreur correction txt : L'un des caracteres n'est pas une lettre\n");
136   - verif = 0;
137   - }
138   - }
139   - else {
140   - wprintf(L"Erreur correction txt : L'un des caracteres n'est pas une lettre\n");
141   - verif = 0;
142   - }
143   - while((verif == 1) && (motLu[i] != '\0')) {
144   - i += 1;
145   - if((motLu[i] == '.') || (motLu[i] == ',') || (motLu[i] == ';') || (motLu[i] == ':') || (motLu[i] == '!') || (motLu[i] == '?')) motLu[i] = '\0'; //prendre en compte les fins de phrase
146   - localisationArbre = test_mot(motLu[i], localisationArbre, &verif);
147   - }
148   - if(verif == 0) {
149   - wprintf(L"Mot '%ls' non present dans le dicitonnaire.\n", motLu);
150   - cptfaute += 1;
151   - }
152   - }
153   - wprintf(L"\nLe texte comporte %d faute(s)\n", cptfaute);
154   - fclose(fd);
155   -}
156   -
157   -void correction_mot(struct node tab_arbre_prcp[]) {
158   - struct cell** localisationArbre = NULL;
159   - int verif;
160   - int indice = 0;
161   - wchar_t motLu[50];
162   - wprintf(L"\nEntrez un mot ou une phrase a corriger : \n(0 pour quitter)\n\n");
163   - while(wscanf(L"%ls", motLu)==1) {
164   - if(motLu[0]=='0') return;
165   - verif = 1;
166   - int i = 0;
167   - if((motLu[0] >= 'A') && (motLu[0] <= 'Z')) {
168   - localisationArbre = &tab_arbre_prcp[motLu[0]-65].listeFils;
169   - }
170   - else if((motLu[0] >= 'a') && (motLu[0] <= 'z')) {
171   - localisationArbre = &tab_arbre_prcp[motLu[0]-97].listeFils;
172   - }
173   - else if((motLu[0] < 'A') || (motLu[0] > 'z')) {
174   - indice = indice_lettre(tab_arbre_prcp, motLu[0]);
175   - localisationArbre = &tab_arbre_prcp[indice].listeFils;
176   - if(indice == -1) {
177   - wprintf(L"Erreur correction mot : L'un des caracteres n'est pas une lettre\n");
178   - verif = 0;
179   - }
180   - }
181   - else {
182   - wprintf(L"Erreur correction mot : L'un des caracteres n'est pas une lettre\n");
183   - verif = 0;
184   - }
185   - while((verif == 1) && (motLu[i] != '\0')) {
186   - i += 1;
187   - if((motLu[i] == '.') || (motLu[i] == ',') || (motLu[i] == ';') || (motLu[i] == ':') || (motLu[i] == '!') || (motLu[i] == '?')) motLu[i] = '\0';
188   - localisationArbre = test_mot(motLu[i], localisationArbre, &verif);
189   - }
190   - if(verif == 0) {
191   - wprintf(L"Mot : '%ls' non present dans le dicitonnaire.\n", motLu);
192   - }
193   - else wprintf(L"Mot : '%ls' correct\n", motLu);
194   - }
195   -}
196   -
197   -void desallocationArbre(struct cell** pL) {
198   -
199   - if ((*pL) == NULL) return;
200   -
201   - desallocationArbre(&(*pL)-> arbreSuivant);
202   - desallocationArbre(&(*pL)-> arbre -> listeFils);
203   - free((*pL) -> arbre);
204   - free(*pL);
205   -}
206   -
207   -void desallocationTableauArbre(struct node tab_arbre[]) {
208   - int i = 0;
209   - for(wchar_t u = 'a'; u <= A+5; u++) { //A+5 car ajout de 5 caractères de ponctuation en plus des lettres
210   - desallocationArbre(&tab_arbre[i].listeFils);
211   - i++;
212   - }
213   -}
214   -