Vous êtes sur la page 1sur 5

Université Ferhat Abbas – Sétif.

1
Faculté de technologie
Département d’enseignement de base en technologie

Module : Informatique.2 (Algorithmique.2)

CHAPITRE 2
Les Matrices
(Les Tableaux à deux dimension)
Module : Informatique.2 (Algorithmique.2) Chapitre 2 : Les Matrices (Tableaux 2d)

1. Définition
Un tableau à deux dimensions appelé également matrice permet d’organiser des informations de même type en
lignes et en colonnes. Il est caractérisé donc par :
• Son nom : un identificateur unique pour tous les éléments
• Son nombre de lignes et son nombre de colonnes qui doivent être connus à l’avance.
• Ses deux indices : l’accès à un élément de la matrice se fait à l’aide de deux indices (N° de ligne et N° de
colonne).
2. Déclaration d’une variable matrice
Variables Nom_matrice : Tableau [1..Nbr_Lig, 1..Nbr_Col] de Type_élément
i, j : Entier (* i étant l’indice des lignes et j celui des colonnes *)
En Pascal:
Var Nom_matrice: array [1..Nbr_Lig, 1..Nbr_Col] of Type_élément;
i, j: integer;
Nbr_Lig: Nombre de lignes.
Nbr_Col: Nombre de colonnes.
• Un élément de la matrice est identifié par son numéro de ligne et son numéro de colonne.
• Si M est la matrice, M [i, j] désigne l’élément de M situé à la ième Ligne et à la jème Colonne.
Exemple :
Variables M : Tableau [1..2, 1..3] de réel En Pascal:
i, j : entier
Var M: array [1..2, 1..3] of Real;
0.1 1 2.1 i, j: integer;
5 3.8 0.9

• M est une matrice de 2 lignes et 3 colonnes, en MC un espace de (2 x 3) de réels va être réservé.


• M [1 ,1] = 0.1 M [1 ,2] = 1 M [1 ,3] = 2.1 M [2 ,1] = 5 M [2 ,2] = 3.8 M [2 ,3] = 0.9
• M [2 ,1] ← 0 veut dire affecter à l’élément qui se trouve à la 2
ème ère
ligne et 1 colonne la valeur 0.
• X ← M [2 ,3] veut dire affecter à X la valeur qui se trouve dans la 2
ème
ligne et la 3
ème
colonne (X = 0.9).
3. Opérations de base sur une matrice
Pour représenter ces différentes opérations, on va utiliser une matrice M d’entiers.
Initialiser une Matrice En Pascal
Algorithme Ini_Mat Program Ini_Mat;
Constantes NL = Val1 Const NL = Val1
NC = Val2 NC = Val2
Variables M : Tableau [1..NL, 1..NC] de Entier Var M: Array [1..NL, 1..NC] of Integer;
i, j : entier i, j: integer;
Début Begin
Pour i allant de 1 à NL faire For i: =1 to NL do
Pour j allant de 1 à NC faire For j:=1 to NC do
M [i, j] ← 0 M [i, j]:= 0;
FinPour End.
FinPour
Fin

