5 LES TABLEAUX ASD1
LES TABLEAUX
I. Introduction
Souvent en programmation, on a besoin d’utiliser un grand nombre de variables de même
type ce qui rend impossible leurs déclaration comme simple variables. Il existe une autre
structure de données mieux adaptée pour résoudre de ce genre de problème. Les tableaux
sont des structures de données complexes qui contiennent un ensemble d’éléments de
même type. Un tableau est une variable qui regroupe un nombre connu d’élément de même
type qui doivent être fixés lors de sa déclaration.
II. Tableau à une dimension
1. Définition
Un tableau à une dimension, appelé aussi vecteur, est une structure de données formée de
données de même type pouvant être accédé avec un indice. Il nous permet de manipuler
plusieurs valeurs en utilisant un seul nom de variable.
Pour définir un tableau, il faut préciser :
L'identificateur du tableau (son nom)
Le type des indices (entier)
Le type des éléments du tableau (composants)
2. Notations
Dans tous les langages, le traducteur (compilateur ou interpréteur) doit nécessairement
connaitre le nombre d’éléments d’un tableau (sa taille). Cette information lui permet de
réserver l'emplacement mémoire correspondant. Généralement, il n’est pas possible de
changer la taille d’un tableau après la déclaration (dépend du langage de programmation).
De même, comme pour une variable, il faut préciser quel est le type d'un tableau et donc le
type de tous ses éléments.
1|Page
5 LES TABLEAUX ASD1
Lors de la déclaration, le tableau est créé, mais les composants n'ont encore aucune valeur.
On dit qu'ils ne sont pas initialisés. Un tableau peut être déclaré en précisant le nombre
d’élément (taille), ou la valeur du premier indice (indice_début) et la valeur du dernier indice
(indice_fin) de la manière suivante :
<Nom_tableau> : Tableau[<taille>] de <type>
<Nom_tableau> : Tableau[<indice_début..indice_fin>] de <type>
Remarque
La manière de déclarer un tableau et l’indice du premier élément dépendent du langage de
programmation utilisé. Par exemple, le langage C exige le commencement des indices par
zéro donc le dernier élément possède un indice est égale à taille-1.
Exemple
Notes : Tableau[20] de réels déclare un tableau de 20 réels nommé « Notes »
Tab : Tableau*1..5+ d’entiers déclare un tableau de 5 entiers
Dans un tableau, un élément est identifié par sa position ce qui traduit l’accès directe. Un
élément du tableau peut être considéré comme une variable qu’on peut utiliser dans des
expressions, changer sa valeur par des affectations, ou l’utiliser dans des opérations de
lecture écriture. Pour accéder à un élément d’un tableau, il faut préciser l’indice de
l’élément dans le tableau :
<Nom_tableau> [<indice>]
Il faut que l’indice soit dans la plage des éléments du tableau. Il peut être un entier, une
variable entière, ou une expression.
Exemple
Notes[5]15.5 mettre la valeur « 15.5 » dans l’élément 5
Notes[i]11 mettre la valeur « 11 » dans l’élément ayant la valeur de i
2|Page
5 LES TABLEAUX ASD1
3. Opérations sur les tableaux
a. Affectation
L’affectation se traduit par la recopie d’un tableau dans un autre. Les deux tableaux doivent
évidemment avoir le même type de composants et d’indice ainsi que la même taille. En
algorithmique, il est possible d’affecter directement un tableau dans un autre mais cette
opération peut être interdite dans certain langage de programmation (comme le langage C).
Ainsi, il faut faire une affectation des éléments un à un.
b. Saisie des éléments d’un tableau
Soit l’algorithme suivant qui permet de remplir un tableau de 5 entiers. On considère que
l’indice du premier élément est zéro pour faciliter la traduction en langage C.
Algorithme SaisieTab
Tab : Tableau[5] d’entiers
i: entier
Début
Pour i de 0 à 4
Ecrire("Donner l’élément n°",i," :")
Lire(Tab[i])
Fin pour
Fin
c. Affichage des éléments d’un tableau
Algorithme AffichageTab
Tab : Tableau[3] d’entiers
i: entier
Début
Tab[0]3
Tab[1]2
Tab[2]10
Pour i de 0 à 2
Ecrire("l’élément n°",i," =",Tab[i])
Fin pour
Fin
Exercice n°1
Ecrire un algorithme qui saisit un tableau de 10 entiers puis affiche la somme de ses
éléments.
3|Page
5 LES TABLEAUX ASD1
Algorithme SommeTab
Tab : Tableau[10] d’entiers
i, som: entier
Début
Pour i de 0 à 9
Ecrire("Donner l’élément n°",i," :")
Lire(Tab[i])
Fin pour
som0
Pour i de 0 à 9
somsom+Tab[i]
Fin pour
Ecrire("La somme est :",som)
Fin
Exercice n°2
Ecrire un algorithme qui saisit un tableau de 10 entiers puis affiche le nombre d’éléments
ayant une valeur nulle :
Algorithme NbElemTab
Tab : Tableau[10] d’entiers
i, nb: entier
Début
Pour i de 0 à 9
Ecrire("Donner l’élément n°",i," :")
Lire(Tab[i])
Fin pour
nb0
Pour i de 0 à 9
Si Tab[i]=0 alors
nbnb+1
Fin si
Fin pour
Ecrire("Le nombre d’éléments nuls est :",nb)
Fin
Exercice n°3
Ecrire un algorithme qui saisit un tableau de 5 entiers puis affiche la valeur la plus petite :
4|Page
5 LES TABLEAUX ASD1
Algorithme PetitTab
Tab : Tableau[5] d’entiers
i, p: entier
Début
Pour i de 0 à 4
Ecrire("Donner l’élément n°",i," :")
Lire(Tab[i])
Fin pour
pTab[0]
Pour i de 1 à 4
Si Tab[i]<p alors
p Tab[i]
Fin si
Fin pour
Ecrire("La valeur la plus petite est :",p)
Fin
III. Tableau à deux dimensions
Un tableau à deux dimensions est un tableau composé d’éléments de même type et ayant
deux indices qui permettent d’identifier un élément. On peut le simuler à une matrice qui
possède des lignes et des colonnes. Donc pour identifier un élément, il faut donner l’indice
de la ligne et l’indice de la colonne.
Un tableau à deux dimensions est déclaré de la manière suivante :
<Nom_tableau> : Tableau[<taille1>] [<taille2>] de <type>
Exemple
Mat : Tableau[10][5] de réels une matrice de 10 lignes et 5 colonnes de réels
Pour accéder à un élément d’un tableau à deux dimensions, il faut mentionner les indices de
l’élément à utiliser :
<Nom_tableau>[<indice1>][<indice2>]
Exemple
Mat[1][2]10
Mat[1][2] Mat[1][2]+5
5|Page
5 LES TABLEAUX ASD1
Exercice n°4
On veut écrire un algorithme qui saisit une matrice d’entiers composée de 3lignes et 4
colonnes :
Algorithme SaisieMat
Mat : Tableau[3][4] d’entiers
i, j: entier
Début
Pour i de 0 à 2
Pour j de 0 à 3
Ecrire("Mat[",i,",",j,"]:")
Lire(Mat[i][j])
Fin pour
Fin pour
Fin
Exercice n°5
On veut écrire un algorithme qui initialise à zéro une matrice d’entiers composée de 2 lignes
et 3 colonnes :
Algorithme InitMat
Mat : Tableau[2][3] d’entiers
i, j: entier
Début
Pour i de 0 à 1
Pour j de 0 à 2
Mat[i][j]0
Fin pour
Fin pour
Fin
6|Page