From 9601a375db1fd991e96115f7e643a9a5d41413c7 Mon Sep 17 00:00:00 2001 From: Pixel Date: Thu, 3 May 2001 01:12:31 +0000 Subject: Plop --- doc/description.tex | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'doc/description.tex') diff --git a/doc/description.tex b/doc/description.tex index 7233007..eafeffa 100644 --- a/doc/description.tex +++ b/doc/description.tex @@ -1,6 +1,6 @@ \chapter{Description} \section{Introduction} -Etant donné la complexité relative de ce projet, nous avons choisi d'utiliser au maximum la compilation séparée. +Étant donné la complexité relative de ce projet, nous avons choisi d'utiliser au maximum la compilation séparée. De plus, nous voulions réaliser une interface en mode texte, mais que le projet soit facilement extensible à des développements ultérieurs comme par exemple la réalisation d'une interface graphique pour X-Window, c'est pourquoi nous avons réuni l'essentiel des fonctions dans une librairie et que nous avons un fichier principal contenant la fonction @@ -11,27 +11,27 @@ partager ais \subsection{scalaires.c} Ce module réalise des opérations sur les scalaires. Comme prévu dans l'énoncé du sujet, les scalaires que nous avons considéré sont des rationnels supportant toutes les opérations classiques, auxquelles nous avons ajouté différents "constructeurs" -comme le constructeur à partir de deux entiers ou le constructeur à partir d'un double. Etant donné que les constructeurs simplifient +comme le constructeur à partir de deux entiers ou le constructeur à partir d'un double. Étant donné que les constructeurs simplifient les fractions, toutes les fractions stockées en mémoire le sont toujours sous forme réduite. On dispose enfin d'une fonction utilisée dans les affichages qui convertit un rationnel en une chaîne de caractères formatée et dépendant de certains paramètres comme la variable globale display. \subsection{polynom.c} -Ce module nous permet d'effectuer toutes les opérations basiques sur les polynomes. On dispose d'un constructeur, d'un constructeur -par recopie et d'un destructeur. La structure de données utilisée est une liste simplement chaînée de monomes triés par degrés +Ce module nous permet d'effectuer toutes les opérations basiques sur les polynômes. On dispose d'un constructeur, d'un constructeur +par recopie et d'un destructeur. La structure de données utilisée est une liste simplement chaînée de monômes triés par degrés décroissants ( il est à noter que le tri est effectué par construction, on ne fait jamais appel explicitement à une fonction -de type tri de monome ). Cet ordre de tri est très pratique pour des algorithmes comme la division ou l'addition. -Comme dans le module précédent, nous y avons ajouté une routine de conversion d'un polynome en une chaine de caractères formatée +de type tri de monôme ). Cet ordre de tri est très pratique pour des algorithmes comme la division ou l'addition. +Comme dans le module précédent, nous y avons ajouté une routine de conversion d'un polynôme en une chaîne de caractères formatée dépendant notamment de la variable globale smartprint. Toutes les opérations sur les polynomes sont appelés dans pile.c où l'on gère la pile d'opérandes, notamment par la fonction act\_pile. \subsection{fonctions.c} -Dans ce module nous avons regroupé toutes les fonctions "avancées" sur les polynomes, notamment la dérivation et l'intégration, +Dans ce module nous avons regroupé toutes les fonctions "avancées" sur les polynômes, notamment la dérivation et l'intégration, mais aussi les fonctions nécessaires à la gestion des variables ou de l'environnement. Tous les appels à ces fonctions se font à partir de pile.c dans la fonction act\_pile, case OP\_FUNC\_CALL. \section{Module d'interprétation des lignes de commande} \subsection{parser.c} -Ce module est la clé de voute de notre ensemble. Il est décrit plus en détail dans la section suivante. Il s'occupe de lire +Ce module est la clé de voûte de notre ensemble. Il est décrit plus en détail dans la section suivante. Il s'occupe de lire une chaîne qui lui a été passé par l'interface, et va la décomposer en une série d'appel vers une pile, codée dans un autre module. Il va simplement dégager les opérateurs et les opérandes pour les fournir à la pile sous la forme d'une pile polonaise inversée. \subsection{pile.c} @@ -43,11 +43,11 @@ d'analyser l'entr \item Est-ce un flottant? \item Est-ce une variable déjà enregistrée? \end{itemize} -En cas d'échec de ces trois critères, elle considèrera qu'il s'agit d'un symbole. La fonction act\_pile() va simplement -dépiler suffisemment d'opérande de la pile, effectuer l'opération demandée, et réinsérer le résultat sur la pile. +En cas d'échec de ces trois critères, elle considérera qu'il s'agit d'un symbole. La fonction act\_pile() va simplement +dépiler suffisamment d'opérande de la pile, effectuer l'opération demandée, et réinsérer le résultat sur la pile. \subsection{numbers.c} Ce tout petit module contient des fonctions qui peuvent convertir n'importe quelle chaîne contenant un nombre en son équivalent. -char\_to\_number() est capable de convertir un entier écrit en décimal, octal ou héxadécimal. char\_to\_rat() se charge de lire +char\_to\_number() est capable de convertir un entier écrit en décimal, octal ou hexadécimal. char\_to\_rat() se charge de lire un nombre flottant et de le stocker directement dans notre structure 'rationnel'. -- cgit v1.2.3