Chapitre 4 : Vecteurs et matrices

Tableau à deux dimensions

Nous appelons tableau à deux dimensions (ou matrice) d'ordre « (m × n) » un ensemble de « m × n » éléments rangés dans les cases disposés en « m » lignes et « n » colonnes. Dans ce type de tableaux les valeurs ne sont pas repérées par un seul indice comme dans les vecteurs, mais par deux indices (coordonnées). Le premier indice sert à représenter les lignes et le second indice sert à représenter les colonnes [1]. La figure ci-dessous représente un tableau à deux dimensions :

Figure 2. Illustration d'une matrice.

Syntaxe de déclaration d'une matrice

Un tableau à deux dimensions est déclaré en précisant le nombre de ses lignes et ses colonnes, et le type des valeurs qu'il contiendra.

SyntaxeDéclaration d'une matrice

La déclaration d'une matrice se fait de la manière citée ci-dessous :

1
VAR
2
Nom_matrice : TABLEAU [inf_ligne .. max_ligne, inf_colonne .. max_colonne] DE type_des_éléments ;

Ou en langage C :

1
Type_des_éléments : Nom_matrice [nombre_d'éléments_dimension1] [nombre_d'éléments_dimension2];

ExempleDéclaration d'une matrice

1
Achat : TABLEAU [1 ..100, 1 .. 100] d'Entier ;
2
Vente : TABLEAU [1 .. 10, 1 .. 47] de Réel ;

Pour la variable Achat déclarée ci-dessus :

  • Le nom de la variable est Achat, il est fixe.

  • La taille de la variable est (100 × 100). Elle est fixe car la réservation utilisée est statique.

  • Le type des valeurs que contiendra la variable est Entier.

ComplémentPlus de détails 

  • A la déclaration d'une matrice, il faut ajouter la déclaration de deux indices qui doivent être d'un type ordinal.

  • Tous les éléments de la matrice doivent être de même type.

  • Chaque élément de la matrice est repéré par le nom de la matrice et les numéros des indices de ligne et de colonnes, on le note M [i, j].

  • Lorsque m=n, alors la matrice est dite carrée.

  • Lorsque la matrice est carrée et si i=j, alors l'élément se trouve sur la diagonale principale de la matrice.

  • La saisie et l'affichage des éléments de la matrice sont effectuées par les instructions de lecture et d'écriture.

Manipulation d'une matrice

Pour insérer (ou afficher) des données dans (à partir) une (d'une) matrice à (n × m) cases il faut utiliser une boucle qui parcoure les lignes et une autre imbriquée qui parcoure les colonnes, puisqu'une case d'une matrice est au croisement d'une ligne et d'une colonne [2].

ExempleRemplir et afficher les éléments d'une matrice

Pour remplir une matrice Mate de (3× 4) cases (12 cases) :

1
ALGORITHME Lectur_Mat ;
2
CONST 
3
    N = 3 ; 
4
    M = 4 ; 
5
VAR 
6
    Mate : TABLEAU [1 .. N, 1 .. M] d'Entier ; 
7
    i,j: Entier;
8
DÉBUT
9
   POUR i ALLANT DE 1 A N FAIRE 
10
      POUR j ALLANT DE 1 A M FAIRE 
11
        LIRE (Mate [i , j]) ;
12
      FIN POUR ; 
13
   FIN POUR ;
14
FIN.

Pour afficher le contenu des cases d'une matrice, on utilise la même structure de lecture :

1
ALGORITHME Ecriture_Mat ;
2
VAR 
3
    Mate : TABLEAU [1 .. 3, 1 .. 4] d'Entier ; 
4
    i,j: Entier;
5
DÉBUT
6
   POUR i ALLANT DE 1 A N FAIRE 
7
      POUR j ALLANT DE 1 A M FAIRE 
8
        ÉCRIRE (Mate [i , j]) ;
9
      FIN POUR ; 
10
   FIN POUR ;
11
FIN.

ExempleAdditionner les éléments de deux matrices

On dispose de deux matrices M1 et M2 et on veut réaliser la somme élément par élément des deux matrices. Ça consiste à additionner les éléments de mêmes indices et les mémoriser dans une matrice M3.

1
ALGORITHLE ADD_Mat; 
2
CONST 
3
 NL = 10; 
4
 NC = 20 ; 
5
VAR 
6
 Mat1,Mat2 : TABLEAU [1..NL,1..NC] d'Entier ; 
7
 i,j : Entier ; 
8
DÉBUT 
9
 (* remplir la matrice Mat1 *) 
10
 POUR i ALLANT DE 1 à NL FAIRE
11
  POUR j ALLANT DE 1 à NC FAIRE 
12
   LIRE(Mat1 [i, j]); 
13
  FIN POUR ; 
14
 FIN POUR ; 
15
 (* remplir la matrice Mat2 *) 
16
 POUR i ALLANT DE 1 à NL FAIRE 
17
  POUR j ALLANT DE 1 à NC FAIRE 
18
   LIRE(Mat2 [i, j]); 
19
  FIN POUR ; 
20
 FIN POUR ; 
21
 (* additionner des deux matrices *) 
22
 POUR i ALLANT DE 1 à NL FAIRE
23
  POUR j ALLANT DE 1 à NC FAIRE 
24
   Mat3[i, j]<- Mat1[i,j] + Mat2[i,j] ; 
25
  FIN POUR ; 
26
 FIN POUR ; 
27
(* afficher de la matrice résultante Mat3 *) 
28
 POUR i ALLANT DE 1 à NL FAIRE
29
  POUR j ALLANT DE 1 à NC FAIRE
30
   ÉCRIRE (Mat3 [i, j]); 
31
  FIN POUR ; 
32
 FIN POUR ; 
33
FIN.
  1. 3

    M. C. Belaid. Algorithme et programmation en Pascal. Edition les pages bleus, 2006.

  2. 5

    J. Courtin. Initiation à l'algorithmique et aux structures de données. Edition DUNOD, 1998.

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimerRéalisé avec Scenari (nouvelle fenêtre)