Changes between Version 62 and Version 63 of CaoCourseTme2


Ignore:
Timestamp:
Feb 18, 2007, 6:31:31 PM (18 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • CaoCourseTme2

    v62 v63  
    6969recherche est en O(1), c'est à dire indépendant du nombre d'éléments, même pour
    7070un million d'éléments.
    71  
    72 Les deux principales actions sont l'ajout d'un élément (add) et la recherche d'un élément (get).
    73   * La fonction get() prend en paramètre la clé de l'élément recherché. Si l'élément existe, elle rend la donnée associée.
    74   * La fonction add() prend en paramètre le couple (clé, data). Si l'élément existe, elle change sa donnée, sinon elle créé l'élément.
    7571
    7672= Etape 1 : Questions sur le code fourni =
     
    10096 *  A quoi sert le fichier "main.h" ?
    10197 *  Expliquez le fonctionnement de la fonction getopt ({{{man 3 getopt}}})[[BR]]
    102     Ajoutez dans la fonction getarg() le traitement de l'option -h, qui affiche un texte rappelant le format de la ligne de commande.[[BR]]
    103     Vous ajouterez plus tard l'option -s qui demande de fournir des statistiques concernant l'utilisation de la tables de hachage.
     98    Vous ajouterez plus tard dans la fonction getarg() l'option -s qui demande de fournir des statistiques concernant l'utilisation de la tables de hachage.
    10499 *  A quoi sert l'appel de return a la fin de la fonction main() ?
    105100 *  Pourquoi y-a-t-il exit() à la fin de la fonction usage() ?
     
    107102 *  Quelle precaution doit on prendre lors de leur utilisation ?
    108103 *  Ou sont definies les fonctions standard de la bibliothèque C ?
    109  *  Qu'est-ce qu'un filtre unix ?
    110  *  Que faut-il faire pour transformer ce programme en filtre ?
    111 
    112 et sur le fichier de prototype associé attachment:main.h
     104 *  Qu'est-ce qu'un filtre unix ? Que faut-il faire pour transformer ce programme en filtre ?
     105
     106Questions sur le fichier de prototype associé attachment:main.h
    113107
    114108 *  A quoi servent les lignes les 2 premières lignes et la dernière ?
     
    122116 *  Dans la définition des prototypes de fonctions, le nom des paramètre est-il nécessaire ? si non pourquoi les mettre ?
    123117 
    124 et sur le fichier attachment:hte.c
    125 
    126  *  Faîte un dessin représentatif de la valeur de la variable locale {{{root}}} de la fonction {{{hte_create}}} si {{{nb_list==10}}} juste avant l'appel return.
     118questions sur le fichier attachment:hte.c
     119
     120 *  Quel est l'encombrement mémoire (en nombre d'octets) de la structure {{{root}}} créée par la fonction {{{hte_create}}} , quand{{{nb_list==10}}} , juste avant l'appel return.
    127121 *  La fonction {{{hte_hash}}} peut-elle provoquer une erreur de segmentation ? Comment y remedier proprement ?
    128122 *  Dans la fonction {{{hte_create}}} comment fait-on pour tester le retour de {{{malloc}}} ? à quoi celà sert-il ?
     
    139133== e) La fonction de comptage des mots ==
    140134
    141 Le fichier attachment:count.c contient le code de la fonction count(), qui compte le nombre d'occurences des différents mots présents dans le fichier texte analysé. Il contient également les deux fonctions auxiliaires token() et result_count().
    142 
    143  *  Le mot clé '''static''' est utilisé de trois manières différentes dans le fichier ''count.c''. Quel est son effet ?
    144  *  Aurait on pu écrire {{{static char * buffer = malloc(1024)}}} ou encore {{{char * buffer = malloc(1024);}}}. Pourquoi ?
    145  *  La fonction token() est censée rendre un nouveau "token" (mot) du fichier texte analysé {{{infile}}} à chaque appel. Que pensez-vous de son comportement, est-il satisfaisant d'une manière générale?.
     135Le fichier attachment:count.c contient le code de la fonction count(), qui compte le nombre d'occurences des différents mots présents dans le fichier texte analysé. Il contient également la fonction auxiliaire token() qui lit le fichier texte mot par mot,
     136et la fonction result_count() qui affiche les résultats.
     137
     138 *  Le mot clé '''static''' est utilisé de trois manières différentes dans le fichier ''count.c''. Précisez sa signification pour chacune des trois utilisations.
     139 *  Dans la fonction token(), pourquoi ne peut-on pas utiliser l'appel système malloc() pour allouer la mémoire correspondant au tableau ''buffer'', en écrivant par exemple {{{char * buffer = malloc(1024);}}} ?
     140 *  La fonction token() doit renvoyer un nouveau "token" (mot) du fichier texte analysé, ainsi que le numéro de ligne, chaque fois qu'elle est appelée. Elle utilise les fonctions fgets() et  strtok(). Que font ces deux fonctions ?
    146141 *  Pourquoi as-ton mis une étoile devant l'argument ''numero'' de la fonction token() ?
    147142 *  Pourquoi la fonction result_count utilise-t-elle des fonctions d'accès spécifiques pour effectuer le parcours des éléments présents dans la table de hachage ? Dans quel ordre vont être affichés les élément de la table ?