SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
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).

Contenu connexe

Tendances

Exercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfsalah fenni
 
Algorithme & structures de données Chap III
Algorithme & structures de données Chap IIIAlgorithme & structures de données Chap III
Algorithme & structures de données Chap IIIInes Ouaz
 
Chap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-rechercheChap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-rechercheRiadh Harizi
 
Travaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de donnéesTravaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de donnéesInes Ouaz
 
Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018salah fenni
 
Exercices en turbo pascal sur les nombres
Exercices en turbo pascal sur les nombresExercices en turbo pascal sur les nombres
Exercices en turbo pascal sur les nombressalah fenni
 
TD sur les fonctions en Python
TD sur  les fonctions en PythonTD sur  les fonctions en Python
TD sur les fonctions en PythonABDESSELAM ARROU
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Ines Ouaz
 
Cours Algorithme: Tableau
Cours Algorithme: TableauCours Algorithme: Tableau
Cours Algorithme: TableauInforMatica34
 
Exercices en turbo pascal sur la récursivité
Exercices en turbo pascal sur la récursivitéExercices en turbo pascal sur la récursivité
Exercices en turbo pascal sur la récursivitésalah fenni
 
Serie tri revision_3si
Serie tri revision_3siSerie tri revision_3si
Serie tri revision_3siRiadh Harizi
 
Chapitre iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de triSana Aroussi
 
Exercices pascal fenni_2018
Exercices pascal fenni_2018Exercices pascal fenni_2018
Exercices pascal fenni_2018salah fenni
 
Serie recurrents & arithmetiques
Serie recurrents & arithmetiquesSerie recurrents & arithmetiques
Serie recurrents & arithmetiquesmohamed_SAYARI
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)rezgui mohamed
 

Tendances (20)

Exercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdf
 
Algorithme & structures de données Chap III
Algorithme & structures de données Chap IIIAlgorithme & structures de données Chap III
Algorithme & structures de données Chap III
 
Chap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-rechercheChap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-recherche
 
Travaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de donnéesTravaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de données
 
Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018
 
Serie2
Serie2Serie2
Serie2
 
Exercices en turbo pascal sur les nombres
Exercices en turbo pascal sur les nombresExercices en turbo pascal sur les nombres
Exercices en turbo pascal sur les nombres
 
TD sur les fonctions en Python
TD sur  les fonctions en PythonTD sur  les fonctions en Python
TD sur les fonctions en Python
 
02 correction-td smi-s3-algo2
02 correction-td smi-s3-algo202 correction-td smi-s3-algo2
02 correction-td smi-s3-algo2
 
COURS_PYTHON_22.ppt
COURS_PYTHON_22.pptCOURS_PYTHON_22.ppt
COURS_PYTHON_22.ppt
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)
 
Cours Algorithme: Tableau
Cours Algorithme: TableauCours Algorithme: Tableau
Cours Algorithme: Tableau
 
Exercices en turbo pascal sur la récursivité
Exercices en turbo pascal sur la récursivitéExercices en turbo pascal sur la récursivité
Exercices en turbo pascal sur la récursivité
 
Chapitre 1 rappel
Chapitre 1   rappelChapitre 1   rappel
Chapitre 1 rappel
 
Serie tri revision_3si
Serie tri revision_3siSerie tri revision_3si
Serie tri revision_3si
 
Chapitre iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de tri
 
Exercices pascal fenni_2018
Exercices pascal fenni_2018Exercices pascal fenni_2018
Exercices pascal fenni_2018
 
Correction
CorrectionCorrection
Correction
 
Serie recurrents & arithmetiques
Serie recurrents & arithmetiquesSerie recurrents & arithmetiques
Serie recurrents & arithmetiques
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)
 

Similaire à Cours Algorithme: Matrice

Similaire à Cours Algorithme: Matrice (20)

Tableau a deux dimensions (1).pptx
Tableau a deux dimensions (1).pptxTableau a deux dimensions (1).pptx
Tableau a deux dimensions (1).pptx
 
04 cours matrices_suites
04 cours matrices_suites04 cours matrices_suites
04 cours matrices_suites
 
Initiation r
Initiation rInitiation r
Initiation r
 
Lecture 3: Visualization and Programming
Lecture 3: Visualization and ProgrammingLecture 3: Visualization and Programming
Lecture 3: Visualization and Programming
 
