Vous êtes sur la page 1sur 14

Chapitre 3 : Les tableaux DUT : GI

Chapitre 3: Les Tableaux

1. Introduction :
1.1. Problématique :
Imaginons que nous voulions connaitre le nombre des étudiants ayant une
note supérieure à 12 pour une classe de 160 étudiants, d’après ce que nous avons
déjà étudiés, la seule solution consiste à déclarer 160 variables, appelées par
exemple: Note1, Note2, …, Note160 dans lesquelles les notes seront stockées.
La saisie de ces notes nécessite 160 instructions d’écriture et 160 instructions de
lecture comme suit :
Ecrire (‘’Entrer la note N°1’’)
Lire(Note1)
Ecrire (‘’Entrer la note N°2’’)
Lire(Note2)


Ecrire (‘’Entrer la note N°160’’)
Lire(Note160)
Figure 39 : 160 instructions d’écritures et de lectures.

En plus le calcul du nombre des notes supérieures à 12 se fait par une suite
de blocs de tests de 160 structures conditionnelles comme suit :
nb ← 0
Si (Note1 >12) Alors
nb←nb+1
FinSi

Si (Note160>12) Alors
nb←nb+1
FinSi
Figure 40 : 160 instructions de test.

Pr. Abderrahman CHEKRY Page 22 A.U 2020/2021


Chapitre 3 : Les tableaux DUT : GI

1.2. Solution :
Les langages de programmation nous offres la possibilité de rassembler
plusieurs variables de même type ("Note1", "Note2",..., "Note160" par exemple)
dans une seule structure de donnée appelée tableau qui facilite la manipulation de
ces variables.
1.3. Définition :
Un tableau est un ensemble de valeurs consécutives de même type désignées
par le même identificateur (nom de variable).
Il est considéré comme une structure de données simple.
2. Tableaux à une dimension :
2.1. Déclaration :
La déclaration d’un tableau se fait dans la partie déclaration des variables
comme suit :
nomTableau[Dimension]:Type
Figure 41 : Syntaxe de déclaration d’un tableau.

 Dimension (entier positif) est le nombre maximal des éléments (cases) du


tableau;
 Nous pouvons déclarer des tableaux de tous types : tableaux d'entiers, de réels,
de booléens, de caractères et de chaînes de caractères;
 Une variable entière nommée indice permet d'indiquer la position d'un élément
donné au sein du tableau pour accéder à sa valeur.

2.2. Représentation graphique :


Pour vous clarifier la notion des tableaux nous vous proposons un exemple
avec une représentation graphique (juste pour l’explication) illustré dans la figure ci-après:

Figure 42 : Représentation graphique d’un tableau.

 Ce tableau est de dimension 160, alors il contient 160 emplacements (cases);


 Chaque élément (emplacement) du tableau est repéré par son rang, appelé indice, le
