Chapitre 4 : Vecteurs et matrices

Tableau à une dimension (vecteur)

Un tableau à une dimension (ou un vecteur) d'ordre (de cardinalité) « n » est un ensemble de « n » valeurs de même type et portant le même nom de variable. Ces valeurs sont identifiées grâce à un nombre appelé indice qui sert à repérer chaque valeur du vecteur séparément.

De ce fait, à chaque fois que nous devons désigner un élément du vecteur, nous faisons figurer le nom du vecteur, suivi de l'indice de l'élément entre deux crochets. La figure ci-dessous représente un vecteur d'entiers :

Figure 1. Illustration d'un tableau à une dimension (vecteur) de n éléments.

Une variable vecteur est déclarée en utilisant la réservation statique de la mémoire. Donc, sa taille est fixe du début jusqu'à la fin de l'exécution du programme qui contient cette variable.

Syntaxe de déclaration d'un vecteur

Un tableau à une dimension est déclaré en précisant le nombre et le type de valeurs qu'il contiendra.

SyntaxeDéclaration d'un vecteur

La déclaration d'un vecteur se fait comme suit :

1
VAR
2
Nom_tableau : TABLEAU [indice_minimum .. indice_maximum] DE type_des_éléments ;

Ou en langage C :

1
2
type_des_éléments : Nom_tableau [nombre_d'éléments];

ExempleDéclaration d'une variable vecteur

1
Tab : TABLEAU [1 .. 100] D'Entier ;
2
Note : TABLEAU [1 .. 10] DE Réel ;

Pour la variable Tab déclarée ci-dessus :

  • Le nom de la variable est Tab, il est fixe.

  • La taille de la variable est 100. Elle est fixe car la réservation utilisée est statique.

  • Le type des valeurs que contiendra la variable est Entier.

ComplémentPlus de détails

  • Lorsque nous déclarons un vecteur, nous déclarons aussi de façon implicite toutes les variables indicées qui le constituent.

  • En règle générale, l'indice minimum vaut 1. Mais dans certains langage de programmation, on utilise l'indice 0, comme indice minimum. Lorsque l'indice minimum est 1, la taille du vecteur (nombre d'éléments) est égale à la valeur de l'indice maximum.

  • Le type de l'indice doit être un type ordinal (i.e. Entier mais jamais Réel).

Manipulation d'un vecteur

Les éléments d'un vecteur sont des variables indicées qui sont utilisées exactement comme n'importe quelles autres variables classiques [1]. Autrement dit :

  • Elles peuvent faire l'objet d'une affectation.

  • Elles peuvent figurer dans une expression arithmétique ou dans une comparaison.

  • Elles peuvent être affichées et saisies.

Nous accédons aux éléments d'un tableau en utilisant la syntaxe suivante : Nom_tableau [indice], c'est la même syntaxe que nous utilisons en langage C.

ExempleIllustrations

Si Tab1  est un tableau de 10 entiers alors :

  • L'instruction Tab1 [2] <- 5  permet de mettre la valeur 5 dans la deuxième case du vecteur.

  • En considérant le cas où A est une variable de type entier, l'instruction A <- Tab1 [2] permet de mettre la valeur de la deuxième case du vecteur dans A (i.e. A <- 5).

  • LIRE (Tab1 [1]) permet de mettre l'entier saisi par l'utilisateur dans la première case du vecteur.

  • ÉCRIRE (Tab1 [2]) permet d'afficher sur l'écran la valeur de la deuxième case du tableau.

RemarqueGardez en tête !

  • Il ne faut pas confondre l'indice d'un élément et la valeur de cet élément. En d'autres termes, il ne faut pas confondre « i » avec « Tab [i] ; ».

  • De même qu'une variable possède toujours une valeur (qui peut être indéterminée), un tableau peut très bien posséder des éléments dont la valeur est indéterminée. Donc avant d'utiliser un tableau, il est donc nécessaire de l'initialiser.