Chapitre 8 - Les tableaux et les pointeurs.pdf
Chapitre 8 - Les tableaux et les pointeurs.pdfChapitre 8 - Les tableaux et les pointeurs.pdf
Chapitre 8 - Les tableaux et les pointeurs.pdf
 
Chapitre 2
Chapitre 2Chapitre 2
Chapitre 2
 
Ch5-les tableaux et les pointeurs.pdf
Ch5-les tableaux et les pointeurs.pdfCh5-les tableaux et les pointeurs.pdf
Ch5-les tableaux et les pointeurs.pdf
 
Chapitre 3 tableaux et pointeurs en C
Chapitre 3 tableaux et pointeurs en CChapitre 3 tableaux et pointeurs en C
Chapitre 3 tableaux et pointeurs en C
 
Chapitre3TableauxEnCppV2019
Chapitre3TableauxEnCppV2019Chapitre3TableauxEnCppV2019
Chapitre3TableauxEnCppV2019
 
Chap 4 déterminant
Chap 4 déterminantChap 4 déterminant
Chap 4 déterminant
 
Tp 2 vecteur et matrice
Tp 2 vecteur et matriceTp 2 vecteur et matrice
Tp 2 vecteur et matrice
 
Matlab Travaux Pratique
Matlab Travaux Pratique Matlab Travaux Pratique
Matlab Travaux Pratique
 
Ch8 correction exercices (1)
Ch8 correction exercices (1)Ch8 correction exercices (1)
Ch8 correction exercices (1)
 
Matlab by Prof.Keang Sè Pouv
Matlab by Prof.Keang Sè PouvMatlab by Prof.Keang Sè Pouv
Matlab by Prof.Keang Sè Pouv
 
Chap 3 matrice
Chap 3 matriceChap 3 matrice
Chap 3 matrice
 
Tp2 matlab
Tp2 matlab Tp2 matlab
Tp2 matlab
 
Chapitre3 tableauxcpp
Chapitre3 tableauxcppChapitre3 tableauxcpp
Chapitre3 tableauxcpp
 
Les vecteurs seconde2020.pptx
Les vecteurs seconde2020.pptxLes vecteurs seconde2020.pptx
Les vecteurs seconde2020.pptx
 
Correction td2
Correction td2Correction td2
Correction td2
 
Calcul scientifique avec python Numpy
Calcul scientifique avec python NumpyCalcul scientifique avec python Numpy
Calcul scientifique avec python Numpy
 

Dernier

Calendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avrilCalendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avrilfrizzole
 
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...Unidad de Espiritualidad Eudista
 
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfBibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfAtelier Canopé 37 - Tours
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfbdp12
 
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfBibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfAtelier Canopé 37 - Tours
 
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24BenotGeorges3
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneTxaruka
 
M2i Webinar - CPF 2024 : une stratégie pour booster les performances RH
M2i Webinar - CPF 2024 : une stratégie pour booster les performances RHM2i Webinar - CPF 2024 : une stratégie pour booster les performances RH
M2i Webinar - CPF 2024 : une stratégie pour booster les performances RHM2i Formation
 
Aux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècleAux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècleAmar LAKEL, PhD
 
0234567778999876554345678898765566.15.ppt
0234567778999876554345678898765566.15.ppt0234567778999876554345678898765566.15.ppt
0234567778999876554345678898765566.15.pptessiben
 
Copilot your everyday AI companion- OFFICE 365-
Copilot your everyday AI companion- OFFICE 365-Copilot your everyday AI companion- OFFICE 365-
Copilot your everyday AI companion- OFFICE 365-Majida Antonios, M.Ed.
 

Dernier (12)

Calendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avrilCalendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avril
 
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...
 
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfBibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
 
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfBibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
 
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienne
 
Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024
 
M2i Webinar - CPF 2024 : une stratégie pour booster les performances RH
M2i Webinar - CPF 2024 : une stratégie pour booster les performances RHM2i Webinar - CPF 2024 : une stratégie pour booster les performances RH
M2i Webinar - CPF 2024 : une stratégie pour booster les performances RH
 
Aux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècleAux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècle
 
0234567778999876554345678898765566.15.ppt
0234567778999876554345678898765566.15.ppt0234567778999876554345678898765566.15.ppt
0234567778999876554345678898765566.15.ppt
 
Copilot your everyday AI companion- OFFICE 365-
Copilot your everyday AI companion- OFFICE 365-Copilot your everyday AI companion- OFFICE 365-
Copilot your everyday AI companion- OFFICE 365-
 

Cours Algorithme: Matrice

  • 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 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
  • 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).