summaryrefslogtreecommitdiff
path: root/doc/manuel.tex
diff options
context:
space:
mode:
Diffstat (limited to 'doc/manuel.tex')
-rw-r--r--doc/manuel.tex124
1 files changed, 124 insertions, 0 deletions
diff --git a/doc/manuel.tex b/doc/manuel.tex
new file mode 100644
index 0000000..fcdc3af
--- /dev/null
+++ b/doc/manuel.tex
@@ -0,0 +1,124 @@
+\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:
+\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}
+
+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}
+
+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.
+\end{verbatim}
+
+La structure d'un dictionnaire est la suivante:
+\begin{verbatim}
+Mot1 : Fréquence1
+Mot2 : Fréquence2
+...
+\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:
+
+\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
+\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:
+
+\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
+\end{verbatim}