https://www.facebook.com/groups/inf19stc/
ère
U.F.A.S – F.T – D.E.B.T – 1 Année Licence –S.T (S2 – 2019/2020) 2/5
Module : Informatique.2 (Algorithmique.2) Chapitre 2 : Les Matrices (Tableaux 2d)
Lire (Remplir) une Matrice En Pascal
Algorithme Lect_Mat Program Lect_Mat;
Constantes NL = Val1 Const NL = Val1
NC = Val2 NC = Val2
Variables M : Tableau [1..NL, 1..NC] de Entier Var M: Array [1..NL, 1..NC] of Integer;
i, j : entier i, j: integer;
Début Begin
Pour i allant de 1 à NL faire For i: =1 to NL do
Pour j allant de 1 à NC faire For j:=1 to NC do
Lire (M [i, j]) Readln(M[i, j]);
FinPour End.
FinPour
Fin
Afficher une Matrice En Pascal
Algorithme Aff_Mat Program Aff_Mat;
Constantes NL = Val1 Const NL = Val1
NC = Val2 NC = Val2
Variables M : Tableau [1..NL, 1..NC] de Entier Var M: Array [1..NL, 1..NC] of Integer;
i, j : entier i, j: integer;
Début Begin
Pour i allant de 1 à NL faire For i: =1 to NL do
Pour j allant de 1 à NC faire Begin
Ecrire (M [i, j] For j:=1 to N C do
FinPour Write (M [i, j]);
FinPour Writeln;
Fin End;
End.
Additionner les éléments de deux tableaux
On dispose de deux matrices M1 et M2 et on veut réaliser la somme. Ça consiste à additionner les éléments de mêmes
indices et les mémoriser dans une matrice M3.
Condition nécessaire : M1et M2 de même taille et leurs éléments de même type.
Algorithme Multip_Mat En Pascal
Constantes NL = Val1 Program Multip _Mat;
NC = Val2 Const NL = Val1
Variables M1,M2,M3 : Tableau [1..NL, 1..NC] de Entier NC = Val2
i, j : entier Var M1,M2,M3: Array [1..NL, 1..NC] of Integer;
Début i, j: integer;
Pour i allant de 1 à NL faire Begin
Pour j allant de 1 à NC faire For i: =1 to NL do
M3 [i, j] ← M1 [i, j] + M2 [i, j] For j:=1 to N C do
FinPour M3 [i, j] := M1 [i, j] + M2 [i, j]
FinPour End.
Fin
Multiplier les éléments de deux tableaux
Algorithme add_Mat Program add_Mat;
Constantes NL = Val1 Const NL = Val1
NC = Val2 NC = Val2
Variables M1,M2,M3 : Tableau [1..NL, 1..NC] de Entier Var M1,M2,M3: Array [1..NL, 1..NC] of Integer;
i, j : entier i, j: integer;
Début Begin
Pour i allant de 1 à NL faire For i: =1 to NL do
Pour j allant de 1 à NC faire For j:=1 to N C do
M3 [i, j] ← M1 [i, j] * M2 [i, j] M3 [i, j] := M1 [i, j] * M2 [i, j]
FinPour End.
FinPour
Fin

https://www.facebook.com/groups/inf19stc/
ère
U.F.A.S – F.T – D.E.B.T – 1 Année Licence –S.T (S2 – 2019/2020) 3/5
Module : Informatique.2 (Algorithmique.2) Chapitre 2 : Les Matrices (Tableaux 2d)

Exercice.1
Ecrire un algorithme qui :
• Lit une matrice de 5 lignes et 5 colonnes d’entiers.
• Calcule et affiche la somme des chiffres pairs et des chiffres impairs.
• Calcule et affiche le nombre des chiffres positifs et le nombre des chiffres négatifs et le nombre des 0.
Algorithme calcul
Constantes NL = 5
NC = 5
Variables M : Tableau [1..NL, 1..NC] de Entier
i, j: entier
sompairs, somimpairs, nbpos, nbneg, nbnul: entier
Début
(* Lecture de la matrice *)
Pour i allant de 1 à NL faire
Pour j allant de 1 à NC faire
Ecrire (‘Entrer l’élément de la ligne ’, i, ‘ et la colonne ‘, j, ‘de la matrice’)
Lire (M [i, j])
FinPour
FinPour
(* Calcul de la somme des éléments pairs et des éléments impairs *)
Sompairs ← 0
Somimpairs ← 0
Pour i allant de 1 à NL faire
Pour j allant de 1 à NC faire
Si (M[i, j] Mod 2 ) = 0 Alors
Sompairs ← Sompairs + M [i, j]
Sinon
Somimpairs ← Somimpairs + M [i, j]
FinSi
FinPour
FinPour
Ecrire (‘ La somme des éléments pairs = ‘, sompairs)
Ecrire (‘ La somme des éléments impairs = ‘, somimpairs)
(* Calcul le nombre des chiffres positifs, négatifs et nuls *)
nbpos ← 0
nbneg ← 0
nbnul ← 0
Pour i allant de 1 à NL faire
Pour j allant de 1 à NC faire
Si M [i, j] = 0 Alors
nbnul ← nbnul + 1
Sinon
Si M [i, j] > 0 Alors
nbpos ← nbpos + 1
Sinon
nbneg ← nbneg + 1
FinSi
FinSi
FinPour
FinPour
Ecrire (‘ La nombre des éléments positifs = ‘, nbpos)
Ecrire (‘ La nombre des éléments négatifs = ‘, nbneg)
Ecrire (‘ La nombre des éléments nuls = ‘, nbnul)
Fin

https://www.facebook.com/groups/inf19stc/
ère
U.F.A.S – F.T – D.E.B.T – 1 Année Licence –S.T (S2 – 2019/2020) 4/5
Module : Informatique.2 (Algorithmique.2) Chapitre 2 : Les Matrices (Tableaux 2d)

Exercice.2
Ecrire un algorithme qui lit une matrice de 5 lignes et 4 colonnes puis cherche si une valeur entière X lue à partir du
clavier existe dans la matrice et afficher sa position dans le cas contraire il affiche le message « La valeur X n’existe
pas dans la matrice »
Algorithme Recherche
Constantes NL = 5
NC = 4
Variables M : Tableau [1..NL, 1..NC] de Entier
i, j, X : entier
Trouve : booléen
Début
(* Lecture de la matrice *)
(* Recherche de la valeur de X *)
Ecrire (‘Entrez le nombre recherché : ‘)
Lire (X)
Trouve ← Faux
i←1
Tque (i ≤ NL) et (Trouve = Faux) Faire
j←1
Tque (j ≤ NC) et (Trouve = Faux) Faire
Si (M [i, j] = X) Alors
Ecrire (‘ La valeur ‘, X, ‘ existe dans la ligne ’, i, ‘ et la colonne ‘, j)
Trouve ← Vrai
FinSi
j←j+1
FinTque
i ← i+ 1
FinTque
Si Trouve = Faux Alors
Ecrire (‘ La valeur ‘, X, ‘ n’existe pas dans la matrice’)
FinSi
Fin

https://www.facebook.com/groups/inf19stc/
ère
U.F.A.S – F.T – D.E.B.T – 1 Année Licence –S.T (S2 – 2019/2020) 5/5