Changes between Version 19 and Version 20 of CaoCourseTme2
- Timestamp:
- Feb 16, 2007, 7:35:28 PM (18 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
CaoCourseTme2
v19 v20 17 17 L'objectif de ce TME est double : 18 18 19 1. Il doit d'une part vous permettre de complêtez l'auto-évaluation de vos connaissances des outils 20 de developpement C que vous avez commencée dans le précédent TME, en vous posant des questions 21 auxquelles vous devriez savoir répondre. Si ce n'est pas le cas, vous '''devez''' trouver les réponses dans 22 les documentations (man, web), ou auprès de vos camarades. 23 2. Il introduit de nouveaux outils permettant l'indentation automatique d'un programme source (outil ''indent''), 24 la constructtion d'une bibliothèque C (outil ''ar''), ou l'écriture d'une documentation (outil ''man''). 19 1. Il doit d'une part vous permettre de complêtez l'auto-évaluation de vos connaissances des outils de developpement C que vous avez commencée dans le précédent TME, en vous posant des questions auxquelles vous devriez savoir répondre. Si ce n'est pas le cas, vous '''devez''' trouver les réponses dans les documentations (man, web), ou auprès de vos camarades. 20 1. Il introduit de nouveaux outils permettant l'indentation automatique d'un programme source (outil ''indent''), la constructtion d'une bibliothèque C (outil ''ar''), ou l'écriture d'une documentation (outil ''man''). 25 21 26 22 Il vous offre également un modèle de programme, avec Makefile et man pour vos futurs développements. … … 30 26 * Vous devez commencer par copier sur votre compte le répertoire : 31 27 {{{cp -rp /users/enseig/encadr/cao/tme2 ~/cao/tme2}}} 32 * Ce répertoire contient un programme utilisant une table de hachage. 33 * Le travail consiste: 34 1. à répondre aux questions portant sur le code fourni. 35 2. à programmer des évolutions du programme: 36 * L'évaluation sera individuelle et orale au début du tme3. 37 * Commencez par lire le programme en entier et faîtes le tourner pour comprendre son fonctionnement. 38 * Répondez ensuite aux questions et faîtes les évolutions demandées. 39 40 = Evolution du programme = 28 29 Ce répertoire contient un programme utilisant une table de hachage. 30 Le travail demandé comporte deux phases. Dans un premier temps vous devez analyser le code fourni, 31 et '''rédiger''' des réponses aux questions portant sur ce code. Dans un deuxième temps, vous devrez modifier 32 ce programme, pour introduire de nouvelles fonctionnalités. 41 33 42 34 Le programme fourni compte le nombre de mots d'un fichier texte et indique le nombre total 43 de mots dans le fichier et le nombre de mots différents. 44 Vous devez modifier ce programme de façonà ce qu'il indique, pour chaque mot:35 de mots dans le fichier et le nombre de mots différents. Vous devrez modifier ce programme de façon 36 à ce qu'il indique, pour chaque mot: 45 37 * le nombre d'occurences 46 38 * les numéros de toutes les lignes où il est présent … … 50 42 * moyenne du nombre de comparaisons nécessaire lors de la recherche d'un mot 51 43 52 = Description des sources fournies =44 = Description des sources fournies et principe des tables de hachage = 53 45 54 46 * {{{Makefile .......................}}} description du processus de construction de l'exécutable. … … 58 50 * {{{dico.c, dejavu.c, namealloc.c ..}}} fonctions de gestion des tables pour trois types d'usage 59 51 * {{{man1/tool.1 ....................}}} fichier au format man 60 61 = Principe de fonctionnement d'une table de hachage =62 52 63 53 Une table de hachage est une structure de données permettant de stocker des … … 72 62 On accède donc à un élément à partir de sa clé. Les deux principales actions 73 63 sont l'ajout d'un élément (add) et la recherche d'un élément (get). 74 * La fonction get() prend en paramètre la clé de l'élément recherché. Si l'élément existe 75 elle rend la valeur associée. 76 * La fonction add() prend en paramètre le couple (clé, valeur). Si l'élément existe, elle change 77 sa valeur, sinon elle créé l'élément. 78 79 Il existe plusieurs manières de construire une table de hachage. La plus simple et aussi la plus rapide 64 * La fonction get() prend en paramètre la clé de l'élément recherché. Si l'élément existe, elle rend la valeur associée. 65 * La fonction add() prend en paramètre le couple (clé, valeur). Si l'élément existe, elle change sa valeur, sinon elle créé l'élément. 80 66 81 67 = Questions = 82 68 83 == Le processus de construction :Makefile ==69 == Le Makefile == 84 70 85 71 1. Completez la liste des dépendances pour les cibles : {{{main.o ... namealloc.o}}}. 86 72 1. Réécrivez les commandes en utilisant les variables automatiques : {{{$@ $< $^}}} 87 * {{{$@}}} : désigne l acible d'une règle.88 * {{{$<}}} : désigne le premier fichier de la liste des sourcesd'une règle.89 * {{{$^}}} : désigne la liste des sourcesd'une règle.73 * {{{$@}}} : désigne le fichier cible d'une règle. 74 * {{{$<}}} : désigne le premier fichier de la liste des fichiers source d'une règle. 75 * {{{$^}}} : désigne la liste des fichiers source d'une règle. 90 76 1. Donnez une raison à la definition des commandes et paramètres au début du Makefile 91 77 1. A quoi servent les options -p, -g, -wall, -werror, -ansi ?