Vous êtes sur la page 1sur 14

Tableaux à deux dimensions

un tableau à deux dimensions est à interpréter comme un tableau


(unidimensionnel) de dimension L dont chaque composante est un
tableau (unidimensionnel) de dimension C.

L :  nombre de lignes.   L et C sont alors les deux dimensions du


C: nombre de colonnes. tableau.
Un tableau à deux dimensions contient L*C composantes.

 un tableau à deux dimensions


est carré, si L est égal à C.
 mathématiquement, on peut dire
 matrice de dimensions L et C".

 
Déclaration d’un tableau à deux dimensions

En langage algorithmique
En langage C

Exemples:
int A[10][10];
float B[2][20];
 
Initialisation et réservation automatique
• Lors de la déclaration d'un tableau, on peut initialiser ces
composantes, en indiquant la liste des valeurs entre accolades.
• A l'intérieur de la liste, les composantes de chaque ligne du tableau
sont encore une fois comprises entre accolades.
• Pour améliorer la lisibilité des programmes, on peut indiquer les
composantes dans plusieurs lignes.

Exemples:
Accès aux composantes
Accès à un tableau à deux dimensions en langage algorithmique
<NomTableau>[<Ligne>, <Colonne>]
Accès à un tableau à deux dimensions en C
<NomTableau>[<Ligne>][<Colonne>]
Les éléments d'un tableau de dimensions L et C se présentent de la
façon suivante:

En C,
- Les indices du tableau varient de 0 à L-1, respectivement de 0 à C-1.
- La composante de la Nième ligne et Mième colonne est: A[N-1][M-1]
En langage algorithmique,
-Les indices du tableau varient de 1 à L, respectivement de 1 à C.
- La composante de la Nième ligne et Mième colonne est notée: A[N,M]
Affichage et affectation
• Pour parcourir les lignes et les colonnes des tableaux à deux
dimensions, nous utilisons deux indices (p.ex: I et J), et la
structure for imbriquée.

Algorithme pour l’affichage des


éléments du tableau

Algorithme pour l’affectation des


éléments du tableau
Affichage des éléments du tableau
Remplissage ou affectation des éléments du tableau
Exercice1
Ecrire un programme qui lit les dimensions L et C d'un tableau T à deux
dimensions du type int (dimensions maximales: 50 lignes et 50
colonnes). Remplir le tableau par des valeurs entrées au clavier et
afficher le tableau ainsi que la somme de tous ses éléments.
#include <stdio.h>
main()
{
/* Déclarations */
int T[50][50]; /* tableau donné */
int L, C; /* dimensions */
int I, J; /* indices courants */
long SOM;
/* Saisie des données */
printf("Nombre de lignes (max.50) : ");
scanf("%d", &L );
printf("Nombre de colonnes (max.50) : ");
scanf("%d", &C );
for (I=0; I<L; I++)
for (J=0; J<C; J++)
{
printf("Elément[%d][%d] : ",I,J);
scanf("%d", &T[I][J]);
}
/* Affichage du tableau */
printf("Tableau donné :\n");
for (I=0; I<L; I++)
{
for (J=0; J<C; J++)
printf("%7d", T[I][J]);
printf("\n");
}
/* Calcul de la somme */
for (SOM=0, I=0; I<L; I++)
for (J=0; J<C; J++)
SOM += T[I][J];
/* Edition du résultat */
printf("Somme des éléments : %ld\n", SOM);
return 0;
}
Exercice 2:

Ecrire un programme en C qui réalise l'addition de deux matrices A et B


de mêmes dimensions N et M. Le résultat de l'addition sera mémorisé
dans une troisième matrice C qui sera ensuite affichée.
#include <stdio.h> /* Affichage des matrices */
main() printf("Matrice donnée A :\n");
{ for (I=0; I<N; I++)
int A[50][50]; /* matrice donnée */ {
int B[50][50]; /* matrice donnée */ for (J=0; J<M; J++)
int C[50][50]; /* matrice résultat */ printf("%7d", A[I][J]);
int N, M; /* dimensions des matrices */ printf("\n");
int I, J; /* indices courants */ }
/* Saisie des données */ printf("Matrice donnée B :\n");
printf("Nombre de lignes (max.50) : "); for (I=0; I<N; I++)
scanf("%d", &N ); {
printf("Nombre de colonnes (max.50) : "); for (J=0; J<M; J++)
scanf("%d", &M ); printf("%7d", B[I][J]);
printf("*** Matrice A ***\n"); printf("\n");
for (I=0; I<N; I++) }
for (J=0; J<M; J++) /* Affectation du résultat de l'addition à C */
{ for (I=0; I<N; I++)
printf("Elément[%d][%d] : ",I,J); for (J=0; J<M; J++)
scanf("%d", &A[I][J]); C[I][J] = A[I][J]+B[I][J];
} /* Edition du résultat */
printf("*** Matrice B ***\n"); printf("Matrice résultat C :\n");
for (I=0; I<N; I++) for (I=0; I<N; I++)
for (J=0; J<M; J++) {
{ for (J=0; J<M; J++)
printf("Elément[%d][%d] : ",I,J); printf("%7d", C[I][J]);
scanf("%d", &B[I][J]); printf("\n");
} }
}

Vous aimerez peut-être aussi