premier indice du tableau est soit 0, soit 1, mais le plus souvent pour les langages de
programmation c’est l’indice 0 (c'est ce que nous allons utiliser dans ce cours);

Pr. Abderrahman CHEKRY Page 23 A.U 2020/2021


Chapitre 3 : Les tableaux DUT : GI

 Pour accéder à un élément du tableau, il suffit de préciser entre crochets l'indice de


la case contenant cet élément:
 Pour accéder au 3ème élément (valeur 11), nous écrivons: Note[2];
 Pour accéder au ième élément, nous écrivons: Note[i-1] (avec 0<i<=160).

2.3. Lecture et Ecriture:


Chaque élément d’un tableau est utilisé comme une variable, alors les
instructions de l'affectation, lecture et écriture s'appliquent aux éléments d’un
tableau comme à une variable, en plus nous pouvons utiliser les éléments du tableau
dans des expressions.
Exemples :
N←Note[1]
Figure 43 : affectation d’un élément d’un tableau à une variable.

Nous affectons la valeur du 2ème élément du tableau qui est 13,50 selon le
tableau précédent à la variable N.
Note[158] ←14
Figure 44 : affectation d’une valeur à un élément d’un tableau.

Nous modifions la valeur du 159ème élément du tableau qui est 12,75 selon le
tableau précédent par une nouvelle valeur qui est 14.
NB :
Les boucles sont le moyen le plus simple pour parcourir et traiter les
éléments d’un tableau.
Boucle de Lecture :

Pour i ← 0 a 159
Ecrire (‘’Saisir la note N°: ’’, i+1)
Lire (Note[i])
Fin Pour

Figure 45 : Lecture d’un tableau.

Boucle d’affichage :

Pour i ← 0 a 159
Ecrire (‘’La note N°’’,i+1,’’:= ’’, Note[i])
Fin Pour

Figure 46 : Affichage d’un tableau.

Pr. Abderrahman CHEKRY Page 24 A.U 2020/2021


Chapitre 3 : Les tableaux DUT : GI

Application :
Écrire un algorithme qui remplit un tableau de 160 emplacements par des notes
des étudiants entrées par l’utilisateur et affiche le contenu de ce tableau, puis calcule et
affiche le nombre des étudiants ayant une note > 12.
Solution :

Algorithme Notes

VARIABLES

Note[160] : Réel

i, Nb: Entier

Début
Pour i ← 0 a 159

Ecrire (‘’Saisir la note N°: ’’, i+1)

Lire(Note[i])

Fin Pour

Pour i ← 0 a 159

Ecrire (‘’La note N°’’,i+1,’’:= ’’, Note[i])

Fin Pour

Nb ← 0

Pour i ← 0 a 159

Si(Note[i]>12) Alors

Nb++

Fin Si

Fin Pour

Ecrire (‘’Le nombre des étudiants ayant note>12 :’’,Nb)

Fin
Figure 47 : Algorithme notes des étudiants.

Pr. Abderrahman CHEKRY Page 25 A.U 2020/2021


Chapitre 3 : Les tableaux DUT : GI

2.4. Tableaux dynamiques


Parfois au moment de la déclaration d’un tableau nous ne connaissons pas
exactement combien des éléments comportera notre tableau.
Une solution consisterait à donner une taille énorme à ce tableau, mais si la
place réservée n’est pas utilisée (gaspillage de l’espace mémoire), cela risque de
ralentir énormément l’exécution de l’algorithme et de la perturber.
La solution idéale est de déclarer un tableau sans préciser sa dimension,
puis au cours de l’algorithme nous précisons cette dimension via l’instruction Redim.
Exemple d’application de ‘’Redim’’:

Algorithme ExempleTableauRedim
Variables
Note[ ]: Réel
Nbr, i : Entier
Début
Écrire(‘’Saisir le nombre de notes:’’)
Lire(Nbr)
Redim Note[Nbr]
Pour i ← 0 A Nbr-1
Ecrire (‘’Saisir la note N°: ’’, i+1)
Lire(Note[i])
Fin Pour
Fin
Figure 48 : Exemple d’application de l’instruction « Redim ».

3. Tableaux à deux dimensions :


Il est possible de déclarer des tableaux dans lesquels les éléments sont repérés
par deux indices. Ceci est utile par exemple pour représenter des matrices.
3.1. Déclaration :
La déclaration d’un tableau à deux dimensions se fait dans la partie de la
déclaration des variables comme suit :

nomTableau[NbrLignes] [NbrColonnes]:Type
Figure 49 : Syntaxe de déclaration d’un tableau à deux dimensions.

 NbrLignes (entier positif) est le nombre maximal des lignes du tableau (la
matrice);
 NbrColonnes (entier positif) est le nombre maximal des colonnes du tableau;
 Deux variables entières nommées indices qui permettent d'indiquer la position
d'un élément donné au sein de la matrice pour déterminer sa valeur.

Pr. Abderrahman CHEKRY Page 26 A.U 2020/2021


Chapitre 3 : Les tableaux DUT : GI

3.2. Représentation graphique :


Soit un tableau de dimension 2 lignes et 3 colonnes :
Algorithme ExempleTableau2Dim
Variables
M[2][3]: Réel
Début
M[0][0] ← 16
M[0][1] ← 13,5
M[0][2] ← 11
M[1][0] ← 17
M[1][1] ← 12,25
M[1][2] ← 13
Fin
Figure 50 : Exemple tableau à deux dimensions.

Pour vous clarifier la notion des tableaux à deux dimensions nous vous proposons un
exemple avec une représentation graphique (pour l’explication) illustré dans la figure ci-après:

Figure 51 : Représentation graphique d’un tableau à deux dimensions.

 Chaque élément du tableau est repéré par deux indices qui sont : le numéro de
la ligne et le numéro de la colonne, par exemple M[1][2] vaut 13.

3.3. Lecture et Ecriture:


Chaque élément d’un tableau à deux dimensions est utilisé comme une
variable, alors les instructions de l'affectation, lecture et écriture s'appliquent à ses
éléments comme à une variable, en plus nous pouvons utiliser ses éléments dans des
expressions.

Exemples :
N← M[0][1]
Figure 52 : affectation d’un élément d’un tableau à deux dimensions à une variable.

Nous affectons la valeur de l’élément qui porte l’indice [0][1] du tableau qui
est 13,50 à la variable N.
NB :
Les boucles sont le moyen le plus simple pour parcourir et traiter les
éléments d’un tableau à deux dimensions.

Pr. Abderrahman CHEKRY Page 27 A.U 2020/2021


Chapitre 3 : Les tableaux DUT : GI

Application : Lecture d’un tableau à deux dimensions


Écrire un algorithme qui permet de remplir une matrice M (4 lignes, 5
colonnes) par des valeurs entrées par l'utilisateur.
Solution :
Algorithme LectureMatrice
Variables
M[4] [5] : Réel
i, j : Entier
Début
Pour i ← 0 A 3
Pour j ← 0 A 4
Ecrire (‘’Saisir M[’’,i+1,’’] [‘’,j+1,’’]’’)
Lire(M[i] [j])
Fin Pour
Fin Pour
Fin
Figure 53 : Lecture d’un tableau à deux dimensions.

Application : Affichage d’un tableau à deux dimensions


Écrire un algorithme qui permet d’afficher les valeurs d’une matrice M (4
lignes, 5 colonnes).
Solution :
Algorithme AffichageMatrice
Variables
M[4] [5] : Réel
i, j : Entier
Début
Pour i ← 0 A 3
Pour j ← 0 A 4
Ecrire (‘’ M[’’,i+1,’’] [‘’,j+1,’’]=’’, M[i] [j])
Fin Pour
Fin Pour
Fin
Figure 54 : Affichage d’un tableau à deux dimensions.

4. Algorithmes de recherche :
4.1. Introduction :
La recherche consiste à repérer (trouver) un élément au sein d’un tableau, dans
le cadre de ce cours nous étudierons les deux algorithmes de recherches suivants:
 Recherche séquentielle;
 Recherche dichotomique.

Pr. Abderrahman CHEKRY Page 28 A.U 2020/2021


Chapitre 3 : Les tableaux DUT : GI

4.2. Recherche séquentielle :


La recherche séquentielle consiste à parcourir les éléments d’un tableau à
partir du début (indice 0) en comparant la valeur recherchée avec les éléments
parcourus jusqu’à ce qu’une première occurrence de la valeur recherchée sera
trouvée. Le tableau sera parcouru du début jusqu’à la fin si la valeur recherchée
n’existe pas.

Exemple d’un algorithme de recherche séquentielle :


Soit N un tableau non trié contenant dix éléments :

Figure 55 : tableau non trié.

Par exemple, si nous voulons rechercher la valeur « 1 » dans le tableau N, nous


suivrions les étapes suivantes :

Figure 56 : recherche séquentielle de la valeur 1 dans le tableau N.

NB :
Nous vous demandons d’écrire un algorithme de recherche séquentielle lors
d’une séance de TD.
4.3. Recherche dichotomique :
La recherche dichotomique consiste à améliorer l’efficacité de la recherche
dans le cas où les éléments d’un tableau sont triés (au départ nous ne parcourons pas
le tableau du début jusqu'à la fin).
Le principe de fonctionnement cet algorithme consiste à découper le tableau
(diviser le nombre des éléments du tableau par 2) en deux moitiés puis rechercher la
valeur voulue dans une seule moitié.

Pr. Abderrahman CHEKRY Page 29 A.U 2020/2021


Chapitre 3 : Les tableaux DUT : GI

D’abord nous comparons la valeur recherchée avec la valeur du milieu du


tableau :
 Si la valeur recherchée est égale à la valeur du milieu alors nous affichons son
indice;
 Si la valeur recherchée est inférieur à la valeur du milieu alors nous cherchons
dans la 1ère moitié du tableau entre (Tableau[0] et Tableau[milieu-1]);
 Si la valeur recherchée est supérieure à la valeur du milieu alors nous
cherchons dans la 2ème moitié du tableau entre (Tableau[milieu+1] et
Tableau[dim-1]);
 Nous continuons le découpage jusqu’à ce que la dimension du sous tableau
devient 1.
Exemple d’un algorithme de recherche dichotomique :
Soit N un tableau trié contenant dix éléments :

Figure 57 : tableau trié.

Par exemple, si nous voulons rechercher la valeur 19 dans le tableau N nous


suivrions les étapes suivantes :

Figure 58 : recherche dichotomique de la valeur 1 dans le tableau N.

NB :
Nous vous demandons d’écrire un algorithme de recherche dichotomique lors
d’une séance de TD.

Pr. Abderrahman CHEKRY Page 30 A.U 2020/2021


Chapitre 3 : Les tableaux DUT : GI

5. Algorithmes de tri :
5.1. Introduction :
Le tri consiste à ordonner les éléments d’un tableau dans l’ordre croissant ou
décroissant afin de rendre plus efficace le traitement du tableau (Recherche,
insertion…).
Pour effectuer un tri nous utilisons les deux opérations de base suivantes :
 Comparaison: qui consiste à comparer les valeurs de deux éléments
d’un tableau afin d’identifier la plus grande ou la plus petite;
 Echange: qui consiste à permuter (échanger) les valeurs de deux
éléments d’un tableau.
Dans le cadre de ce cours nous étudierons les algorithmes de tri suivants:
 Tri par Sélection ;
 Tri par Insertion ;
 Tri à Bulles.
5.2. Tri par Sélection:
L'objectif de ce type de tri est de mettre chaque valeur du tableau dans sa
position définitive.
Pour effectuer un tri par sélection nous vous proposons les étapes suivantes :
 Nous cherchons à partir du 1er élément du tableau, la plus petite valeur
pour l'échanger avec le 1er élément;
 Nous reprenons à partir du 2ème élément, en cherchant la plus petite
valeur pour l'échanger avec le 2ème;
 Puis nous reprenons à partir du 3ème élément, en cherchant la plus petite
valeur pour l'échanger avec le 3ème;
 Nous répétons le même traitement jusqu’à arriver au dernier élément du
tableau.

Exemple d’un algorithme de tri par sélection:

Soit N un tableau non trié contenant dix éléments :

Figure 59 : tableau non trié (trie par sélection).

Pr. Abderrahman CHEKRY Page 31 A.U 2020/2021


Chapitre 3 : Les tableaux DUT : GI

La figure ci-après décrit les étapes de tri par sélection :

Figure 60 : Etapes de tri par sélection.

NB :
Nous vous demandons d’écrire un algorithme de tri par sélection lors d’une
séance de TD.
5.3. Tri par Insertion:
Ce type de tri est utilisé naturellement par les joueurs des cartes, à chaque
distribution, le joueur insère la nouvelle carte dans la bonne position par rapport
aux cartes qui sont entre ses mains.
Pour effectuer un tri par insertion nous vous proposons les étapes suivantes :
 Nous considérons le sous tableau former d’un seul élément ayant
l’indice 0 est trié, et le sous tableau former des éléments ayant les
indices de 1 à dim-1 est non trié ;
 Nous prenons le 1er élément du sous tableau non trié (indice 1) puis
nous cherchons à l’insérer dans la bonne position dans le sous
tableau trié (le nombre des éléments triés s’augmente et celui des
éléments non triés se diminue);
 Puis nous prenons le 1er élément du sous tableau non trié (indice 2) et
nous cherchons à l’insérer dans la bonne position dans le sous
tableau trié (toujours le nombre des éléments triés s’augmente et celui
des éléments non triés se diminue);
 Nous appliquons le même traitement aux autres éléments jusqu’à
placer le dernier élément du tableau dans sa bonne position, dans ce
cas (placement du dernier élément) le tableau sera trié.

Pr. Abderrahman CHEKRY Page 32 A.U 2020/2021


Chapitre 3 : Les tableaux DUT : GI

Exemple d’un algorithme de tri par insertion:

Soit N un tableau non trié contenant six éléments :

Figure 61 : tableau non trié (trie par insertion).

La figure ci-après décrit les étapes de tri par insertion :

Figure 62 : Etapes de tri par insertion.

NB :
Nous vous demandons d’écrire un algorithme de tri par insertion lors d’une
séance de TD.
5.4. Tri à Bulles:
L'objectif de ce type de tri est de déplacer les petits éléments vers la gauche et les
grands éléments vers la droite, jusqu’à ce que chaque élément du tableau soit plus
petit que celui qui le suit.
Pour effectuer un tri à bulles nous vous proposons les étapes suivantes :
 Nous parcourons le tableau à partir du 1er élément, en comparant
chaque élément avec l'élément qui le suit;
 Si deux éléments du tableau ne sont pas triés alors nous échangeons
leurs valeurs et nous continuons le parcours du tableau jusqu’au dernier
élément;

Pr. Abderrahman CHEKRY Page 33 A.U 2020/2021


Chapitre 3 : Les tableaux DUT : GI

 Nous Répétons le même traitement jusqu’à parcourir tous les


éléments du tableau sans avoir aucun échange, dans ce cas le
tableau sera trié.

Exemple d’un algorithme de tri à bulles:

Soit N un tableau non trié contenant six éléments :

Figure 63 : tableau non trié (trie à bulles).

1er parcours :

La figure ci-après décrit les étapes de tri à bulles, dans cette exemple nous
parcourons (1er parcours) tous les éléments du tableau :

Figure 64 : tri à bulles : 1er parcours du tableau, il existe des permutations.

2ème parcours :

Lors du 1er parcours nous avons des permutations effectuées, alors il faut
reprendre les étapes de tri à bulles pour un 2ème parcours en commençant à partir du 1er
élément.

Pr. Abderrahman CHEKRY Page 34 A.U 2020/2021


Chapitre 3 : Les tableaux DUT : GI

La figure ci-après décrit les étapes de tri à bulles, dans cette exemple nous
parcourons (2ème parcours) tous les éléments du tableau :

Figure 65 : tri à bulles : 2ème parcours du tableau, il existe une permutation.

3ème parcours :
Lors du 2ème parcours nous avons une permutation effectuée, alors il faut
reprendre les étapes de tri à bulles pour un 3ème parcours en commençant toujours à
partir du 1er élément.
La figure ci-après décrit les étapes de tri à bulles, dans cette exemple nous
parcourons (3ème parcours) tous les éléments du tableau :

Figure 66 : tri à bulles : 3ème parcours du tableau, pas de permutations.

Lors du 3ème parcours, aucune permutation effectuée, alors le tableau est trié.
NB :
Nous vous demandons d’écrire un algorithme de tri à bulles lors d’une séance
de TD.

Pr. Abderrahman CHEKRY Page 35 A.U 2020/2021

Vous aimerez peut-être aussi