Objectifs

  • Manipulation de matrices.
  • Utilisation d'une structure imbriquée (acteur Caracteres)

Prérequis

Exercices

Exercice : Transformation de la table de caractères
  • Copiez le programme vide mission1.adb
  • Comme pendant les TPs, vous aurez besoin d'utiliser l'acteur Caracteres.
  • Retrouvez (ou ré-écrivez) les procédure permettant d'afficher une trame et d'afficher un message verticalement (voire horizontalement si vous l'avez déjà fait).
  • Écrivez une fonction Inverser avec la signature suivante : Function InverserCette fonction renvoie une copie de la table reçue en argument, mais dans laquelle toutes les trames sont passées en négatif (i.e., les pixels allumés deviennent éteints et réciproquement).
  • Modifiez les procédures d'affichage que vous avez déjà écrites pour qu'elles reçoivent en argument la table à utiliser (plutôt que d'utiliser systématiquement la table contenue dans l'acteur Caracteres).
  • Testez en affichant un message une fois avec la table de l'acteur Caractères et une fois avec la table inverse (retournée par votre fonction). Vous devriez voir un message en clair et un message en négatif.
  • Enfin, affichez un message en utilisant la table inverse de la table inverse, et vérifiez que vous obtenez bien le message en clair.
  • Si vous avez honnêtement travaillé, et que vous avez mérité de regarder la solution, la voici : mission2.adb

Acteurs utilisés

Bilan

  • Vous faites la différence entre une donnée qui provient d'un argument de votre procédure (qui n'est pas nécessairement la même d'une fois sur l'autre) et une donnée utilisée directement depuis un acteur (qui ne peut pas changer). Ici : la table de caractères.
  • Une structure imbriquée ne vous fait pas peur : vous parvenez à inverser toutes les occurences d'un type énuméré T_Pixel situé dans une matrice T_Trame située dans un type article T_Paire situé dans un tableau T_Table.