summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbiouman <biouman>2001-05-02 22:08:03 +0000
committerbiouman <biouman>2001-05-02 22:08:03 +0000
commit8626b278cdccd95e628f14c027ae8a1c47133c48 (patch)
tree7517ab09f9bd73ed2b156e996744884a3b93b7a6
parent3d0f3c31ce12699912038783b8e6ce61c7fd85c6 (diff)
*** empty log message ***
-rw-r--r--doc/description.tex18
-rw-r--r--doc/exemples.tex81
-rw-r--r--doc/manuel.tex115
-rw-r--r--doc/polynom.tex4
4 files changed, 130 insertions, 88 deletions
diff --git a/doc/description.tex b/doc/description.tex
index e86c698..78556f0 100644
--- a/doc/description.tex
+++ b/doc/description.tex
@@ -1,19 +1,3 @@
\chapter{Description}
\paragraph{}
-Nous allons décrire dans cette première partie tous ce que nous avons effectué comme travail de réflexion afin de
-programme ce projet. Il y a beaucoup de détails relatifs à l'implémentation dont nous ne parlerons pas, comme les structures
-sur les listes chaînées, ou l'initialisation du terminal pour gérer le menu du programme de test. En revanche, nous appuyerons
-sur les détails d'implémentation purement algorithmiques qui nous ont posé problème.
-\paragraph{}
-En ce qui concerne le langage de programmation, nous avons choisi le C++, car c'est le langage qui nous semblait le plus
-adapté pour créer les structures de données nécessaire à la programmation de ce projet.
-\paragraph{}
-Nous avons implémenté les algorithmes de files de priorités suivants:
-\begin{itemize}
-\item Tas Binaire
-\item Tas Binomial
-\item Tas de Fibonacci
-\item Liste chaînée triée
-\end{itemize}
-\paragraph{}
-L'algorithme utilisant les files de priorité implémenté est l'algorithme de compression de dictionnaire Huffman.
+
diff --git a/doc/exemples.tex b/doc/exemples.tex
new file mode 100644
index 0000000..a58cc2b
--- /dev/null
+++ b/doc/exemples.tex
@@ -0,0 +1,81 @@
+\chapter{Exemples d'utilisation}
+\paragraph{}
+Lorsque le programme principal se lance, nous obtenons un invite simple:
+\begin{verbatim}
+$ ./Polynom
+Polynomia v1.0
+
+
+Performing initialisation...
+
+
+Starting interface...
+
+>
+\end{verbatim}
+
+La flexibilité de l'interface est extrème, et nous permet, à la manière MAPLE, de taper sous une
+forme naturelle nos polynomes. Voici un exemple d'utilisation "simple":
+
+\begin{verbatim}
+> A = x^4 + 2*x^3 - x + 6;
+
+ . x^4 + 2x^3 - x + 6
+
+> B = x^3 - 6*x^2 + x + 4;
+
+ . x^3 - 6x^2 + x + 4
+
+> A + B;
+
+ . x^4 + 3x^3 - 6x^2 + 10
+
+> A - B;
+
+ . x^4 + x^3 + 6x^2 - 2x + 2
+
+> A / B;
+
+ . x + 8
+
+> A % B;
+
+ . 47x^2 - 13x - 26
+
+> A(2);
+
+ . 36
+\end{verbatim}
+
+Comme à la manière MAPLE, il est possible d'évaluer des polynomes en cours de route. Par exemple:
+
+\begin{verbatim}
+> P = A + 2*x - 3*B;
+
+ . x^4 - x^3 + 18x^2 - 2x - 6
+\end{verbatim}
+
+Enfin, il y a des appels de fonctions prédéfinis, dont l'appel à la fonction d'évaluation d'un polynôme:
+
+\begin{verbatim}
+> P(3);
+
+ . 204
+\end{verbatim}
+
+Le parseur de ligne étant totalement flexible, il est possible de mélanger toutes les fonctionnalités ensembles:
+\begin{verbatim}
+> (2*P + B)(3);
+
+ . 388
+
+
+> (R = 2*P^2 - 2*x)(36) * x^2 - 10;
+
+ . 1389891136x^2 - 10
+
+> R;
+
+ . 2x^8 - 4x^7 + 74x^6 - 80x^5 + 632x^4 - 120x^3 - 424x^2 + 46x + 72
+
+\end{verbatim}
diff --git a/doc/manuel.tex b/doc/manuel.tex
index 9a0d765..b09ea9f 100644
--- a/doc/manuel.tex
+++ b/doc/manuel.tex
@@ -1,81 +1,56 @@
-\chapter{Manuel d'utilisation}
+\chapter{Manuel}
+\section{Procédure de compilation}
\paragraph{}
-Lorsque le programme principal se lance, nous obtenons un invite simple:
+L'arborescence de notre projet respecte le standard d'arborescences des projets GNU,
+en outre nous avons utilisé les logiciels Autoconf et Automake pour gérer la compilation.
+La procédure standard pour compiler ce projet est alors la suivante : \\
\begin{verbatim}
-$ ./Polynom
-Polynomia v1.0
-
-
-Performing initialisation...
-
-
-Starting interface...
-
->
-\end{verbatim}
-
-La flexibilité de l'interface est extrème, et nous permet, à la manière MAPLE, de taper sous une
-forme naturelle nos polynomes. Voici un exemple d'utilisation "simple":
-
-\begin{verbatim}
-> A = x^4 + 2*x^3 - x + 6;
-
- . x^4 + 2x^3 - x + 6
-
-> B = x^3 - 6*x^2 + x + 4;
-
- . x^3 - 6x^2 + x + 4
-
-> A + B;
-
- . x^4 + 3x^3 - 6x^2 + 10
-
-> A - B;
-
- . x^4 + x^3 + 6x^2 - 2x + 2
-
-> A / B;
-
- . x + 8
-
-> A % B;
-
- . 47x^2 - 13x - 26
-
-> A(2);
-
- . 36
+./configure && make all install
\end{verbatim}
+Mais étudions plus en détail chacune de ces deux étapes:
-Comme à la manière MAPLE, il est possible d'évaluer des polynomes en cours de route. Par exemple:
+\paragraph{configure}
+Ce script va générer autoatiquement tous les Makefiles en fonction des informations contenues
+dans les fichiers Makefile.am ainsi que des informations qu'il aura récupérées sur le système,
+notamment relatives au compilateur, à l'éditeur de liens, à la gestion de librairies dynamiques...
+On peut avoir l'ensemble de ses options en l'invoquant par la commande :
\begin{verbatim}
-> P = A + 2*x - 3*B;
-
- . x^4 - x^3 + 18x^2 - 2x - 6
+./configure --help
\end{verbatim}
-
-Enfin, il y a des appels de fonctions prédéfinis, dont l'appel à la fonction d'évaluation d'un polynôme:
-
+Si l'on veut par exemple compiler le programme avec un répertoire d'installation qui serait ~/usr/Polynom
+en activant l'affichage des messages de débogage, on lancera
\begin{verbatim}
-> P(3);
-
- . 204
+./configure --prefix=~/usr/Polynom --with-debug
\end{verbatim}
-Le parseur de ligne étant totalement flexible, il est possible de mélanger toutes les fonctionnalités ensembles:
+\paragraph{make}
+L'utilitaire bien connu qui permet de lancer les compilations, il va interpréter tout d'abord le Makefile
+principal à la racine du projet puis entrer dans chaque sous répertoire et interpréter récursivement
+tous les Makefiles qu'il va rencontrer. L'exécutable final se trouvera dans le répertoire src et se nomme
+\textit{Polynom}.
+La 'cible' all crée l'exécutable et la cible install l'installe avec ses librairies dans l'endroit
+précisé par --prefix dans la ligne de commande de configure. Il est à noter que l'emplacement par défaut
+se situe dans /usr/local, or ce dossier n'est typiquement accessible en écriture que par les administrateurs,
+c est pourquoi nous vous conseillons de préciser l'option --prefix lors de l'appel de configure.
+
+\section{Exécution du programme}
+Le programme Polynom peut prendre un argument sur la ligne de commande à savoir la chaine de caractères
+servant à décrire la variable muette dans les polynomes, par défaut celle-ci est initialisée à "x".
+On invoque alors le programe comme suit: % FIXME ligne de commande
\begin{verbatim}
-> (2*P + B)(3);
-
- . 388
-
-
-> (R = 2*P^2 - 2*x)(36) * x^2 - 10;
-
- . 1389891136x^2 - 10
-
-> R;
-
- . 2x^8 - 4x^7 + 74x^6 - 80x^5 + 632x^4 - 120x^3 - 424x^2 + 46x + 72
-
-\end{verbatim}
+./src/Polynom
+\end{verbatim}
+Le programme propose alors son propre interpréteur de commandes, bien entendu dévoué au calcul polynomial.
+Les opérateurs reconnus sont les opérateurs classiques sur les polynomes à savoir '+', '-', '*', '/', '\%', '^', '='.
+De plus nous avons implémenté quelques fonctions utiles, soit au calcul polynomial, soit à l'uilisation du
+programme lui même :
+\begin{itemize}
+\item les fonctions mathématiques deriv, derivn et int pour le calcul de la dérivée, de la dérivée $n^{ième}$ et de la primitive.
+\item les fonctions auxiliaires : printvars() pour l'affichage des variables, help() pour l'aide en ligne,
+setdisplay(n) pour le mode d'affichage des scalaires, reinit() pour la réinitialisation su calculateur et exit() pour quitter le programme.
+\end{itemize}
+On notera que l'évaluation fonctionne comme dans nombre d'interpréteurs en ce qui concerne la ligne de commande,
+il est nécessaire de terminer chaque ligne par un point-virgule.
+Ce programme possède enfin une variable "interne" ANS, mise-à-jour automatiquement à chaque évaluation, celle-ci contenant
+toujours le résultat de l'opération précédente.
diff --git a/doc/polynom.tex b/doc/polynom.tex
index c4d4157..45aa064 100644
--- a/doc/polynom.tex
+++ b/doc/polynom.tex
@@ -62,11 +62,13 @@
\part{Synthèse}
\input{manuel}
\clearemptydoublepage
+\input{exemples}
+\clearemptydoublepage
\input{outils}
\clearemptydoublepage
\chapter{Code source}
-\lstset{language=C++,basicstyle=\scriptsize,stringspaces=false}
+\lstset{language=C,basicstyle=\scriptsize,stringspaces=false}
\input{source}
\clearemptydoublepage