Changes between Version 42 and Version 43 of CaoCourseTme2
- Timestamp:
- Feb 18, 2007, 12:24:06 PM (18 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
CaoCourseTme2
v42 v43 1 1 {{{ 2 2 #!html 3 <h1> TME2 : Langage C: étude de cas sur lestables de hachage</h1>3 <h1> TME2 : Langage C: tables de hachage</h1> 4 4 }}} 5 5 [[PageOutline]] … … 48 48 ensembles contenant un nombre quelconque d'éléments, où chaque élément est un couple 49 49 de la forme (clé, data). Le plus souvent la clé est une chaîne de caractères. 50 La donnée peut être un nombre ou une structure de données plus ou moins complexe , parfois la donnée est absente.50 La donnée peut être un nombre ou une structure de données plus ou moins complexe. 51 51 Le principal objectif d'une table de hachage est d'accélérer la recherche d'un élément 52 52 par sa clé. 53 53 54 Pour représenter un ensemble de couple (clé, data) la méthode la plus simple54 Pour représenter un ensemble de couples (clé, data) la méthode la plus simple 55 55 consiste à les stocker dans une liste chainée. 56 La recherche d'un élément se fait alors par un parcours de la liste, donc de57 l'ensemble des éléments, cen'est pas très efficace si le nombre d'éléments est grand.56 La recherche d'un élément se fait alors par un parcours de la liste, 57 ce qui n'est pas très efficace si le nombre d'éléments est grand. 58 58 59 59 Pour accélérer la recherche, on créé un tableau de listes chainées. Le nombre de … … 97 97 * {{{$<}}} : désigne le premier fichier de la liste des fichiers source d'une règle. 98 98 * {{{$^}}} : désigne la liste des fichiers source d'une règle. 99 1. Donnez une raison à la definition des commandes et paramètres au début du Makefile99 1. Pourquoi est-il préférable de regrouper la definition des commandes et paramètres au début du Makefile? 100 100 1. A quoi servent les options -p, -g, -wall, -werror, -ansi ? (man gcc) 101 101 1. Comment demander l'optimisation maximale du compilateur ? (man gcc) … … 155 155 * A quoi sert la fonction {{{perror}}} ? 156 156 157 == Les autres services possibles ==158 159 Nous vous proposons deux autres services possibles des tables de hachage dans les fichiers, attachment:dejavu.c et attachment:namealloc.c.160 161 Le premier, dejavu, permet de répondre à la question "ai-je déjà vu cette chaine de caractères".162 Le second, namealloc, permet de garantir que si deux chaines de caractères sont identiques alors elles seront rangées à la même adresse.163 164 Vous n'utiliserez pas ses services au cours de ce TME.165 Cependant, ils vous seront utiles lors des TME futurs.166 Vous pourrez faire alors une édition de liens avec la bibliothèque libhte.a.167 Pour aujourd'hui, contentez-vous de jeter un coup d'oeil par simple curiosité.168 169 157 == L'utilisation du dictionnaire pour compter des occurences de mots == 170 158 … … 177 165 * La fonction result_count utilise des fonctions d'accès spécifiques pour effectuer le parcours des items présents dans la table.[[BR]] 178 166 Pourquoi ne peut on pas faire un parcours directement? Dans quel ordre vont être affichés les items ? 167 == Les autres services possibles == 168 169 Vous trouverez deux autres services possibles utilisant des tables de hachage 170 dans les fichiers, attachment:dejavu.c et attachment:namealloc.c. 171 Ces services ne sont pas utilisés dans ce TME2, mais ils vous seront utiles lors des TME futurs. 172 Vous pourrez faire alors une édition de liens avec la bibliothèque libhte.a. 173 174 La fonction dejavu() permet de répondre à la question "ai-je déjà vu cette chaine de caractères". 175 La fonction namealloc() est très utilisée dans la chaîne de CAO Alliance, 176 et permet de garantir que si deux chaines de caractères sont identiques 177 alors elles seront rangées à la même adresse. 179 178 180 179 = Etape 2 : Evolution du programme =