Chapitre 4 - Les Vecteurs Et Les Matrices
Chapitre 4 - Les Vecteurs Et Les Matrices
Chapitre 4 - Les Vecteurs Et Les Matrices
Niveaux: 1A
Equipe ALGO
Année universitaire:
2021/2022
1
Objectifs
A la fin de ce chapitre, l’étudiant sera capable de:
• Manipuler les algorithmes de tri (tri par sélection, tri à bulles, tri par insertion)
& la recherche Dichotomique
2
Problématique
Calculer la moyenne d’un nombre fini d’étudiants d’une classe, puis afficher les étudiants
par ordre de mérite : de la plus forte moyenne jusqu’à la plus faible.
Quelle solution allez-vous proposer ?
Structure répétitive: Permettra de traiter la moyenne de chaque étudiant (calcul et affichage)
L’affichage des étudiants par ordre de mérite nécessite la disponibilité de toutes les moyennes
déjà calculées.
Déclarer autant de variables moyennes que d’étudiants:
On écrira autant de blocs d’instructions que de nombre d’étudiants.
Algorithme de mauvaise qualité.
Un nom pour chaque variable.
15 12 10 9 13 20
Moyennes
Indices 1 2 3 4 5 6
Moyenne de l’élève
Utilité
✔ Un tableau est une structure de données constituée d'un nombre fini d'éléments
de même type.
✔ Facilite la gestion des données de même type, destinées au même traitement et qui
doivent être accessibles le long d'un programme.
6
Définition
● Un vecteur est une variable structurée formée d’un nombre fini de variables de
même type, qui sont appelées les éléments (ou composantes) du tableau.
● La représentation d’un tableau se fait toujours de manière contigüe (bloc d’éléments
non-séparés).
Constante Syntaxe
NMAX = 20
Type
TabEnt = Tableau [1..NMAX] d’entier
Variable
T : TabEnt
i:entier
Représentation
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
T 10 3 7 13 20 18 19 9 8 5 3 0 14 13 11 16 16 15 20 17
Algorithme Ini_Tab
Constante N = 20
Type TabEnt = Tableau [1..N] de Entier
Variable T : TabEnt
I : entier
Début
Pour I allant de 1 à N faire
T(I) 0
Fin Pour
Fin
13
Remplissage d’un tableau
Algorithme Remp_Tab
Constante N = Val
Type TabEnt = Tableau [1..N] de Entier
Variable T : TabEnt
I : entier
Début
Pour I allant de 1 à N faire
Lire(T(I))
Fin Pour
Fin
Remarque :
14
Lire(T(I)) consiste à entrer une valeur et la mémoriser dans la Ième case du tableau T : Lire (T(I)) ⬄ { Lire(X), T(I) X}
Affichage d’un tableau
Algorithme Aff_Tab
Constante N = Val
Type TabEnt = Tableau [1..N] de Entier
Variable T : TabEnt
I : entier
Début
Pour I allant de 1 à N faire
Écrire(T(I))
Fin Pour
Fin
15
Recherche Séquentielle
Chercher un élément X saisi par l’utilisateur, dans un tableau T.
Algorithme Rech_Seq
Constante N = 20
Type TabEnt = Tableau [1..N] de Entier
Variable T : TabEnt
I : entier
X : entier (* X est l’élément à chercher dans le tableau *)
Trouve : Booléen (* cette variable va nous permettre de sortir dès qu’on trouve X *)
Début
Lire(X)
I 1
Trouve Faux
Tant que ((I<=N) et (Trouve = Faux)) Faire
Si (T(I) <> X) Alors I I+1
Sinon Trouve Vrai
Fin Si
Fin Tant que
Si (Trouve = Vrai) Alors Écrire(X, ‘appartient à T’)
Sinon Écrire (X,’ne se trouve pas dans T’)
Fin Si
Fin
Recherche Séquentielle
Chercher un élément val saisi, dans un tableau T et affichage de son indice.
Algorithme Recherche
Constante N = 20
Type TabEnt = Tableau [1..N] de Entier
Variable
i, val : Entier
T: TabEnt
Début
Lire(val)
i 0
Répéter
i i+1
Jusqu’à ((T[i] = val) ou (i > n))
Si (T[i] = val) Alors
Ecrire(‘Indice = ’, i)
Sinon
Ecrire(‘Elément introuvable…’)
FinSi
Fin
Exercice d’application 1:
On dispose de deux tableaux T1 et T2 de même taille et leurs éléments de même type.
Ecrire un algorithme permettant de faire le produit de tableaux et de stocker dans un tableau T3.
1 2 3 4 5
T1 10 3 7 13 20
1 2 3 4 5
T2 2 3 5 1 2
1 2 3 4 5
T3 20 9 35 13 40
Exercice d’application 2:
Soit T un tableau contenant n éléments de type entier. Ecrire un algorithme MinTab qui retourne le plus
petit élément de ce tableau.
Algorithme MinTab
Type TabEnt = Tableau [1..20] de Entier
Variable
min, i : Entier
T: TabEnt
Début
Lire(N)
Pour i allant de 1 à N faire
Lire(T[I])
Fin Pour
min T[1]
Pour i de 2 à N Faire
Si (T[i] < min) Alors
min T[i]
FinSi
FinPour
Ecrire(‘Le plus petit élément du tableau est’, min)
Fin 19
Les tableaux Bidimensionnels
Matrices
20
Définition
Mat[1,1] 1 2 3 4 Mat[1,4]
2
Lignes
Mat[3,3]
3
4 Mat[4,4] 22
Mat[4,1]
Déclaration d’une matrice
Syntaxe
TYPE
Nom_Tab = Tableau [1..NbLigne, 1..NbColonne] de Type_Element
VARIABLE
M: Nom_Tab
i,j: entier (* i étant l’indice des lignes et j celui des colonnes *)
Type_Element : les éléments du tableau sont caractérisés par leur type (entier, réel)
Exemples :
TYPE
Mat = Tableau [1..30, 1..30] d’entier
VARIABLE
M: Mat
Déclaration d’une matrice
Exemple
M : tableau de 3 lignes et 4 colonnes
Initialisation d’une matrice
27
Remplissage d’un tableau bidimensionnel
Algorithme Remplissage
Constante
L=3
C= 4
Type Mat : Tableau [1..L, 1..C] d’entier
Variable
M : Mat
i, j : entier
Début
Pour i allant de 1 à L Faire
Pour j allant de 1 à C Faire
écrire(‘ Saisir M[‘, i, ‘, ‘, j, ‘] : ‘)
lire(M[i, j])
Fin pour
Fin pour
Fin 3
2
Affichage d’un tableau bidimensionnel
Algorithme Affichage
Constante
L=3
C= 4
Type Mat : Tableau [1..L, 1..C] d’entier
Variable
M : Mat
i, j : entier
Début
Pour i allant de 1 à L Faire
Pour j allant de 1 à C Faire
écrire(M[i, j])
Fin pour
Fin pour
Fin
3
3
Recherche d’un élément
Algorithme Rech_Matrice
Constante Nbr_Lig = Val1 (* Nombre de Lignes *)
Nbr_Col = Val2 (* Nombre de Colonnes *)
Type Matrice = Tableau [1..Nbr_Lig, 1..Nbr_Col] de Type_Élément_Matrice
Variable M : Matrice
I, J : Entier (* I étant l’indice des lignes et J celui des colonnes *)
X : Entier
Trouve : Booléen
Début
Lire(X)
I 1
Trouve Faux
Tant que (I<=Nbr_Lig) et (Trouve =Faux) Faire
J 1
Tant que (J<= Nbr_Col) et (Trouve=Faux) Faire
Si (M(I,J) = X) Alors Trouve Vrai
Sinon J J+1
Fin Si
Fin Tant que
I I+1
Fin Tant que
Si (Trouve = Vrai) Alors Écrire (X, ‘se trouve dans la matrice’)
Sinon Écrire (X,’est inexistant dans la matrice’)
Fin Si
Fin
Exercice d’application 3
1 12 20 15
13 9 3 17
8 10 11 5
V=10
Output: 12, 20, 15, 13, 17, 11
Exercice d’application 4
Soient M1 et M2 deux matrices à 3 lignes et 4 colonnes.
On veut écrire un algorithme qui calcule la somme des éléments de la matrice
M3=M1+M2
Hypothèse : les deux matrices doivent être de même type et de même taille.
Algorithme Somme_Mat
TYPE
Mat = Tableau [1..3, 1..4] de entier
Variable
i, j : Entier
M1,M2,M3: Mat
Début
Pour i allant de 1 à 3 Faire
Pour j allant de 1 à 4 Faire
M3[i,j] M1[i,j]+ M2[i,j]
FinPour
FinPour
Fin