Vous êtes sur la page 1sur 23

Chapitre 5 :

Les tableaux
Objectif

 Développerdes algorithmes de traitement


de tableaux.
5.1- Introduction

 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.
 Pour cela, ilfaut conserver les notes en mémoire afin
qu’elles soient accessibles durant l’exécution du
programme.
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 variable par note ;
 iln’existe aucun lien entre ces différentes valeurs. Or, dans
certains 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érerchaque note par ce nom suivi entre crochets d’un
numéro entre 1 et 30 : Tnote[1], Tnote[2], ... Tnote[30].
5.2- Tableaux unidimensionnels

 Un tableau à une dimension, appelé́ aussi vecteur, est


une structure de données constituée d’un nombre fini
d’éléments de même type et directement accessibles par
leurs indices ou indexes.
5.2.1- Déclaration d’un tableau

 Pour définir une variable de type tableau, il faut


préciser :
 le nom (identifiant du tableau)
 l’intervalle d’indices (généralement de type entier ou
caractère)
 le type des éléments (entier, réel, caractère, etc.)

 on note :
Variables
Nom_tab : Tableau [PremInd..DernInd] de Type_éléments
- le nom (identifiant du tableau)
- l’indice (généralement de type entier ou caractère)
Exemple
- le type des éléments (entier, réel, caractère, etc.)
on note :
Variables Tnote : Tableau [1..30] de réel
Nom_tab : Tableau [PremInd..DernInd] de Type_éléments

Exemple
 Schématiquement, ce tableau peut être représenté comme suit:
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
Remarque
Il est également possible de définir un type tableau comme dans
l’exemple suivant :
Remarque
 Il est également possible de définir un type tableau
comme dans l’exemple suivant :

Constantes
n = 10
Types
Tab = Tableau[1..n] de Entier
Variables
T : Tab
7.2.2. Identification d’un élément du
tableau
 Un élément dans un tableau est identifié de la façon suivante :
