Changes between Version 23 and Version 24 of CaoCourseTme1


Ignore:
Timestamp:
Feb 11, 2007, 2:51:37 PM (18 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • CaoCourseTme1

    v23 v24  
    7676Lancez l'exécution du programme pgmg:
    7777{{{
    78 $ pgmg Untitled.pgm new.pgm
     78$ ./pgmg Untitled.pgm new.pgm
    7979}}}
    8080Vérifiez que le fichier de sortie contient bien l'image initiale.
     
    124124Compilez, puis exécutez le nouveau programme pgmg, en mode 'verbose', pour vérifier le bon fonctionnement.
    125125
    126 = Etape 3 : Analyse du fichier de commandes =
    127 
    128 Commencez par créer un sous répertoire tme1/etape3, et à recopier vos fichiers source et
     126= Etape 3 : Exploitation du fichier de commandes =
     127
     128Commencez par créer un sous répertoire tme1/etape3, et recopiez vos fichiers source et
    129129votre Makefile dans ce répertoire, pour conserver les états intermédiaires de votre travail.
    130 Cette troisième étape consiste à écrire un parseur élémentaire utilisant les fonctions fgets() et sscanf().
     130Cette troisième étape consiste principalement à écrire un parseur élémentaire utilisant
     131les fonctions fgets() et sscanf().
    131132Vous pouvez vous inspirez de l'exemple que vous trouverez dans ScanfExample.
    132133
    133 Le fichier de commandes contient une commande par ligne.
     134Le fichier de commandes contient une commande par ligne, et chaque commande déclenche
     135une transformation complête de tous les pixels de l'image.
    134136 * S n : seuillage (si val > n, val = 255 / sinon val = 0)
    135137 * X : symétrie suivant x (x devient -x)
     
    149151F 1 -1 1 2 10 2 1 -1 1
    150152}}}
    151 Ecriver le fichier operate.C (ainsi que le fichier associé operate.h), qui contient la fonction operate().
    152 Cette fonction prend en entrée une image définie par un pointeur sur une structure de donnée gmap.
     153L'analyse du fichier de commande et l'exécution des transformations définies dans ce fichier
     154sont réalisées par la fonction operate().
     155Cette fonction prend en entrée un pointeur sur le fichier de commande, et un pointeur
     156sur une structure de donnée gmap contenant l'image initiale.
    153157Elle applique séquenciellement les transformations définies dans le fichier de commandes,
    154158et renvoie un pointeur sur la structure de donnée gmap contenant l'image résultante.
     
    156160gmap *operate(FILE *commande, gmap *in);
    157161}}} 
    158 On définira une fonction par type de commandes. Ces 6 fonctions prennent pour nom le caractère
     162Ecrivez le fichier operate.c, qui contient la fonction operate(), ainsi que le fichier associé operate.h.
     163On définira une fonction par type de commande. Ces 6 fonctions prennent pour nom le caractère
    159164définissant la commande, et possèdent deux arguments: un pointeur sur l'image source, et un pointeur
    160165sur l'image résultat. Les deux structures de données doivent donc avoir été allouées en mémoire
     
    163168void X(gmap *mapin, gmap *mapout);
    164169}}}
    165 Pour cette étape, les fonctions de traitement se contentent de recopier mapin dans mapout,
    166 et d'afficher le message:
     170Pour cette étape, les fonctions de traitementn'exécutent pas réellement la transformation de
     171l'image. Elles se contentent de recopier mapin dans mapout, et d'afficher un message:
    167172{{{
    168173Operation XXX non implementee
    169174}}}
    170 
    171 = Etape 4 : opérations S,X,Y,P,M,F =
    172 
    173 Implémentez successivement les fonctions S, X, Y P, M. F
     175Après avoir écrit les fichiers "operate.c" et "operate.h", et après avoir modifié les fichier "main.c"
     176pour prendre en compte le fichier de commandes, modifiez le fichier "Makefile", recompilez l'application
     177et exécutez le programme pgmg en mode 'verbose' pour le fichier de commande fourni en exemple.
     178
     179= Etape 4 : Exécution des transformations S,X,Y,P,M,F =
     180
     181Implémentez successivement les 6 fonctions S(), X(), Y() P(), M(), F() dans le fichier "operate.c".
    174182Il faut calculer tous les pixels de l'image, en exécutant deux boucles for imbriquées
    175183pour parcourir les lignes et les colonnes. Le coeur de ces fonctions sera toujours
     
    192200= Compte-rendu =
    193201
    194 La note de tME compte dans la note de contrôle continu.
     202La note de TME compte dans la note de contrôle continu.
    195203Vous n'avez pas de compte-rendu écrit à rendre, mais vous aurez à
    196204faire une démonstration de votre programme et à présenter le code