Changes between Version 19 and Version 20 of CaoCourseTme2


Ignore:
Timestamp:
Feb 16, 2007, 7:35:28 PM (18 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • CaoCourseTme2

    v19 v20  
    1717L'objectif de ce TME est double :
    1818
    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'').
    2521
    2622Il vous offre également un modèle de programme, avec Makefile et man pour vos futurs développements.
     
    3026 *  Vous devez commencer par copier sur votre compte le répertoire :
    3127    {{{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 
     29Ce répertoire contient un programme utilisant une table de hachage.
     30Le travail demandé comporte deux phases. Dans un premier temps vous devez analyser le code fourni,
     31et '''rédiger''' des réponses aux questions portant sur ce code. Dans un deuxième temps, vous devrez modifier
     32ce programme, pour introduire de nouvelles fonctionnalités.
    4133
    4234Le 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:
     35de 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:
    4537 *  le nombre d'occurences
    4638 *  les numéros de toutes les lignes où il est présent
     
    5042 *  moyenne du nombre de comparaisons nécessaire lors de la recherche d'un mot
    5143       
    52 = Description des sources fournies =
     44= Description des sources fournies et principe des tables de hachage =
    5345
    5446 *  {{{Makefile .......................}}} description du processus de construction de l'exécutable.
     
    5850 *  {{{dico.c, dejavu.c, namealloc.c ..}}} fonctions de gestion des tables pour trois types d'usage
    5951 *  {{{man1/tool.1 ....................}}} fichier au format man
    60 
    61 = Principe de fonctionnement d'une table de hachage =
    6252
    6353Une table de hachage est une structure de données permettant de stocker des
     
    7262On accède donc à un élément à partir de sa clé. Les deux principales actions
    7363sont 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.
    8066
    8167= Questions =
    8268
    83 == Le processus de construction : Makefile ==
     69== Le Makefile ==
    8470
    8571 1. Completez la liste des dépendances pour les cibles : {{{main.o ... namealloc.o}}}.
    8672 1. Réécrivez les commandes en utilisant les variables automatiques : {{{$@ $< $^}}}
    87     * {{{$@}}} : désigne la cible d'une règle.
    88     * {{{$<}}} : désigne le premier fichier de la liste des sources d'une règle.
    89     * {{{$^}}} : désigne la liste des sources d'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.
    9076 1. Donnez une raison à la definition des commandes et paramètres au début du Makefile
    9177 1. A quoi servent les options -p, -g, -wall, -werror, -ansi ?