Changes between Version 42 and Version 43 of CaoCourseTme2


Ignore:
Timestamp:
Feb 18, 2007, 12:24:06 PM (18 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • CaoCourseTme2

    v42 v43  
    11{{{
    22#!html
    3 <h1> TME2 : Langage C: étude de cas sur les tables de hachage</h1>
     3<h1> TME2 : Langage C: tables de hachage</h1>
    44}}}
    55[[PageOutline]]
     
    4848ensembles contenant un nombre quelconque d'éléments, où chaque élément est un couple
    4949de 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.
     50La donnée peut être un nombre ou une structure de données plus ou moins complexe.
    5151Le principal objectif d'une table de hachage est d'accélérer la recherche d'un élément
    5252par sa clé.
    5353
    54 Pour représenter un ensemble de couple (clé, data) la méthode la plus simple
     54Pour représenter un ensemble de couples (clé, data) la méthode la plus simple
    5555consiste à les stocker dans une liste chainée.
    56 La recherche d'un élément se fait alors par un parcours de la liste, donc de
    57 l'ensemble des éléments, ce n'est pas très efficace si le nombre d'éléments est grand.
     56La recherche d'un élément se fait alors par un parcours de la liste,
     57ce qui n'est pas très efficace si le nombre d'éléments est grand.
    5858
    5959Pour accélérer la recherche, on créé un tableau de listes chainées. Le nombre de
     
    9797    * {{{$<}}} : désigne le premier fichier de la liste des fichiers source d'une règle.
    9898    * {{{$^}}} : 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 Makefile
     99 1. Pourquoi est-il préférable de regrouper la definition des commandes et paramètres au début du Makefile?
    100100 1. A quoi servent les options -p, -g, -wall, -werror, -ansi ? (man gcc)
    101101 1. Comment demander l'optimisation maximale du compilateur ? (man gcc)
     
    155155 *  A quoi sert la fonction {{{perror}}} ?
    156156
    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 
    169157== L'utilisation du dictionnaire pour compter des occurences de mots ==
    170158
     
    177165 *  La fonction result_count utilise des fonctions d'accès spécifiques pour effectuer le parcours des items présents dans la table.[[BR]]
    178166    Pourquoi ne peut on pas faire un parcours directement? Dans quel ordre vont être affichés les items ?
     167== Les autres services possibles ==
     168
     169Vous trouverez deux autres services possibles utilisant des tables de hachage
     170dans les fichiers, attachment:dejavu.c et attachment:namealloc.c.
     171Ces services ne sont pas utilisés dans ce TME2, mais ils vous seront utiles lors des TME futurs.
     172Vous pourrez faire alors une édition de liens avec la bibliothèque libhte.a.
     173
     174La fonction dejavu() permet de répondre à la question "ai-je déjà vu cette chaine de caractères".
     175La fonction namealloc() est très utilisée dans la chaîne de CAO Alliance,
     176et permet de garantir que si deux chaines de caractères sont identiques
     177alors elles seront rangées à la même adresse.
    179178
    180179= Etape 2 : Evolution du programme =