Vous êtes sur la page 1sur 5

Algo & Prog

Classe : Bac Sciences de l’informatique

Série34 : Série arithmétique

S ---------------------------------

Nom du Prof : Amel Ben Saâd


Exercice 1 30 min
Ecrire l’algorithme d’un module qui à partir d’un fichier texte source.txt conte-
nant par ligne des chaines, de former un fichier resultat.dat contenant pour
chaque chaine
- La chaine du fichier après effacement des caractères n’appartenant pas à
["0".."9","A".."F"]
- Sa base la plus proche (2,8,10,16)
- Sa valeur en décimal
Exemple :
ch="23D9" la base la plus proche est 16
(23D6)16 = (9174)10

Exercice 2 30 min

1
Exercice 3 30 min

On considère une image numérique en niveau de gris, dont les valeurs des pixels sont représen-
tées par une matrice carrée M de dimensions NxN.

Le but est d’appliquer le filtrage par convolution sur cette image de la façon suivante :

- Soit H une matrice de 3x3 éléments, aussi appelée le masque de convolution.

- L’image filtrée s’obtient en effectuant le produit de convolution entre M et H pour chaque


pixel entouré par d’autres (les pixels de la deuxième ligne à l’avant-dernière, et pour
chaque ligne, de la deuxième colonne à l’avant-dernière), avec tout résultat supérieur à
255 est arrondi à 255, et tout résultat inférieur à 0 est arrondi à 0.

2
Travail demandé :
Soit le fichier texte « image.txt » contenant 36 lignes où chaque ligne contient le code hexadéci-
mal d’un pixel.
On se propose d’écrire l’algorithme d’un programme intitulé « CONVOLUTION » permettant :
• De remplir une matrice M de dimensions 6x6, ligne par ligne, par les équivalents décimaux
des nombres hexadécimaux du fichier « image.txt » à raison d’un équivalent par case.
• De remplir une matrice H de dimensions 3x3 par des entiers donnés.
• D’appliquer le produit de convolution entre M et H comme décrit précédemment.
• De transférer les équivalents hexadécimaux des nombres décimaux de la matrice M, après pro-
duit de convolution, dans un fichier « resultat.txt » à raison d’un nombre par ligne comme le
fichier « image.txt ».

Exemple :
✓ Soit le fichier « image.txt » qui contient les codes hexadécimaux suivant « 30 , 2D , 3C ,
51 , 53 ,41,3A,52,73,85,68,37,63,82,9A,93,60,25,88,A0,A3,8A,56,27,9C,9E,9D,8B, 59 ,
2A , 9A , 9A , 9C , 91 , 62 , 2D », à raison d’un code par ligne.

Matrice M remplie à partir du fichier « image.txt » Soit la matrice H suivante :


0 1 2 3 4 5
0 48 45 60 81 83 65 0 1 2
1 58 82 115 133 104 55 0 -2 -1 0
2 99 130 154 147 96 37 1 -1 0 1
3 136 160 163 138 86 39 2 0 1 2
4 156 158 157 139 89 42
5 154 154 156 145 98 45

M [1, 1] = M [0,0]*H [0,0] + M [0,1]*H [0,1] + M [0,2]*H [0,2] + M [1,0]*H [1,0] + M [1,1]*H
[1,1] + M [1,2]*H [1,2] +M [2,0]*H [2,0] + M [2,1]*H[2,1] + M[2,2]*H[2,2] = 354 >
255 ➔ M [1, 1] = 255

M [2, 2] = M [1,1]*H [0,0] + M [1,2]*H [0,1] + M [1,3]*H [0,2] + M [2,1]*H [1,0] + M [2,2]*H
[1,1] + M [2,3]*H [1,2] +M [3,1]*H [2,0] + M[3,2]*H[2,1] + M[3,3]*H[2,2] = - 270 < 0

➔ M[2,2]=0
M [3, 2] = M [2,1]*H [0,0] + M [2,2]*H [0,1] + M [2,3]*H [0,2] + M [3,1]*H [1,0] + M [3,2]*H
[1,1] + M [3,3]*H [1,2] +M [4,1]*H [2,0] + M [4,2]*H [2,1] + M [4,3]*H [2,2] = 102

➔M [3, 2] = 102

3

Matrice M après produit de convolution
0 1 2 3 4 5

0 48 45 60 81 83 65
1 58 255 176 66 0 55
2 99 170 0 0 69 37
3 136 131 102 255 0 39
4 156 64 157 0 0 42

5 154 154 156 145 98 45

✓ Le contenu du fichier « resultat.txt » à partir de la matrice M sera le suivant « 30, 2D, 3C,
51, 53, 41, 3A, FF, B0, 42, 0, 37, 63, AA, 0, 0, 45, 25, 88, 83, 66, FF, 0, 27, 9C, 40, 9D, 0,
0, 2A, 9A, 9A,9C, 91, 62, 2D »

Questions :
1- Ecrire un algorithme modulaire pour le problème posé
2- Ecrire les algorithmes des modules envisagés.

Vous aimerez peut-être aussi