Chapitre 3 - Variables Indicées (Vecteurs Et Matrices) PDF
Chapitre 3 - Variables Indicées (Vecteurs Et Matrices) PDF
Chapitre 3 - Variables Indicées (Vecteurs Et Matrices) PDF
3.1. Introduction
Jusque là, on a vu que des variables de type simple (entier, réel, caractère, chaîne et booléen) où
chaque variable est associée à un seul espace mémoire, ne pouvant loger (ou bien contenir) qu'une
seule valeur à instant de données. Afin de représenter des données complexes comme des tableaux
de données (Tableaux statiques, vecteurs, matrices, listes, etc.) on utilise un autre type de variables :
variables indicées ou tableaux.
Exemple
Représentation d'un vecteur : soit VECT = [c1 c2 c3 c4 c5]
Ce vecteur sera représenté par le tableau (variable) VECT comme suit :
1 2 3 4 5
c1 c2 c3 c4 c5
Avec VECT[1] = c1 ; VECT[2] = c2 ; VECT[3] = c3 ; VECT[4] = c4 ; VECT[5] = c5 .
Les positions {1, 2, 3, 4, 5} représentent les indices ou indexes du tableau. Ils donnent la position
d'un élément du tableau. VECT[1], VECT[2], VECT[3], VECT[4], VECT[5] représentent les
composantes du vecteur VECT, (les éléments du tableau).
VECT[1] est la première composante du tableau VECT
VECT[2] est la deuxième composante du tableau VECT
VECT[3] est la troisième composante du tableau VECT
Etc.
2
LMD / S.T. Chapitre 3
: Variables Indicées – Le type Tableau
V2 :
1 2 3 4 5 6
On a :
V1[1] = 12.55 ; V1[2] = 25.75 ; V1[3] = 56.00 ; V1[4] = 60.25
V2[1] = 24.00; V2[2] = 38.25; V2[3] = 28.00; V2[4] = 70.25; V2[5] = 63.00 ; V2[6] = 96.25 ;
Adresses Mémoire
0000
0001
0002
…....
…....
…....
V1 0006 12.50
0007 25.75
0008 56.00
0009 60.25
3
LMD / S.T. Chapitre 3
: Variables Indicées – Le type Tableau
….... ….
….... ….
V2 0014 24.00
0015 38.25
0016 28.00
0017 70.25
0018 63.00
0018 96.25
…....
…....
Remarques :
✗ C'est pas obligatoire d'utiliser une constante pour la taille maximale de tableau ; cependant,
c'est une bonne pratique dans la programmation
✗ La plage d'indice 1 .. MAX représente l'indice du premier élément 1 et l'indice du dernier
élément MAX.
✗ C'est pas obligatoire d'utiliser toutes les composantes du tableaux, pour cela on déclare une
variable entière n qui représente la taille du tableau à utiliser. La valeur de cette variable sera
introduite au cours de l'exécution (par lecture)
Exemple :
constante const
MAX = 50 MAX = 50;
variable var
V:Tableau[1..MAX] de réel; V:Array [1..MAX] of real;
V est un tableau de 50 composantes réelles (c'est comme si on a déclaré 50 variables réelles)
4
LMD / S.T. Chapitre 3
: Variables Indicées – Le type Tableau
Exemple 2 : Lecture et écriture d'un tableau de N éléments.
algorithme LireEcrireTableau
variables program LireEcrireTableau;
V:Tableau[1..100] de réel uses wincrt;
N, i:entier var
V:Array[1..100] of real;
Début N, i:integer;
écrire('Introduire nbre d'éléments N : ') Begin
lire (N) write('Introduire nbre d'éléments N:');
écrire('Introduire V : ') read (N);
pour i:=1 à N faire
lire (V[I]) writeln('Introduire V : ');
finPour for i:=1 to N do
écrire ('Affichage de V : ') ; Read (V[I]);
pour i:=1 à N faire writeln ('Affichage du V : ') ;
écrire (V[I]) for i:=1 to N do
finPour Write (V[I]);
Fin End.
5
LMD / S.T. Chapitre 3
: Variables Indicées – Le type Tableau
À l'exécution : (RUN ou exécuter)
Introduire le nombre d'éléments N :
6
Introduire les composantes du Tableau V :
12.50 12.75 56 60.25 36.75 65
Affichage des composantes du Tableau V :
12.50 12.75 56 60.25 36.75 65
6
LMD / S.T. Chapitre 3
: Variables Indicées – Le type Tableau
Écrire (PS)
Fin Write('Le produit scalaire = ', PS);
End.
i ← 1 ; i:=1 ;
Trouve ← Faux while (i<=N) and (Trouve=false) do
TantQue (i<=N) et (Trouve=Faux) faire begin
Si V[i] = Val Alors if V[i] = Val then
Trouve ← Vrai begin
R ← i Trouve := true;
FinSi R:=i;
i ← i + 1 end ;
FinTantQue i:=i+1;
end;
Si Trouve = Vrai Alors
Écrire('La valeur ',Val,' exist.'); if Trouve = true then
Écrire('Son Rang est : ', R); begin
Sinon write('La valeur ', val, ' existe dans V');
Écrire(Val,' n''existe pas dans V.'); write('Son rang est : ', R);
FinSi end
Fin else
write(Val,' n''existe pas dans V.');
End.
7
LMD / S.T. Chapitre 3
: Variables Indicées – Le type Tableau
8
LMD / S.T. Chapitre 3
: Variables Indicées – Le type Tableau
e) L'algorithme de Tri
– Méthode de Tri Simple (Tri croissant)
Algorithme TriSimple Program TriSimple;
Variables uses wincrt;
T:Tableau[1..100] de reel var
I, J, N:entier T : Array[1..100] of real;
Z : real I, J, N : integer;
Début Z:real;
Lire (N) Begin
pour i=1 à N faire Readln(N);
Lire (T[i]) for i:=1 to n do
FinPour Read(T[i]);
9
LMD / S.T. Chapitre 3
: Variables Indicées – Le type Tableau
peut être représentée par une tableau bidimensionnels (avec deux dimensions) de trois ligne et
quatre colonnes :
A= 1 2 3 4
1 14.32 14.50 14.25 25.84
2 15.26 15.65 12.23 15.36
3 12.25 16.23 10.20 15.63
2ème Façon
:
ALGORITHME PASCAL
Type Ligne = Tableau[1..4] de reel Type Ligne = Array[1..4] of real;
Variables Var
A:Tableau[1..3] de Ligne A:Array[1..3] of Ligne;
Exemples
Une chaîne de 28 magasins, chacun comportant 4 rayons. On veut établir l'état des ventes
hebdomadaires. Ces données sont ensuite entrées dans un ordinateurs en utilisant un tableau à deux
dimensions où le premier indices repère le magasin et le second le rayon. Si VENTES est le nom du
tableau, décrire cette représentation des données.
VENTES 01 02 03 04
01 2872 805 3211 1560
02 2196 1225 2525 1477
03 3257 1017 3687 1951
…. …. …. …. ….
…. …. …. …. ….
…. …. …. …. ….
…. …. …. …. ….
28 2618 913 2333 982
Variables
VENTES : Tableau[1..28,1..4] de Entier
10
LMD / S.T. Chapitre 3
: Variables Indicées – Le type Tableau
On doit introduire le nombre de lignes n et le nombre de colonnes m.
11
LMD / S.T. Chapitre 3
: Variables Indicées – Le type Tableau
12
LMD / S.T. Chapitre 3
: Variables Indicées – Le type Tableau
nbP est le compteur des nombres positifs, nbN est le compteur des nombre négatifs et nbNul est
le compteur des nombre nuls.
13
LMD / S.T. Chapitre 3
: Variables Indicées – Le type Tableau
Pour réaliser le produit des deux matrices m1 et m2, il faut que le nombre de colonne de m1 soit
égale au nombre de ligne de m2. Le résultat est une matrice Result dont le nombre de ligne est le
même qui celui de m1 et le nombre de colonne est le même qui celui de m2.
Result(N, L) = m1(N, M) * m2 (M, L)
✗ Result est une matrice de N lignes et L colonnes
✗ m1 est une matrice de N lignes et M colonnes
✗ m2 est une matrice de N lignes et L colonnes
✗ L'élément Result[i, j] est calculé comme suit :
Result[i, j] = m1[i, 1] * m2[1, j] + m1[i, 2] * m2[2, j] + m1[i, 3] * m2[3, j] +
M
Σ m1[i, k] * m2[k, j]
…............. + m1[i, M] * m2[M, j] = k=1
14