\chapter{Description} \section{Introduction} Etant 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 main() de taille ridicule. Enfin cette programmation modulaire permet d'organiser facilement son code source et de pouvoir partager aisément le travail entre les différents étudiants. \section{Modules de calcul} \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 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 chaine 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 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 dépendant notamment fonctions.c \section{module d interprétation des lignes de commande} parser.c pile.c numbers.c \section{Modules de saisie et d'affichage} interface.c terminal.c \section{Module de gestion des erreurs} exceptions.c