Changes between Version 62 and Version 63 of CaoCourseTme2
- Timestamp:
- Feb 18, 2007, 6:31:31 PM (18 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
CaoCourseTme2
v62 v63 69 69 recherche est en O(1), c'est à dire indépendant du nombre d'éléments, même pour 70 70 un 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.75 71 76 72 = Etape 1 : Questions sur le code fourni = … … 100 96 * A quoi sert le fichier "main.h" ? 101 97 * 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. 104 99 * A quoi sert l'appel de return a la fin de la fonction main() ? 105 100 * Pourquoi y-a-t-il exit() à la fin de la fonction usage() ? … … 107 102 * Quelle precaution doit on prendre lors de leur utilisation ? 108 103 * 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 106 Questions sur le fichier de prototype associé attachment:main.h 113 107 114 108 * A quoi servent les lignes les 2 premières lignes et la dernière ? … … 122 116 * Dans la définition des prototypes de fonctions, le nom des paramètre est-il nécessaire ? si non pourquoi les mettre ? 123 117 124 etsur le fichier attachment:hte.c125 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.118 questions 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. 127 121 * La fonction {{{hte_hash}}} peut-elle provoquer une erreur de segmentation ? Comment y remedier proprement ? 128 122 * Dans la fonction {{{hte_create}}} comment fait-on pour tester le retour de {{{malloc}}} ? à quoi celà sert-il ? … … 139 133 == e) La fonction de comptage des mots == 140 134 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?. 135 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 la fonction auxiliaire token() qui lit le fichier texte mot par mot, 136 et 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 ? 146 141 * Pourquoi as-ton mis une étoile devant l'argument ''numero'' de la fonction token() ? 147 142 * 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 ?