Institut Supérieur des Sciences Appliquées et de Technologie de Sousse
Algorithmique et Programmation
Chapitre 6
Les Tableaux
Enseignante : Insaf SAGAAMA Groupe : LEM-A1
Année Universitaire: 2022-2023
Introduction
Les tableaux à une dimension
2
➢ Supposons que nous avons à déterminer à partir de 30 notes fournies en entrée, le
nombre d’étudiants qui ont une note supérieure à la moyenne de la classe.
➢ Pour parvenir à un tel résultat, nous devons :
✓ Lire les 30 notes
✓ Déterminer la moyenne de la classe : m
✓ Compter combien parmi les 30 notes sont supérieures à la moyenne m.
➢ Solution 1:Utiliser 30 variables réelles nommées x1, x2, …, x30. Cette façon de faire
présente deux inconvénients :
✓ Il faut trouver un nom de variables par note ;
✓ Il n’existe aucun lien entre ces différentes valeurs. Or, dans plusieurs cas, on est
appelé à appliquer le même traitement à l’ensemble ou à une partie de ces
valeurs.
➢ Solution 2:Utiliser la notion de tableau qui consiste à :
✓ Attribuer un seul nom à l’ensemble des 30 notes, par exemple Tnote.
✓ Repérer chaque note par ce nom suivi, entre crochets, d’un numéro entre 1 et
30 : Tnote[1], Tnote[2], ..Tnote[30].
3
➢ Un tableau à une dimension ou encore unidimensionnel, appelé aussi vecteur, est
une suite de « cases » de même taille contenant des éléments d'un type donné et
directement accessibles par leurs indices ou index. Chaque élément ou composant
du tableau est accessible en lecture ou écriture.
➢ Un tableau contenant des entiers peut se représenter de la façon suivante :
❖ Déclaration d’un tableau: entier entier entier … entier entier
➢ Pour définir une variable de type tableau, il faut préciser :
✓ le nom (identifiant du tableau)
✓ l’indice (généralement de type entier)
✓ le type des éléments (entier, réel, caractère, etc.)
➢ On note: Variables
Nom_tab : Tableau [PremInd..DernInd] de Type_éléments
➢ Exemple: Tnote : Tableau[1..30] de Réel
Schématiquement, ce tableau peut être représenté comme suit : Tnote
10.5 8 …. 15
1 2 30
6
➢ Remarque: Il est également possible de définir un type tableau comme dans
l’exemple suivant : Constantes
NMAX=5
Types
Tab=Tableau[1..NMAX] de Entier
Variables
T:Tab
➢ La solution du problème précédent est la suivante :
ALGORITHME étudiant
Var Tnote : tableau [1..30] de réels
i : entier
Début
pour i de 1 à 30 faire
Lire (Tnote [i])
FinPour
Ecrire (" Voici les notes des étudiants")
pour i de 1 à 30 faire
Ecrire (Tnote[i])
FinPour
Fin 7
❖ Identification d’un élément du tableau
➢ Un élément dans un tableau est identifié de la façon suivante :
NomTab[ position de l’élément ]
➢ Cela traduit bien l’accès direct aux éléments du tableau. Ainsi, Tnote [3] désigne la
note du 3éme étudiant et d’une façon générale T[i] désigne le ième élément du
tableau T.
❖ Remplissage d’un tableau
➢ Un tableau peut être rempli élément par élément à l’aide d’une série d’affectations
T[1] Valeur 1
T[2] Valeur 2
….
T[n] Valeur n
➢ Il est également possible de lire les éléments du tableau à partir du clavier comme
dans l’algorithme suivant: ALGORITHME Remplir
Constante N=Val
Type TabEnt : Tableau [1..N] de entier
Variable T : TabEnt
i : entier
Début
pour i de 1 à N faire
Ecrire ( ”Entrer un entier ”) Lire (T [i]) 8
FinPour Fin
➢ Affichage des éléments d’un tableau
➢L’affichage des éléments d’un tableau se fait également élément par élément.
ALGORITHME Afficher
Constante N=Val
Type TabEnt : Tableau [1..N] de entier
Variable T : TabEnt
i : entier
Début
pour i de 1 à N faire
Ecrire (T [i])
FinPour
Fin
➢Exercice : Soit T un tableau contenant n éléments de type entier. Ecrire l’algorithme
MinTab qui retourne le plus petit élément de ce tableau.
9
➢ Solution : On suppose initialement que le premier élément du tableau est le
minimum puis on le compare à tous les autres éléments. Chaque fois qu’on
trouve un élément qui lui est inférieur, ce dernier devient le minimum.
Algorithme MinTab
Constante N = Val
Type TabEnt = Tableau [1..N] de Entier
Variable T : TabEnt
i,m : entier
Début
m T[1]
Pour i de 2 à N Faire
Si (T[i] < m) Alors
m T[i]
FinSi
FinPour
Ecrire (‘’le minimum du tableau est :’’m)
Fin
10
❖ Insertion d’un élément dans un tableau à la case d’indice p:
➢ On vous demande de remplir n case du tableau A ensuite d’ajouter un élément à la
position d’indice p. Soit le type tab suivant :
Tab = Tableau[1..100] de entier
Algorithme Insertion Répéter
Type Tab = Tableau [1..100] de Entier Ecrire (“ Donner l‘indice de la case“)
Variable A : Tab Lire(p)
i,x,p,n : entier Jusqu’à (p<=n+1)
Début Si (p=n+1) Alors
Répéter nn+1
Ecrire (“Donner la taille du tableau“) A[n]x
Lire(n) Sinon
Jusqu’à ((n>0) ET (n<100)) Pour i de n à p [Pas -1] Faire
Pour i de 1 à n Faire A[i+1]A[i]
Ecrire(“Donner A*“,i,“+“) Lire(A[i]) FinPour
FinPour A[p]x
Ecrire (“ Donner l’élément à insérer“) FinSi
Lire(x) Fin
11
❖ Supprimer un élément à la position p:
➢ On vous demande de remplir n case du tableau A ensuite de supprimer un élément
à la position d’indice p. Soit le type tab suivant :
Tab : Tableau[1..100] de entier
Algorithme Suppression Répéter
Type Tab = Tableau [1..100] de Entier Ecrire (“ Donner l‘indice de la case à
Variable A : Tab supprimer“)
i,p : entier Lire(p)
Début Jusqu’à (p<=n)et (p>=1)
Répéter Si (p=n) Alors
Ecrire (“Donner la taille du tableau“) nn-1
Lire(n) Sinon
Jusqu’à ((n>0) ET (n<=100)) Pour i de p à n-1 Faire
Pour i de 1 à n Faire A[i]A[i+1]
Ecrire(“Donner A*“,i,“+“) FinPour
Lire(A[i]) nn-1
FinPour FinSi
Fin
10
11
➢ On dispose de deux tableaux T1 et T2 et on veut réaliser la somme. Ça consiste à
additionner les éléments de même indice et les mémoriser dans un tableau T3.
➢ Condition nécessaire : T1 et T2 de même taille et leurs éléments de même type.
Algorithme Add_Tab
Constante n = Val
Type TabEnt = Tableau [1..N] de Entier
Variable
T1, T2, T3 : TabEnt
i : entier
Début
Pour i de 1 à n Faire
T3[i] T1[i] + T2[i]
FinPour
Fin
12
➢ Pour écrire l’algorithme correspondant, on doit s’assurer que les deux tableaux
soient de même type et de même taille.
➢ La comparaison va se faire sur les éléments des deux tableaux en les prenant deux
à deux.
Algorithme Compare Si (T1[I] <> T2([I]) Alors
Constante Egal Faux
N=20 Sinon
Type I I +1
Tab_Ent = Tableau[1..N] de Entier FinSi
Variable FinTantQue
T1,T2 : Tab_Ent Si (Egal=Vrai) Alors
I : entier écrire(‘T1 et T2 sont égaux’)
Egal : Booléen Sinon
Début (* on suppose que T1 et T2 déjà écrire(‘T1 et T2 sont différents’)
remplis *) FinSi
I 1 Egal Vrai Fin
Tant que (I<=N) ET (Egal=Vrai)
Faire 15
On dispose d’un tableau d’entiers T et on veut afficher le nombre d’éléments positifs et
le nombre d’éléments négatifs contenus dans le tableau.
.
Algorithme Pos_Neg FinPour
Constante N = 20 Écrire(Nbp)
Type TabEnt = Tableau [1..N] de Entier Écrire(Nbn)
Variable T : TabEnt
I, Nbp, Nbn : entier 15
Début
Nbp 0
Nbn 0
Pour I de 1 à N Faire
Si (T[I] >= 0) Alors
Nbp Nbp + 1
Sinon
Nbn Nbn + 1
FinSi