:: Enseignements :: ESIPE :: E3INFO :: 2007-2008 :: Algorithmique - Slot 2 ::
[LOGO]

Recursivité


Exercice 1 - Remplir une image

On représente une image par un tableau de pixels. Chaque valeur représente une couleur différente. Les pixels voisins à un pixel donné sont les les huit qui sont autour. Une zone de couleur est un ensemble connexe de pixels de la même couleur : on peut aller d'un pixel à un autre en passant de voisin en voisin.

On veut implémenter la fonction pot de peinture qui change la couleur d'une zone entière. Par exemple avec l'image
      int image[10][10] = { 
      {1, 1, 1, 1, 1, 1, 2, 1, 1, 1},
      {1, 1, 1, 2, 2, 3, 2, 1, 2, 1},
      {1, 1, 1, 2, 2, 3, 2, 1, 2, 1},
      {1, 1, 1, 5, 2, 3, 2, 1, 5, 1},
      {1, 1, 1, 2, 2, 2, 2, 1, 2, 1},
      {1, 1, 1, 1, 5, 3, 3, 1, 2, 1},
      {1, 1, 1, 2, 2, 3, 2, 1, 2, 1},
      {1, 1, 3, 2, 1, 2, 1, 3, 2, 1},
      {1, 1, 2, 1, 2, 1, 2, 2, 3, 3},
      {1, 1, 1, 2, 2, 3, 2, 1, 2, 1}
      };
    
si on applique la fonction en (1,3) avec 7 comme nouvelle couleur, on devrait obtenir
      { 
      {1, 1, 1, 1, 1, 1, 7, 1, 1, 1},
      {1, 1, 1, 7, 7, 3, 7, 1, 2, 1},
      {1, 1, 1, 7, 7, 3, 7, 1, 2, 1},
      {1, 1, 1, 5, 7, 3, 7, 1, 5, 1},
      {1, 1, 1, 7, 7, 7, 7, 1, 2, 1},
      {1, 1, 1, 1, 5, 3, 3, 1, 2, 1},
      {1, 1, 1, 2, 2, 3, 2, 1, 2, 1},
      {1, 1, 3, 2, 1, 2, 1, 3, 2, 1},
      {1, 1, 2, 1, 2, 1, 2, 2, 3, 3},
      {1, 1, 1, 2, 2, 3, 2, 1, 2, 1}
      };
    

Exercice 2 - Encore des listes

Exercice 3 - Calculette

On veut implémenter une calculette en notation polonaise (préfixe) : au lieu d'écrire 2*(9-4), on écrit *2-94.