Hi
J'ai un petit problème avec un algo qui consiste à extraire toutes les sous matrice s_mat de taille s_N (lignes) et s_M (colonnes) à partir d'une matrice mat de taille N (lignes) et M (colonnes).
Si par exemple j'ai une matrice mat de taille (3,3) comme ceci:
et que les sous matrices à extraire sont de taille (2,2), alors les sous matrices à extraire sont:
Alors voilà l'algorithme fonctionnel auquel j'ai ponçais:
1) crée (allouer) à chaque fois une sous matrice s_mat.
2) parcourir cette sous matrice pour la remplir à partir d'un indice de ligne L et un indice de colone C comme
ceci:
les Lignes: de L à L+s_N
les Colonne de C à L+s_M
3) Faire varier les indice L et C comme ceci:
if( C <= M-s_M )
C = C + 1;
else
{
C = 0;
L = L + 1;
}
En claire ça donne ceci:
ExtractionDESousMatrice( Matrice mat(N, M), Entier s_N, Entier s_M )
{
Entier i, j, L=0, C=0;
Matrice s_mat;
TantQue ( L <= N-s_N )
{
AllocationMemoire( s_mat, s_N, s_M);
for( i=L à L+s_N -1 )
for( j=C à j<s_M -1 )
s_mat[i][j] = mat[i][j];
if( C <= M-s_M )
C++;
else
{
C = 0;
L++;
}
AffichageMatrice(s_mat);
FreeMemoire( );
}
} |
Mais en l'implémentant en langage C, ça ne me donne pas le résultat attendu !
merci
Message édité par _Reggae_ le 30-03-2007 à 19:45:19