Changes between Version 23 and Version 24 of CaoCourseTme1
- Timestamp:
- Feb 11, 2007, 2:51:37 PM (18 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
CaoCourseTme1
v23 v24 76 76 Lancez l'exécution du programme pgmg: 77 77 {{{ 78 $ pgmg Untitled.pgm new.pgm78 $ ./pgmg Untitled.pgm new.pgm 79 79 }}} 80 80 Vérifiez que le fichier de sortie contient bien l'image initiale. … … 124 124 Compilez, puis exécutez le nouveau programme pgmg, en mode 'verbose', pour vérifier le bon fonctionnement. 125 125 126 = Etape 3 : Analysedu fichier de commandes =127 128 Commencez par créer un sous répertoire tme1/etape3, et à recopiervos fichiers source et126 = Etape 3 : Exploitation du fichier de commandes = 127 128 Commencez par créer un sous répertoire tme1/etape3, et recopiez vos fichiers source et 129 129 votre 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(). 130 Cette troisième étape consiste principalement à écrire un parseur élémentaire utilisant 131 les fonctions fgets() et sscanf(). 131 132 Vous pouvez vous inspirez de l'exemple que vous trouverez dans ScanfExample. 132 133 133 Le fichier de commandes contient une commande par ligne. 134 Le fichier de commandes contient une commande par ligne, et chaque commande déclenche 135 une transformation complête de tous les pixels de l'image. 134 136 * S n : seuillage (si val > n, val = 255 / sinon val = 0) 135 137 * X : symétrie suivant x (x devient -x) … … 149 151 F 1 -1 1 2 10 2 1 -1 1 150 152 }}} 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. 153 L'analyse du fichier de commande et l'exécution des transformations définies dans ce fichier 154 sont réalisées par la fonction operate(). 155 Cette fonction prend en entrée un pointeur sur le fichier de commande, et un pointeur 156 sur une structure de donnée gmap contenant l'image initiale. 153 157 Elle applique séquenciellement les transformations définies dans le fichier de commandes, 154 158 et renvoie un pointeur sur la structure de donnée gmap contenant l'image résultante. … … 156 160 gmap *operate(FILE *commande, gmap *in); 157 161 }}} 158 On définira une fonction par type de commandes. Ces 6 fonctions prennent pour nom le caractère 162 Ecrivez le fichier operate.c, qui contient la fonction operate(), ainsi que le fichier associé operate.h. 163 On définira une fonction par type de commande. Ces 6 fonctions prennent pour nom le caractère 159 164 définissant la commande, et possèdent deux arguments: un pointeur sur l'image source, et un pointeur 160 165 sur l'image résultat. Les deux structures de données doivent donc avoir été allouées en mémoire … … 163 168 void X(gmap *mapin, gmap *mapout); 164 169 }}} 165 Pour cette étape, les fonctions de traitement se contentent de recopier mapin dans mapout,166 et d'afficher lemessage:170 Pour cette étape, les fonctions de traitementn'exécutent pas réellement la transformation de 171 l'image. Elles se contentent de recopier mapin dans mapout, et d'afficher un message: 167 172 {{{ 168 173 Operation XXX non implementee 169 174 }}} 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 175 Après avoir écrit les fichiers "operate.c" et "operate.h", et après avoir modifié les fichier "main.c" 176 pour prendre en compte le fichier de commandes, modifiez le fichier "Makefile", recompilez l'application 177 et 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 181 Implémentez successivement les 6 fonctions S(), X(), Y() P(), M(), F() dans le fichier "operate.c". 174 182 Il faut calculer tous les pixels de l'image, en exécutant deux boucles for imbriquées 175 183 pour parcourir les lignes et les colonnes. Le coeur de ces fonctions sera toujours … … 192 200 = Compte-rendu = 193 201 194 La note de tME compte dans la note de contrôle continu.202 La note de TME compte dans la note de contrôle continu. 195 203 Vous n'avez pas de compte-rendu écrit à rendre, mais vous aurez à 196 204 faire une démonstration de votre programme et à présenter le code