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 :

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.
Syntaxe : Déclaration d'une matrice
La déclaration d'une matrice se fait de la manière citée ci-dessous :
VAR
Nom_matrice : TABLEAU [inf_ligne .. max_ligne, inf_colonne .. max_colonne] DE type_des_éléments ;
Ou en langage C :
Type_des_éléments : Nom_matrice [nombre_d'éléments_dimension1] [nombre_d'éléments_dimension2];
Exemple : Déclaration d'une matrice
Achat : TABLEAU [1 ..100, 1 .. 100] d'Entier ;
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ément : Plus 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].
Exemple : Remplir et afficher les éléments d'une matrice
Pour remplir une matrice Mate de (3× 4) cases (12 cases) :
ALGORITHME Lectur_Mat ;
CONST
N = 3 ;
M = 4 ;
VAR
Mate : TABLEAU [1 .. N, 1 .. M] d'Entier ;
i,j: Entier;
DÉBUT
POUR i ALLANT DE 1 A N FAIRE
POUR j ALLANT DE 1 A M FAIRE
LIRE (Mate [i , j]) ;
FIN POUR ;
FIN POUR ;
FIN.
Pour afficher le contenu des cases d'une matrice, on utilise la même structure de lecture :
ALGORITHME Ecriture_Mat ;
VAR
Mate : TABLEAU [1 .. 3, 1 .. 4] d'Entier ;
i,j: Entier;
DÉBUT
POUR i ALLANT DE 1 A N FAIRE
POUR j ALLANT DE 1 A M FAIRE
ÉCRIRE (Mate [i , j]) ;
FIN POUR ;
FIN POUR ;
FIN.
Exemple : Additionner 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.
ALGORITHLE ADD_Mat;
CONST
NL = 10;
NC = 20 ;
VAR
Mat1,Mat2 : TABLEAU [1..NL,1..NC] d'Entier ;
i,j : Entier ;
DÉBUT
(* remplir la matrice Mat1 *)
POUR i ALLANT DE 1 à NL FAIRE
POUR j ALLANT DE 1 à NC FAIRE
LIRE(Mat1 [i, j]);
FIN POUR ;
FIN POUR ;
(* remplir la matrice Mat2 *)
POUR i ALLANT DE 1 à NL FAIRE
POUR j ALLANT DE 1 à NC FAIRE
LIRE(Mat2 [i, j]);
FIN POUR ;
FIN POUR ;
(* additionner des deux matrices *)
POUR i ALLANT DE 1 à NL FAIRE
POUR j ALLANT DE 1 à NC FAIRE
Mat3[i, j]<- Mat1[i,j] + Mat2[i,j] ;
FIN POUR ;
FIN POUR ;
(* afficher de la matrice résultante Mat3 *)
POUR i ALLANT DE 1 à NL FAIRE
POUR j ALLANT DE 1 à NC FAIRE
ÉCRIRE (Mat3 [i, j]);
FIN POUR ;
FIN POUR ;
FIN.