From d3bfe2d1ee65f681ee04cfce0f5a3cdaae582f29 Mon Sep 17 00:00:00 2001 From: Pixel Date: Wed, 2 May 2001 02:57:44 +0000 Subject: Bla --- doc/manuel.tex | 160 ++++++++++++++++++++------------------------------------- 1 file changed, 55 insertions(+), 105 deletions(-) (limited to 'doc/manuel.tex') diff --git a/doc/manuel.tex b/doc/manuel.tex index fcdc3af..d1522f0 100644 --- a/doc/manuel.tex +++ b/doc/manuel.tex @@ -1,124 +1,74 @@ \chapter{Manuel d'utilisation} \paragraph{} -Ce projet génère deux binaire. Le premier appelé testTas n'est qu'une petite application nous permettant d'utiliser l'API -C++ générée par notre classe de file de priorités. Voici un exemple d'exécution: +Lorsque le programme principal se lance, nous obtenons un invite simple: \begin{verbatim} -Priority list type: 0 - Binary Heap -Choice: Please select an action -a - Add a key into the priority list -c - Change priority list type -d - Delete a Key from the priority list -e - Extract Min onto the priority list -l - Lower Key onto a key of the priority list -p - Print the current priority list on the screen -r - Remove the whole priority list -t - Test the priority list algorithms -q - Quit -\end{verbatim} +$ ./Polynom +Polynomia v1.0 -A partir de cet instant, le programme nous propose un menu nous permettant d'effectuer plusieurs actions sur le tas. La -fonction 'a' permet d'ajouter une clef dans le tas en cours. Comme il est impossible d'effectuer une recherche sur un tas -pour y retrouver le pointeur d'un élément, le programme nous propose de sauvegarder le pointeur résultat dans un tableau: -\begin{verbatim} -Choice: Please select a slot to save the cell -0 - Empty slot -1 - Empty slot -2 - Empty slot -3 - Empty slot -4 - Empty slot -5 - Empty slot -6 - Empty slot -7 - Empty slot -8 - Empty slot -9 - Empty slot -n - Don't store -c - Cancel -\end{verbatim} +Performing initialisation... -Ce tableau apparaitra régulièrement dans toutes les fonctions du menu afin de choisir une cellule sur laquelle agir. Toutes -les fonctions du menu parlent d'elles mêmes. La fonction 't' va lancer une batterie de tests sur les algorithmes de la -file de priorité sélectionnée. -\paragraph{} -Le deuxième binaire généré est 'Huffman'. Il sert à utiliser l'algorithme d'huffman implémenté. Voici sa ligne d'aide: -\begin{verbatim} -$ ./Huffman -h -Huffman [{-f|-i} file] {type} -Huffman -h -This will encode the input file with the Huffman code -using the priority list defined by type. -Type is a number taken from this list: - 0 : Binary Heap (default) - 1 : Binomial Heap - 2 : Fibonacci Heap - 3 : Sorted chained list --f file means that you specify a dictionnary file which is - structured as described into the README file. --i file means that you specify a file to encode. It will - built a quiet dumb dictionnary. -By default, a dictionnary will be built from stdin. --h prints this help and exit. +Starting interface... + +> \end{verbatim} -La structure d'un dictionnaire est la suivante: +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} -Mot1 : Fréquence1 -Mot2 : Fréquence2 -... +> 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} -Chaque mot est une chaîne de caractères servant à identifier la fréquence associée. Voici un exemple complet de dictionnaire -et d'utilisation du programme avec ce dictionnaire: +Comme à la manière MAPLE, il est possible d'évaluer des polynomes en cours de route. Par exemple: \begin{verbatim} -Pixel@the-babel-tower:~/Projets_LI/Semestre1/Projet-Algo/src$ cat dict.sample -MOT1 : 2000 -MOT2 : 1234 -MOT3 : 15987 -MOT4 : 1203 -MOT5 : 192837 -MOT6 : 12987 -Pixel@the-babel-tower:~/Projets_LI/Semestre1/Projet-Algo/src$ ./Huffman -f dict.sample -MOT3 (15987) = 00 -MOT1 (2000) = 0100 -MOT4 (1203) = 01010 -MOT2 (1234) = 01011 -MOT6 (12987) = 011 -MOT5 (192837) = 1 -Bitstream length : 283957 bits (= 35495 bytes) -Real size input : 7239936 bits (= 904992 bytes) -Size squeezed by : 96.0779 percents -Dictionnary size : 336 bits (= 42 bytes) -Total bitstream length : 284293 bits (= 35537 bytes) -Real gain (4 bytes header) : 96.0728 percents +> P = A + 2*x - 3*B; + + . x^4 - x^3 + 18x^2 - 2x - 6 \end{verbatim} -Il est indiqué que le programme est capable de générer un dictionnaire à partir d'un fichier. Il s'agit simplement de compter -les caractères provenant de l'entrée et d'en générer un dictionnaire. Exemple: +Enfin, il y a des appels de fonctions prédéfinis, dont l'appel à la fonction d'évaluation d'un polynôme: \begin{verbatim} -$ cat dict.sample | Huffman -\32 (12) = 00 -6 (1) = 01000 -4 (2) = 01001 -3 (4) = 0101 -0 (4) = 0110 -5 (2) = 01110 -7 (3) = 01111 -1 (6) = 1000 -M (6) = 1001 -: (6) = 1010 -\10 (6) = 1011 -O (6) = 1100 -8 (3) = 11010 -9 (3) = 11011 -2 (6) = 1110 -T (6) = 1111 -Bitstream length : 294 bits (= 37 bytes) -Real size input : 608 bits (= 76 bytes) -Size squeezed by : 51.6447 percents -Dictionnary size : 512 bits (= 64 bytes) -Total bitstream length : 806 bits (= 101 bytes) -Real gain (4 bytes header) : -38.1579 percents +> 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 + + +> +\end{verbatim} \ No newline at end of file -- cgit v1.2.3