README.txt

Programmation Avancée - Salingue Valériane - Vollerin Thibault
Réalisation d'un correcteur orthographique

Ce programme réalise un dictionnaire à partir d'un fichier de référence passé en premier paramètre et détecte les fautes dans un texte passé en deuxième paramètre. Il faut corriger un texte qui est dans la même langue que le dictionnaire choisi. On considère que le mot "etude" est faux par rapport au mot "étude". Le fichier de référence doit être un fichier texte composé d'une suite de mots séparés par des retours à la ligne.

Fonctionnement du projet:

La première étape est de constuire le dictionnaire. Pour cela, il ajoute une à une les lettres des mots du fichier de référence pour l'ajouter à la structure.
Pour ajouter, soit on utilise init_dico car c'est la première lettre du premier mot du dictionnaire. Ou on utilise ajout_dico_tete si c'est la première lettre à cet indice ( par exemple il n'y a pas encore de mots avec une 5ème lettre). Sinon, on utilise ajout_dico pour ajouter une lettre à un indice (2eme mot avec 3 lettres avec les 2 premières en commun). Par exemple, pour le premier mot 'voir', on utilise init_dico pour 'v' et pour les 3 autres lettres on utilise ajout_dico_tete. Ensuite, pour voile, on utilise ajout_dico pour 'l' et ajout_dico_tete pour 'e' ( 'v', 'o', 'i' déjà présents dans l'arbre, 'l' étant la deuxième lettre en 4ème position et 'e' 1ère lettre après le début du mot 'voil').

La deuxième étape est la comparaison entre le dictionnaire enregistré et le texte passé en deuxième paramètre. Le programme commence donc par recupérer les lettres consituants les différents mots du texte à corriger dans un tableau. Le programme va analyser les mots un par un, et lettre par lettre à l'aide de la fonction lecture_mot. Lorsque le tableau est constitué, une deuxième fonction intervient (compare) qui va quant à elle analyser chaque rang du tableau(ce qui correspond aux lettres consituant un mot, rangés dans l'ordre) et comparer avec l'arbre créé lors de la construction du dictionnaire. Cette fonction va donc analyser rang par rang le tableau créé précédement. Il va comparer la lettre au rang 0 aux premières lettres du dictionnaire. Si le caractère correspond à un caractère dans l'arbre, l'indice du tableau va s'incrémenter de 1 et va ensuite comparer le caractère aux caractères présents à l'étage inférieur dans l'arbre (à l'adresse fils de la cellule où la lettre a été trouvée). S'il ne trouve pas, on passe à la lettre suivante et se situant sur le même étage jusqu'à arriver à la fin de la liste représentée par la valeur NULL. Si à la fin de la liste, le caractère correspondant n'est pas trouvé, le programme annonce une faute dans le mot, sort de la fonction compare et la fonction lecture_mot cherche le mot suivant.

Ce projet fonctionne avec les librairies suivantes :
stdio.h
stdlib.h
stdbool.h
string.h

Pour lancer le programme, il suffit de lancer le Makefile (make) et ensuite d'éxécuter la commande suivante :
./main