CHAPITRE:
Structuresdedonnées
(Tableaubidimensionnel:
Matrices) 1ere année LMD Sciences
et Technologies
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
INTRODUCTION
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.
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
DÉCLARATION
D'UNE MATRICE
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
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):
ACCÈSAUX
ÉLÉMENTS
D’UNE MATRICE
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
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
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]);
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.
QUELQUES
OPÉRATIONS
DE BASESUR
LES MATRICES
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.
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].
.
Algorithme Som_matrice;
Variable
A, B, C :Tableau [1..15,1..15] de
réels;
i, j : entier;
Début
Pour i1 à 15 Faire
Pour j1 à 15 Faire
LireA[i,j];
Lire B[i,j] ;
Fpour;
Fpour;
Pour i1 à 15 Faire
Pour j1 à 15 Faire
C[i,j]A[i,j]+B[i,j] ;
Fpour;
Fpour;
Pour i1 à 15 Faire
Pour j1 à 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
EXERCICES
D’APPLICATIONS
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.
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.
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).

Cours Algorithme: Matrice

  • 1.
  • 2.
    Introduction C’est quoi uneMatrice 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
  • 3.
  • 4.
    1. Notion d’unematrice : 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 dechaque é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
  • 6.
  • 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):
  • 9.
  • 10.
    1. Création d’unematrice (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’unematrice (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 unalgorithme 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.
  • 14.
  • 15.
    Voici les opérationsde 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 34 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 i1 à 15 Faire Pour j1 à 15 Faire LireA[i,j]; Lire B[i,j] ; Fpour; Fpour; Pour i1 à 15 Faire Pour j1 à 15 Faire C[i,j]A[i,j]+B[i,j] ; Fpour; Fpour; Pour i1 à 15 Faire Pour j1 à 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
  • 18.
  • 19.
    Exercice N°1 : Ecrireun 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 : Ecrireun 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 : Ecrirele 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).