2. Introduction
C’est quoi une Matrice
Déclaration d’une Matrice
Accès aux éléments d’une matrice
Quelques opérations de base sur les matrices
Exercices d'applications
Sommaire:
1
2
3
4
5
6
4. 1. Notion d’une matrice : est un ensemble de données de même type
logées en mémoire centrale et référencé par deux indices (les lignes et
les colonnes). Les matrices sont donc des tableaux à deux dimensions
(bidimensionnels).
2. Caractéristiques d’une matrice:
Une matrice est caractérisée par:
Son nom: Par exemple, la matrice M.
Son type : tous les éléments de la matrice ont le même type et c’est
le type de la matrice.
Ses éléments : chaque case mémoire représente un élément de la
matrice.
5. Le nom de chaque élément: est composé du nom de la matrice
avec deux indices (ligne, colonne). Ces derniers indiquent la
position de l’élément dans la matrice.
Par exemple, l’élément M[ 3 , 2 ]= 2.
Il existe deux manières pour remplir une matrice :
1. Ligne par ligne
2. Colonne par colonne
1 2 3 4
1 -4,9 2 14,3 -6
2 1,3 -12 0 -0,5
3 11 2 -3 0,75
M[3,2]= 2
7. Exemples:
Variable
Mat : Tableau [1..4, 1..3] d’entiers;
Variable
M : Tableau [1..2, 1..2] de logiques;
Variable
A : Tableau [1..2, 1..3] de caractères;
1 2 3
1 6 2 14
2 19 -12 0
3 11 2 -3
4 32 9 0
1 2
1 TRUE FALSE
2 FALSE TRUE
1 2 3
1 R Y *
2 U % &
Variable
nom_matrice: tableau [MinInd1..MaxInd1, MinInd2 ..MaxInd2] de type;
Syntaxe (algorithme):
Valeur de l’indice de
ligne initial
Valeur de l’indice ligne
final
Valeur de l’indice de
colonne initial
Valeur de l’indice
colonne final
8. Exemples:
Var
Mat :array[1..7, 1..5] of integer;
M : array [1..2, 1..2] of boolean;
A : Array [1..2, 1..3] of char;
Cas particulier:
En cas d’une matrice Mat de nXm valeurs entières, on declare:
Mat: array[1..100, 1..100] of integer;
M: array[1..50, 1..50] of real;
Ici, c’est le cas de déclaration d’une matrice statique.
Var
Nom_tableau :array[MinInd1..MaxInd1, MinInd2 ..MaxInd2] of type;
Syntaxe (Pascal):
10. 1. Création d’une matrice (Lire/remplir une matrice): saisir les éléments par le
clavier:
Exemple: écrire un algorithmepermettant de remplir une matrice (5x4)
d’éléments réels.
1 2 3 4
1 -4,9 2 14,3 -6
2 10 -2 3 4
3 1 2 14,3 -6
4 2 -12 0 -0,5
5 3 2 -3 0,75
INDICES
ELEMENTS
Deux boucles imbriquées permettent de remplir une matrice, ligne par ligne:
La première boucle parcours les lignes de la matrice.
Pour chaque ligne, la deuxième boucle parcours les colonnes de la matrice.
MM [ 2, 3 ]=3
Indice de ligne Indice de colonne
11. Algorithme saisie;
Variable
M: Tableau[1..5, 1..4] de réel;
i,j: entier;
Debut
Pour i← 1 à 5 faire
Pour i← 1 à 4 faire
Ecrire ('Donner l''élément numéro ', i, j,' de la matrice‘)
Lire (M[i,j]);
Finpour;
Finpour;
Fin.
4 colonnes de la
matrice de 1 à 4
5 lignes de la
matrice de 1 à 5
Pour parcourir les
lignes
Pour parcourir les
colonnes
12. 2. Edition d’une matrice (affichage des éléments d’une matrice)
L’affichage d’une matrice se fait aussi par les boucles imbriquées.
Une boucle pour parcourir les lignes et une autre pour parcourir les colonnes.
1 2 3
1 -4,9 2 14,3
2 10 -2 3
3 1 2 14,3
4 2 -12 0
5 3 2 -3
L’affichage ligne par ligne:
Ecrire (‘L''élément numéro ', 1, 1,' de la matrice=‘,
Mat[1,1]);
Ecrire (‘L''élément numéro ', 1,2,' de la matrice=‘,
Mat[1,2]);
Ecrire (‘L''élément numéro ', 1, 3,' de la matrice=‘,
Mat[1,3]);
Ecrire (‘L''élément numéro ', 2, 1,' de la matrice=‘,
Mat[2,1]);
……
Ecrire (‘L''élément numéro ', 5, 3,' de la matrice=‘,
Mat[5,3]);
M
L’affichage colonne par colonne:
Ecrire (‘L''élément numéro ', 1, 1,' de la matrice=‘,
Mat[1,1]);
Ecrire (‘L''élément numéro ', 2,1,' de la matrice=‘,
Mat[2,1]);
Ecrire (‘L''élément numéro ', 3 ,1,' de la matrice=‘,
Mat[3,1]);
Ecrire (‘L''élément numéro ', 4, 1,' de la matrice=‘,
Mat[4,1]);
……
Ecrire (‘L''élément numéro ', 3, 5,' de la matrice=‘,
Mat[3,5]);
13. Exemple: écrire un algorithme permettant d’afficher les éléments d’une
matrice 3x4 d’éléments entiers.
Algorithme affichage;
Variable
Mat: Tableau[1..3, 1..4] d’entiers;
i,j: entier;
Debut
Pour i← 1 à 5 faire
Pour i← 1 à 4 faire
Ecrire (‘L''élément numéro ', i, j,' de la matrice=‘, Mat[i,j]);
Finpour;
Finpour;
Fin.
15. Voici les opérations de base prises en charge par un tableau.
Affichage: Imprimer tous les éléments/ quelques éléments
de la matrice un par un.
Insertion : Ajouter un élément dans un position donnée.
Suppression : Supprimer un élément de la matrice.
Rechercher : Rechercher un élément en utilisant une
valeur ou indiquant une position.
Mise à jour: Mettre à jour un élément à une position
donnée/ mettre à jour une matrice.
16. 1 2 3 4 5
1 -1 22 26 14 14
2 23 10 38 13 -3
3 8 -10 -11 27 7
4 40 5 23 5 8
5 -9 1 7 15 11
1 2 3 4 5
1 5 26 -20 11 -10
2 1 -10 3 -14 35
3 -12 1 0 -8 -9
4 24 20 -2 -15 -5
5 34 28 0 -16 -16
1 2 3 4 5
1 4 48 6 25 4
2 24 0 41 -1 32
3 -4 -9 -11 19 -2
4 64 25 21 -10 3
5 25 29 7 -1 -5
A B
CC[1,1]←A[1,1]+B[1,1]
C[1,2]←A[1,2]+B[1,2]
C[1,3]←A[1,3]+B[1,3]
C[1,4]←A[1,4]+B[1,4]
C[2,1]←A[2,1]+B[2,1]
C[2,2]←A[2,2]+B[2,2]
…….
C[i,j]←A[i,j]+B[i,j]
Traitement
A
B
C
+
=
Exercice: Ecrire un algorithme qui calcul la
somme de deux matrices A[15,15] et B[15,15] de
types réels et met le résultat dans une matrice
C[15,15].
.
17. Algorithme Som_matrice;
Variable
A, B, C :Tableau [1..15,1..15] de
réels;
i, j : entier;
Début
Pour i1 à 15 Faire
Pour j1 à 15 Faire
LireA[i,j];
Lire B[i,j] ;
Fpour;
Fpour;
Pour i1 à 15 Faire
Pour j1 à 15 Faire
C[i,j]A[i,j]+B[i,j] ;
Fpour;
Fpour;
Pour i1 à 15 Faire
Pour j1 à 15 Faire
Ecrire (C[i,j])
Fpour;
Fpour;
Fin.
Remplir
les deux
matrices
A et B
Afficher la
matrice C
(résultat)
Traitement de
la somme des
deux matrices
19. Exercice N°1 :
Ecrire un programme PASCAL qui permet de :
1. Remplir une matrice carrée de taille 4x4.
2. Calculer et afficher le nombre d’éléments positifs,
négatifs et nuls.
20. Exercice N°2 :
Ecrire un programme PASCAL qui permet de :
1. Remplir une matrice d’entiers de taille n*m
2. Afficher le nombre d’éléments impairs par colonne.
21. Exercice N°3 :
Ecrire le programme PASCAL qui calcul la multiplication
d’une matrice A(20,20) avec un vecteur B(20) et met le
résultat dans un vecteur C(20).