Vous êtes sur la page 1sur 3

Chapitre III : Les tableaux

Introduction
Jusqu’ici, nous avons employé des variables pour stocker une seule valeur de type simple (primitifs).
Traiter plusieurs données (notes, températures d'un mois…) nous amène souvent à déclarer énormément de
variables, dont le traitement devient fastidieux.
La solution algorithmique à ce problème, est une structure de données non simple, mais composite, appelée
tableau

1. Les tableaux à une dimension (vecteurs)

1.1 Présentation
Un tableau à une dimension (vecteur), est une collection d'éléments ayant tous le même type (entiers, réels..)

On accède à chacun de ces éléments individuellement à l'aide d'un indice.

Le schéma ci-dessous représente un tableau à une dimension:

Éléments d'un tableau nommé T1

T1 1
12 -6 5 100 0 36 9 0 5 1 1 0 30
1 2 3 4 5 6 7 8 9 10 11 12 13

Indices (positions) T1[1]=12 , T1[2]= -6, T1[13]=30

Le tableau ci-dessus, tout comme pour les variables auparavant, porte un nom: T1

On dit qu'il est de dimension une, car ses éléments sont désignés par un seul indice.

Sa taille est n=13, car il peut contenir 13 éléments, désignés de 1 à 13.

Tous ses éléments doivent être de même type.

Chaque élément est désigné par le nom du tableau (T1), suivi de son propre indice entre crochets.
T1[9] dans l'exemple désigne l'élément n° 9 du tableau T1.

1.2 Déclaration d'un tableau


Un tableau à une dimension est déclaré de la manière citée ci-dessous, en précisant le nombre et le type de
valeurs qu’il contiendra.

Le nombre de valeurs est précisé implicitement, en précisant les bornes (min et max) des indices du tableau.

NomTableau : tableau [min..max] de TypeElementsTableau ;

Exemple:

Var
Tab : tableau [1..100] d’entiers ; //tableau de 100 éléments (entiers)
Note : tableau [1..10] de réels ; //tableau de 10 éléments (réels)

Les tableaux à une dimension (vecteurs) Présenté par: Mr Boudries Page 1


Remarques:

L'indice doit être de type ordinal, c'est à dire qu'il appartient à un ensemble fini et ordonné (entiers).

Quand on ne connaît connait pas exactement le nombre d'éléments à l'avance, il faut majorer ce nombre, quitte
à n'utiliser qu'une partie du tableau (estimer la taille maximale).

Un tableau est une structure statique: une fois déclaré de taille N, cette taille ne peut plus être changée.

Il est impossible de mettre une variable dans l'intervalle de définition du tableau (déclaration).
Mais on peut utiliser une constante définie au préalable.

1.3 Accès aux éléments d'un tableau


1) L’accès à un élément d’un tableau se fait grâce à son indice, avec la notation: Nom _tableau[indice]
L'indice doit être compris dans l'intervalle de déclaration du tableau.

Exemple:
Var T : tableau[1..6] d’entiers

T[1] = 3, T[2] = 0, T[3] = 8, T[4] = 2, T[5] = 1, T[6] = 5. T[7] et T[-1] ne sont pas définis.

2) T[i] est l’équivalent d’une variable. ( i est un entier qui représente l'indice)
elem  T[i] : permet de récupérer la valeur de l’élément indice i dans la variable elem.
T[i]  val : permet d'affecter la valeur val dans le i ème élément du tableau T.
Lire(T[i]) et Écrire(T[i]) permettent de saisir et d'afficher l'élément à l'indice i du tableau T

Exemple:
L'algorithme suivant permet de récupérer les températures pour un mois quelconque, et d'afficher la
température du 15eme jour, ainsi que la moyenne des temperatures pour ce mois.
D'après l'énoncé, nous aurons besoin d'un tableau de réels (temperatures), dont la taille sera majorée à 31 (on
ne connait pas le mois exacte, donc on ne connait pas la taille exacte du tableau, on doit majorer sa taille)

Algorithme Exmpl;
Var temp: tableau [1..31] de réel; //On déclare un tableau de réels, de taille 31
i: entier;
som, moy: réel;
Début
//Remplir le tableau sans boucle (on suppose que le mois contienne 30 jours)
Écrire(' Veillez saisir les temperatures une par une: ');
Lire ( temp[1]); Lire ( temp[2]); Lire ( temp[3]); //Ainsi de suite jusqu'à Lire( temp[30]);

//Mieux, le remplir avec une boucle


Pour i allant de 1 à 30 faire
Lire ( temp[i]);
Finpour;

//Calculer la moyenne
som0;
Pour i allant de 1 à 30 faire
somsom+temp[i];
Finpour;
moysom/30;

Écrire(' La température moyenne est: ', moy); //Afficher la moyenne


Écrire(' La température du 15eme jour est: ', temp[15]); //Afficher la température du 15eme jour
Fin.

Les tableaux à une dimension (vecteurs) Présenté par: Mr Boudries Page 2


Exercices d'application

Exercice 1:
Déclarez pour chacune des situations suivantes, le ou les tableaux qui contiendront les données du problème.

1) Notes de la matière algorithmique (contrôle 1, contrôle 2, synthèse, rattrapage)


Var note: tableau[1..4] de réels;

2) La liste des nom et prénoms d'une section de stagiaires


Var liste: tableau[1..40] de chaine; //Si on ne connait pas la taille, on doit majorer

3) Une liste qui informe sur l'amission de stagiaires, numérotés de 1 à 25 (admis ou non)
Var admission: tableau[1..25] de booléen; //Vrai veux dire admis, faux veut dire non admis

4) Les températures sur une année


Var temp: tableau[1..366] de réel; //On doit majorer à 366(possible année bissextile), et non à 365

5) La moyenne de chaque module, pour deux stagiaires (10 modules)


Var S1: tableau[1..10] réel; S2: tableau[1..10] réel;

Exercice 2:
Que fait l'algorithme suivant?

Algorithme Exo2;
Var i: entier;
T: tableau[1..20] de entier;
Début
Pour i allant de 1 à 10 faire
Lire (T[i]);
Finpour;
Pour i allant de 11 à 20 faire
T[i]0;
Finpour;
Fin.

L'algorithme déclare un tableau nommé T de 20 entiers, ensuite demande à l'utilisateur une saisie successive des 10
premiers éléments du tableau (lecture). Les 10 derniers éléments du tableau sont remplis de 0 (affectation)

Exercice 3:
Modifier l'algorithme précédent, pour qu'il affiche le nombre de 1 contenus dans le tableau (occurrences de 1)

Algorithme Exo3;
Var i,occ: entier;
T: tableau[1..20] de entier;
Début
Pour i allant de 1 à 10 faire
Lire (T[i]);
Finpour;
Pour i allant de 11 à 20 faire
T[i]0;
Finpour;
occ0;
Pour i allant de 1 à 20 faire
Si T[i]=1 alors
occocc+1;
Fsi;
Finpour;
Écrire(' Le nombre d'occurrences du 1 est: ', occ);
Fin.

Les tableaux à une dimension (vecteurs) Présenté par: Mr Boudries Page 3

Vous aimerez peut-être aussi