ExempleRemplir et afficher un vecteur

Écrire un algorithme permettant de remplir un tableau de 10 cases d'entiers, ensuite d'afficher le contenu des cases.

1
ALGORITHME Lecture_Affichage ;
2
CONST N = 10 ;
3
VAR 
4
    Tab : TABLEAU [1..N] d'Entier; 
5
    i : Entier;
6
DÉBUT
7
   POUR i ALLANT DE 1 A N FAIRE 
8
      LIRE (Tab[i]) ;
9
  FIN POUR ; 
10
  POUR i ALLANT DE 1 A N FAIRE 
11
    ÉCRIRE (Tab[i]) ;
12
  FIN POUR ; 
13
FIN.

ExempleAdditionner les éléments de deux vecteurs

Nous disposons de deux vecteurs T1 et T2 et nous voulons réaliser la somme élément par élément des deux vecteurs. Ça consiste à additionner les éléments de même indice et les mémoriser dans un vecteur T3.

1
ALGORITHME Add_Tab ;
2
CONST M = 100;  
3
VAR 
4
 T1,T2,T3 : TABLEAU [1..M] d'Entier ; 
5
 i, N : Entier; 
6
DÉBUT 
7
 RÉPÉTER
8
  ÉCRIRE (' Donnez la taille des vecteurs');
9
  LIRE (N);
10
 JUSQU'A (N <= M) ET (N>0);   
11
 POUR i ALLANT DE  1 à N FAIRE
12
  LIRE(T1[i]) ;
13
 FIN POUR;  
14
 POUR i ALLANT DE 1 à N FAIRE 
15
  LIRE(T2[i]) ; 
16
 FIN POUR ;
17
 POUR i ALLANT DE 1 à N FAIRE
18
  T3[i] <- T1[i] + T2[i] ; 
19
 FIN POUR ; 
20
 POUR i ALLANT DE 1 à N FAIRE
21
 ÉCRIRE (T3[i]) ;
22
 FIN POUR; 
23
FIN.

ExempleRecherche séquentielle dans un vecteur

Écrire un algorithme qui recherche une valeur, lue à partir du clavier, dans un vecteur. L'algorithme doit renvoyer la position de la valeur recherchée si elle existe.

1
ALGORITHME Recherche;
2
CONT M = 20; 
3
VAR
4
 V : TABLEAU[1..M] D'Entier ; 
5
 D, i: Entier ; 
6
 Trouve : Booléen ; 
7
DÉBUT  
8
 (* remplir le vecteur V *)
9
 POUR i ALLANT DE  1 à M FAIRE
10
  LIRE(V[i]) ;
11
 FIN POUR; 
12
 (* lire la valeur recherchée *)
13
 ÉCRIRE ('Veuillez saisir la valeur recherchée') ;
14
 LIRE(D) ;
15
 (* vérifier si la valeur rechérchée existe dans le vecteur *)
16
 i <- 1 ; 
17
 Trouve <- Faux ; 
18
 TANT QUE (i <= M) et (NON Trouve) FAIRE
19
  SI (V[i] = D) ALORS
20
   Trouve <- Vrai ; 
21
  SINON
22
   i <- i + 1 ; 
23
  FIN SI; 
24
 FIN TANT QUE ;
25
 (* afficher la position de la valeur recherchée si elle existe *)
26
 SI (Trouve = Vrai) ALORS 
27
  ÉCRIRE ('La position de la valeur recherchée est : ', i) ; 
28
 SINON 
29
  ÉCRIRE ('La valeur recherchée n'existe pas dans le tableau') ;
30
 FIN SI; 
31
FIN.
  1. 1

    L. Baba-Hamed, S. Hocine. Algorithmique et structures de données : Cours et exercices avec solutions. Office des Publications Universitaires, 2006

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimerRéalisé avec Scenari (nouvelle fenêtre)