Commit bd536e678c3407d3c96191f819dbc79cbe886db9

Authored by tvieuble
1 parent f5d89491

Suppression fichier inutile

Showing 1 changed file with 0 additions and 269 deletions   Show diff stats
projetfinalaccent.c deleted
... ... @@ -1,269 +0,0 @@
1   -#include <stdio.h>
2   -#include <stdlib.h>
3   -#include <wchar.h>
4   -#include <locale.h>
5   -
6   -#define A 256
7   -
8   -struct node {
9   - wchar_t lettre;
10   - struct cell* listeFils; //Accés cellule contenant une des lettres suivante à "lettre"
11   -};
12   -
13   -struct cell {
14   - struct node* arbre;
15   - struct cell* arbreSuivant; //Accés à la cellule contenant une autre lettre suivante à "lettre"
16   -};
17   -
18   -void lien_listeFils(struct cell** pL) {
19   - struct cell* p;
20   - p = malloc(sizeof(struct cell));
21   -
22   - (*pL)->arbre->listeFils = p;
23   -}
24   -
25   -void initialisation_tab_arbre(struct node tab[]) {
26   - int i = 0;
27   - for(wchar_t u = 'a'; u < A; u++) {
28   - tab[i].lettre = u; //ajout lettres minuscules
29   - tab[i].listeFils = NULL;
30   - i++;
31   - }
32   -}
33   -
34   -void ajout_tete(wchar_t elem, struct cell** pL) {
35   - struct cell* p;
36   - p = malloc(sizeof(struct cell));
37   - p->arbre = malloc(sizeof(struct node));
38   - p->arbre->listeFils = NULL;
39   - p->arbre->lettre = elem;
40   - p->arbreSuivant = *pL;
41   - *pL = p;
42   -}
43   -
44   -struct cell ** insertion(wchar_t elem, struct cell** pL) {
45   - if(((*pL) == NULL) || ((*pL)->arbre->lettre > elem)) {
46   - ajout_tete(elem, pL);
47   - return &(*pL)->arbre->listeFils;
48   - }
49   - else if((*pL)->arbre->lettre == elem) {
50   - return &(*pL)->arbre->listeFils;
51   - }
52   - else {
53   - return insertion(elem, &(*pL)->arbreSuivant);
54   - }
55   -}
56   -
57   -int indice_lettre(struct node tab_arbre_prcp[], wchar_t lettre)
58   -{
59   - int i = 1;
60   - while(i > 0 && i < A){
61   - if(lettre == tab_arbre_prcp[i].lettre ){
62   - return i;
63   - }
64   - i++;
65   - }
66   -return 0;
67   -}
68   -
69   -void remplir_dico(FILE* fd, struct node tab_arbre_prcp[]) {
70   -
71   - struct cell** localisationArbre = NULL;
72   - int cptmot = 0, indice = 0;
73   - wchar_t motLu[50];
74   - while(fwscanf(fd, L"%ls", motLu)==1) {
75   - wprintf(L"mot lu : %ls\n", motLu);
76   - int estUneLettre = 1;
77   - int i = 0;
78   - cptmot += 1;
79   - if((motLu[0] >= 'A') && (motLu[0] <= 'Z')) {
80   - localisationArbre = &tab_arbre_prcp[motLu[0]-65].listeFils;
81   - }
82   - else if((motLu[0] >= 'a') && (motLu[0] <= 'z')) {
83   - localisationArbre = &tab_arbre_prcp[motLu[0]-97].listeFils;
84   - }
85   - else if(motLu[0] > 'z') {
86   - indice = indice_lettre(tab_arbre_prcp, motLu[0]);
87   - localisationArbre = &tab_arbre_prcp[indice].listeFils;
88   - if(indice == 0) {
89   - wprintf(L"Erreur remplissage dico : L'un des caracteres n'est pas une lettre\n");
90   - wprintf(L"Mot : %ls incorrect\n", motLu);
91   - estUneLettre = 0;
92   - }
93   - }
94   - else {
95   - wprintf(L"Erreur remplissage dico : L'un des caracteres n'est pas une lettre\n");
96   - wprintf(L"Mot : %ls incorrect\n", motLu);
97   - estUneLettre = 0;
98   - }
99   - while((motLu[i] != '\0') && (estUneLettre == 1)) {
100   - i += 1;
101   - wprintf(L"lettre lue %d\n", motLu[i]);
102   - localisationArbre = insertion(motLu[i], localisationArbre);
103   - }
104   - }
105   - wprintf(L"\n");
106   - fclose(fd);
107   - wprintf(L"%d mots inseres dans le dictionnaire.\n", cptmot);
108   -}
109   -
110   -struct cell** test_mot(wchar_t mot, struct cell** localisation, int* verif) {
111   -
112   - if((*localisation == NULL) || (*localisation)->arbre->lettre > mot) {
113   - *verif = 0;
114   - return NULL;
115   - }
116   - if((*localisation)->arbre->lettre == mot) {
117   - return &(*localisation)->arbre->listeFils;
118   - }
119   - else {
120   - return test_mot(mot, &(*localisation)->arbreSuivant, verif);
121   - }
122   -}
123   -
124   -void correction_txt(FILE* fd, struct node tab_arbre_prcp[]) {
125   - struct cell** localisationArbre = NULL;
126   - int verif;
127   - int indice = 0;
128   - wchar_t motLu[50];
129   - while(fwscanf(fd, L"%ls", motLu)==1) {
130   - verif = 1;
131   - int i = 0;
132   - if((motLu[0] >= 'A') && (motLu[0] <= 'Z')) {
133   - localisationArbre = &tab_arbre_prcp[motLu[0]-65].listeFils;
134   - }
135   - else if((motLu[0] >= 'a') && (motLu[0] <= 'z')) {
136   - localisationArbre = &tab_arbre_prcp[motLu[0]-97].listeFils;
137   - }
138   - else if(motLu[0] > 'z') {
139   - indice = indice_lettre(tab_arbre_prcp, motLu[0]);
140   - localisationArbre = &tab_arbre_prcp[indice].listeFils;
141   - if(indice == 0) {
142   - wprintf(L"Erreur correction txt : L'un des caracteres n'est pas une lettre\n");
143   - verif = 0;
144   - }
145   - }
146   - else {
147   - wprintf(L"Erreur correction txt : L'un des caracteres n'est pas une lettre\n");
148   - verif = 0;
149   - }
150   - while((verif == 1) && (motLu[i] != '\0')) {
151   - i += 1;
152   - localisationArbre = test_mot(motLu[i], localisationArbre, &verif);
153   - }
154   - if(verif == 0) wprintf(L"Mot %ls non present dans le dicitonnaire.\n", motLu);
155   - }
156   - fclose(fd);
157   -}
158   -
159   -void correction_mot(struct node tab_arbre_prcp[]) {
160   - struct cell** localisationArbre = NULL;
161   - int verif;
162   - int indice = 0;
163   - wchar_t motLu[50];
164   - wprintf(L"Entrez un mot ou une phrase a corriger : \n(0 pour quitter)\n");
165   - while(wscanf(L"%ls", motLu)==1) {
166   - if(motLu[0]=='0') return;
167   - verif = 1;
168   - int i = 0;
169   - if((motLu[0] >= 'A') && (motLu[0] <= 'Z')) {
170   - localisationArbre = &tab_arbre_prcp[motLu[0]-65].listeFils;
171   - }
172   - else if((motLu[0] >= 'a') && (motLu[0] <= 'z')) {
173   - localisationArbre = &tab_arbre_prcp[motLu[0]-97].listeFils;
174   - }
175   - else if(motLu[0] > 'z') {
176   - indice = indice_lettre(tab_arbre_prcp, motLu[0]);
177   - localisationArbre = &tab_arbre_prcp[indice].listeFils;
178   - if(indice == 0) {
179   - wprintf(L"Erreur correction mot : L'un des caracteres n'est pas une lettre\n");
180   - verif = 0;
181   - }
182   - }
183   - else {
184   - wprintf(L"Erreur correction mot : L'un des caracteres n'est pas une lettre\n");
185   - verif = 0;
186   - }
187   - while((verif == 1) && (motLu[i] != '\0')) {
188   - i += 1;
189   - wprintf(L"lettre lue %d\n", motLu[i]);
190   - localisationArbre = test_mot(motLu[i], localisationArbre, &verif);
191   - }
192   - if(verif == 0) wprintf(L"Mot : %ls non present dans le dicitonnaire.\n", motLu);
193   - else wprintf(L"Mot : %ls correct\n", motLu);
194   - }
195   -}
196   -
197   -/*void supp_tete(struct cell** pL) {
198   - struct cell* p;
199   - p = *pL;
200   - *pL = (*pL) -> arbreSuivant;
201   - free(p);
202   -}*/
203   -
204   -void desalocation(struct node** pL) {
205   - if ((*pL) -> listeFils == NULL) return;
206   - if ((*pL) -> listeFils -> arbreSuivant != NULL) desalocation(&(*pL) -> listeFils -> arbreSuivant -> arbre);
207   - desalocation(&(*pL) -> listeFils -> arbre);
208   - free((*pL) -> listeFils);
209   - free(*pL);
210   -}
211   -
212   -<<<<<<< HEAD
213   -=======
214   -void desalocation(struct node* arbre) {
215   - if(arbre == NULL) return;
216   - struct cell* listeFils2 = arbre->listeFils;
217   - while(listeFils2 != NULL) {
218   - listeFils2 = arbre->listeFils;
219   - }
220   - while(listeFils2->arbreSuivant != NULL) {
221   - supp_tete(&listeFils2->arbreSuivant);
222   - }
223   -}
224   -
225   ->>>>>>> a8b3b5881e89dd7ae93a7b952fda31f1b524325b
226   -int main(int argc, char* argv[]) {
227   -
228   - int i =0;
229   - setlocale(LC_ALL, "");
230   - FILE* dico = NULL;
231   - FILE* txt = NULL;
232   - struct node tab_arbre[A];
233   - struct node * a;
234   -
235   - if(argc>2) {
236   - dico = fopen(argv[1], "r");
237   - txt = fopen(argv[2], "r");
238   - }
239   - else {
240   - dico = NULL;
241   - txt = NULL;
242   - }
243   - if ((dico == NULL) || (txt == NULL)) {
244   - wprintf(L"Erreur : il manque un ou plusieurs fichiers !\n");
245   - return 1;
246   - }
247   - initialisation_tab_arbre(tab_arbre);
248   - remplir_dico(dico, tab_arbre); //on suppose qu'il n'y a pas d'accents dans le dictionnaire
249   - correction_txt(txt, tab_arbre);
250   - correction_mot(tab_arbre);
251   -<<<<<<< HEAD
252   - for(wchar_t u = 'a'; u < A; u++) {
253   - a=&tab_arbre[i];
254   - desalocation(&a);
255   - i++;
256   - }
257   -
258   -
259   -=======
260   - printf("tab_arbre[0].lettre : %c\n", tab_arbre[0].lettre);
261   - printf("tab_arbre[0].listeFils : %p\n", tab_arbre[0].listeFils);
262   - printf("tab_arbre[0].listeFils->arbre : %p\n", tab_arbre[0].listeFils->arbre);
263   - printf("tab_arbre[0].listeFils->arbre->lettre : %c\n", tab_arbre[0].listeFils->arbre->lettre);
264   - printf("tab_arbre[0].listeFils->arbre->listeFils->arbre->lettre : %c\n", tab_arbre[0].listeFils->arbre->listeFils->arbre->lettre);
265   - printf("tab_arbre[0].listeFils->arbre->listeFils->arbre->listeFils->arbre->lettre : %c\n", tab_arbre[0].listeFils->arbre->listeFils->arbre->listeFils->arbre->lettre);
266   - printf("tab_arbre[0].listeFils->arbreSuivant->arbre->lettre : %c\n", tab_arbre[0].listeFils->arbreSuivant->arbre->lettre);
267   ->>>>>>> a8b3b5881e89dd7ae93a7b952fda31f1b524325b
268   - return 0;
269   -}