Nom_Tab [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.
 D’une façon générale, T[i] désigne le ième élément du tableau T.
 L’indice i peut être une valeur, une variable ou une expression dont
la valeur appartient à l’intervalle des indices.
5.2.3- 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 grâce à une itération :
 Exemple:
Algorithme remplir
Constantes
n=20
Variables
T : Tableau [1..n] d’entier
i : Entier
Début
Pour i de 1 à n Faire
Ecrire(”Entrer un entier : ”)
Lire(T[i])
FinPour
Fin
5.2.4- Affichage des éléments d’un tableau

 L’affichage des éléments d’un tableau se fait également


élément par élément.

……
Pour i de 1 à n Faire
Ecrire(T[i])
FinPour
…..
Exercice

 Soit T un tableau contenant n éléments de type entier.


 Ecrire un algorithme nommé MinTab qui déclare le tableau T,
le remplit puis affiche le plus petit élément de ce tableau.
Solution

 On suppose initialement que le premier élément du


tableau rempli est le minimum puis on le compare à tous
les autres éléments.
 Chaque fois qu’on trouve un élément qui lui est inferieur,
ce dernier devient le minimum.
Algorithme MinTab
Constantes
N : Entier = 30
Variables
T : tableau [1..N] d’ Entier
min, i : Entier
Début
Pour i de 1 à N Faire
Ecrire(”Entrer un entier : ”)
Lire(T[i])
FinPour
min ← T[1]
Pour i de 2 à n Faire
Si (T[i] < min) Alors min ← T[i] FinSi
FinPour
Ecrire(”Le plus petit entier du tableau est: ”,min)
Fin
devient nul. A chaque itération, p est au moins divisé par 2. On est donc
certain d’obtenir le résultat en au plus i itérations tel que n = 2 i. D’où
i=log2n (fonction inverse).
5.3- Tableaux multidimensionnels
À titre d’exemple, si le tableau trié contient 1024 éléments, il faudra au
plus 1025 itérations avec l’algorithme séquentiel et au plus 10 avec
l’algorithme dichotomique.
 Les tableaux multidimensionnels sont des tableaux qui
I I Icontiennent
. Tableaux multidimensionnels
des tableaux.
LesPar
 exemple,
tableaux le tableau bidimensionnel
multidimensionnels (3 contiennent
sont des tableaux qui lignes et 4descolonnes)
suivant
tableaux. Parest en fait
exemple, un tableau
le tableau comportant
bidimensionnel 3 et
(3 lignes éléments,
4 colonnes)chacun
suivant est eneux
d’entre fait étant
un tableau
un comportant
tableau de3 éléments, chacun d’entre eux
4 éléments:
étant un tableau de 4 éléments :

1 2 3 4
1
2
3
5.3- Tableaux multidimensionnels

 Cette matrice peut être définie de la façon suivante :

Types
Mat : Tableau[1..3,1..4] de Réel
Variables
Matrice : Mat
certain d’obtenir le résultat en au plus i itérations tel que n = 2 . D’où
i=log2n (fonction inverse).
 Chaque élément de la matrice est repéré par
À titre
deux si le :tableau trié contient 1024 éléments, il faudra au
indices
d’exemple,
plus 1025 itérations avec l’algorithme séquentiel et au plus 10 avec
 le premier
l’algorithme indique correspond au numéro de la ligne
dichotomique.
 le second
I I I . Tableaux indique correspond au numéro de la colonne.
multidimensionnels

Les tableaux multidimensionnels sont des tableaux qui contiennent des


 Ainsi,
tableaux. Par Matrice[2,4] désigne l’élément
exemple, le tableau bidimensionnel (3 lignes et 4situé à la
colonnes)
suivant est en fait un tableau comportant 3 éléments, chacun d’entre eux
étant2è
unm e ligne
tableau et la 4è
de 4 éléments : me colonne.

1 2 3 4
1
2
3
5.3.1- Remplissage d’un tableau à deux
dimensions
 Le remplissage d’un tableau bidimensionnel à n lignes et
m colonnes se fait à peu près de la même façon qu’un
tableau unidimensionnel.

 Seulement, il est nécessaire d’utiliser deux boucles


correspondant chacune à l’indice d’une dimension :
Algorithme remplir
Constantes
n: entier = 5
m: entier = 10
Types
Mat : Tableau [1..n, 1..m] d’entier
Variables
i, j : entier
Matrice : Mat
Début
Pour i de 1 à n Faire
Pour j de 1 à m Faire
Ecrire(”Entrer un entier :”)
Lire(Matrice[i,j])
FinPour
FinPour
Fin
Leçon 7 : Les tableaux

Exercice d’application :
Transposition d’une
I I I .2. Transposition matrice
d une carrée
matrice carrée

Une matrice carrée est une matrice à n lignes et n colonnes.


 Une matrice carrée est une matrice à n lignes et n colonnes.
 L’opération
L’opérationde
de transposition consiste
transposition consiste à inverser
à inverser les les lignes
lignes et lesetcolonnes
les
colonnes en effectuant
en effectuant une par
une symétrie symétrie
rapportpar à larapport à laprincipale
diagonale diagonalede la
principale
matrice. de la matrice.

Exemple
1 2 3 1 4 7
M 4 5 6 Devient 2 5 8
7 8 9 3 6 9

Procédure Transpose(Var M : Mat)


Variables
Algorithme Transpose // Transposition de le matrice
Constantes Pour i de 1 à n Faire
n:entier=5 Pour j de 1 à n Faire
Types Si (i<> j) Alors
Matrice : Tableau [1..n,1...n] d’entier x ← M[i,j]
Variables M[i,j] ← M[j,i]
M: Matrice M[j,i] ← x
i, j, x : Entier FinSI
Début FinPour
// Remplissage de la matrice // Affichage de la matrice résultat
Pour i de 1 à n Faire
Pour i de 1 à n Faire
Pour j de 1 à n Faire
Pour j de 1 à n Faire
Ecrire(”Entrer un entier :”)
Ecrire(Matrice[i,j])
Lire(Matrice[i,j])
FinPour
FinPour
FinPour
FinPour
Fin

Vous aimerez peut-être aussi