SlideShare a Scribd company logo
1 of 15
Download to read offline
Mr Bassem Guetif L S Mhamdia 
LES algorithmes de tri 
Et de recherche 
• Manipulation des algorithmes de tri et de recherche, à savoir : 
 Tri : par sélection, à bulles et par insertion. 
 Recherche : séquentielle et dichotomique 
-1- 
Objectifs : 
A. Le tri d’un tableau : 
I. Introduction : 
Le tri est une opération qui consiste à répartir ou organiser une collection d’objets selon un ordre 
déterminé. Dans le domaine de l’informatique, il existe plusieurs méthodes de tri (algorithmes). Dans ce 
chapitre nous allons découvrir trois méthodes de tri : 
• Tri par sélection, 
• Tri à bulles, 
• Tri par insertion. 
II. Tri par sélection : 
Activité : Ecrire un programme qui permet de saisir un tableau T de n entiers, puis trier en ordre 
croissant ce tableau en utilisant la méthode de tri par sélection et afficher le résultat. 
a) Principe : Cette méthode de tri consiste à : 
1. Se pointer à la 1ère case du tableau T et de parcourir la totalité du tableau pour repérer l’indice de 
la première position du minimum, 
2. Comparer ce minimum avec T [1]. S’ils sont différents on les permute, 
3. Le sous tableau de T allant de 2 à n est à priori non trié, on applique l’étape 1 et 2 et ainsi de 
suite jusqu’à l’avant dernier élément (n-1). 
b) Exemple : 
Soit un tableau T contenant les dix éléments suivants : 
T : 12 10 0 -5 8 12 -2 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
Etape1 : Parcourir la totalité du tableau pour repérer le minimum (indice de la première position du 
minimum) et le comparer avec T [1] 
T : 12 10 0 -5 8 12 -2 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
On obtient : 
T : -5 10 0 12 8 12 -2 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
Le sous tableau allant de 2 à n est à priori non trié, on applique l’étape 1 et 2 et ainsi de suite 
jusqu’à l’avant dernier élément (n-1). 
Indice du 
minimum 
T [1]  T [4] alors permutation
Mr Bassem Guetif L S Mhamdia 
T [2]  T [7] alors permutation 
T [3]  T [10] alors permutation 
T [4]  T [10] alors permutation 
-2- 
Etape2 : 
T : -5 10 0 12 8 12 -2 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
On obtient : 
Indice du 
minimum 
T : -5 -2 0 12 8 12 10 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
Etape3 : 
T : -5 -2 0 12 8 12 10 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
On obtient : 
Indice du 
minimum 
T : -5 -2 -1 12 8 12 10 2 40 0 
1 2 3 4 5 6 7 8 9 10 
Etape4 : 
T : -5 -2 -1 12 8 12 10 2 40 0 
1 2 3 4 5 6 7 8 9 10 
On obtient : 
Indice du 
minimum 
T : -5 -2 -1 0 8 12 10 2 40 12 
1 2 3 4 5 6 7 8 9 10 
Etape5 : 
T : -5 -2 -1 0 8 12 10 2 40 12 
1 2 3 4 5 6 7 8 9 10 
Indice du 
minimum 
T [5]  T [8] alors permutation
Mr Bassem Guetif L S Mhamdia 
-3- 
On obtient : 
T : -5 -2 -1 0 2 12 10 8 40 12 
1 2 3 4 5 6 7 8 9 10 
Etape6 : 
T : -5 -2 -1 0 2 12 10 8 40 12 
1 2 3 4 5 6 7 8 9 10 
On obtient : 
Indice du 
minimum 
T : -5 -2 -1 0 2 8 10 12 40 12 
1 2 3 4 5 6 7 8 9 10 
Etape7 : 
T : -5 -2 -1 0 2 8 10 12 40 12 
1 2 3 4 5 6 7 8 9 10 
On obtient : 
Indice du 
minimum 
T : -5 -2 -1 0 2 8 10 12 40 12 
1 2 3 4 5 6 7 8 9 10 
Etape8 : 
T : -5 -2 -1 0 2 8 10 12 40 12 
1 2 3 4 5 6 7 8 9 10 
On obtient : 
T : -5 -2 -1 0 2 8 10 12 40 12 
1 2 3 4 5 6 7 8 9 10 
Etape9 : 
T : -5 -2 -1 0 2 8 10 12 40 12 
1 2 3 4 5 6 7 8 9 10 
On obtient : 
Indice du 
minimum 
Indice du 
minimum 
T [6]  T [8] alors permutation 
T [7] = T [7] alors pas de permutation 
T [8] = T [8] alors pas de permutation 
T [9]  T [10] alors permutation
Mr Bassem Guetif L S Mhamdia 
T : -5 -2 -1 0 2 8 10 12 12 40 
1 2 3 4 5 6 7 8 9 10 
Tableau de déclaration des nouveaux types 
-4- 
Remarque : 
• On est arrivé à l’élément numéro n-1, alors arrêt du traitement. 
• Nous n’avons pas besoin de traiter le dernier élément, puisque si les neuf premiers 
éléments sont triés alors automatiquement le dernier sera le plus grand et par conséquent il 
se trouve à la bonne position. 
c) Spécifications et algorithmes du problème : 
1. Spécification du programme principale : 
• Résultat : Afficher le tableau T trié en utilisant une procédure Affiche 
• Traitements : Il faut trié le tableau T, en utilisant une procédure Tri 
• Données : Il faut remplir le tableau T et saisir la taille n, en utilisant la procédure 
Saisie 
2. Algorithme du programme principal : 
0) Début Tri_Selection 
1) Saisie (T, N) 
2) Tri (T, N) 
3) Affiche (T, N) 
4) Fin Tri_Selection 
Types 
TAB = Tableau de 100 entiers 
3. Spécification de la procédure Saisie : 
Tableau de déclaration des Objets 
Objets Type/Nature 
T 
N 
Saisie, Affiche, Tri 
TAB 
Entier 
Procédure 
• Résultat : Saisir Nf et remplir Tf 
• Traitements : Le remplissage d’un tableau est une action répétitive, ou on 
connaît le nombre de répétition qui est égale à Nf, d’où utilisation de la boucle 
POUR … FAIRE … La saisie de l’entier Nf doit être contrôlée pour ne pas saisir 
un entier négatif ou supérieur à 100. Cette procédure admet deux paramètres 
formels qui sont Nf et Tf. 
4. Algorithme de la procédure Saisie : 
0) Début procédure Saisie (VAR Tf : TAB ; VAR Nf : Entier) 
1) Répéter 
Ecrire (Donner la taille du tableau : ), Lire (Nf) 
Jusqu'à (Nf dans [1..100]) 
2) Pour i de 1 à Nf Faire 
Ecrire (Donner l’élément N°, i, : ), Lire (Tf[i]) 
Fin Pour 
3) Fin Saisie 
5. Spécification de la procédure Tri : 
Tableau de déclaration 
des Objets locaux 
Objets Type/Nature 
i Entier 
• Résultat : Trier le tableau Tf 
• Traitements : Il s’agit d’un traitement répétitif jusqu'à l’avant dernier élément du 
tableau, d’où utilisation de la boucle POUR … FAIRE …, pour chaque élément 
nous allons exécuter deux actions :
Mr Bassem Guetif L S Mhamdia 
 Action1 : Chercher la première apparition du minimum 
 Action2 : Comparer l’indice du minimum et celui de l’élément en cours, 
s’ils sont différents, alors on applique la permutation à ces deux éléments. 
Donc on fera appel à une fonction intitulée Premposmin qui retourne le premier indice du 
minimum et à une procédure intitulée Permut permettant de permuter deux éléments. 
Les paramètres formels pour cette procédure sont le tableau Tf et sa taille Nf. 
-5- 
6. Algorithme de la procédure Tri : 
0) Début procédure Tri (VAR Tf : TAB ; Nf : Entier) 
1) Pour i de 1 à Nf-1 Faire 
Pmin  Premposmin (Tf, Nf, i) 
Si i  Pmin Alors 
Permut (Tf[i], Tf[Pmin]) 
Finsi 
Fin Pour 
2) Fin Tri 
7. Spécification de la fonction Premposmin : 
• Résultat : Déterminer la première position du minimum dans un sous tableau 
• Traitements : Il s’agit d’un traitement répétitif jusqu'à le dernier élément du 
tableau, d’où utilisation de la boucle POUR … FAIRE. On doit initialiser la 
position du minimum à i puis faire le parcours du sous tableau, dés que on trouve 
un élément inférieur à ce minimum on change la position par l’indice de cet 
élément. 
Les paramètres formels de cette fonction sont Tf, Nf et pd 
8. Algorithme de la fonction Premposmin : 
0) Début fonction Premposmin (Tf : TAB ; Nf, pd : Entier) : Entier 
1) [pm  pd] Pour J de pd+1 à Nf Faire 
Si Tf[j]  Tf [pm] Alors 
Pm  j 
Finsi 
Fin Pour 
2) Premposmin  pm 
3) Fin Premposmin 
9. Spécification de la procédure Permut : 
• Résultat : Permuter deux variables entiers X et Y 
• Traitements : pour permuter deux variables, on procède généralement à utiliser 
une variable intermédiaire et faire la permutation. 
Les paramètres formels de cette procédure sont X et Y. 
10. Algorithme de la procédure Permut : 
0) Début procédure Permut (VAR X, Y : Entier) 
1) Int  X 
2) X  Y 
3) Y  Int 
4) Fin Permut 
11. Spécification de la procédure Affiche : 
• Résultat : Afficher le tableau Tf 
• Traitements : Il s’agit d’un traitement répétitif pour afficher chaque élément du 
tableau Tf , donc l’instruction d’affichage va être exécuter Nf fois, le nombre de 
répétition est connu d’avance, d’où utilisation de la boucle POUR … FAIRE… 
Les paramètres formels de cette procédure sont Tf et Nf. 
12. Algorithme de la procédure Affiche : 
0) Début procédure Affiche (Tf : TAB ; Nf : Entier) 
Tableau de déclaration 
des Objets locaux 
Objets Type/Nature 
i, Pmin 
Premposmin 
Permut 
Entier 
Fonction 
Procédure 
Tableau de déclaration 
des Objets locaux 
Objets Type/Nature 
i, pm Entier 
Tableau de déclaration 
des Objets locaux 
Objets Type/Nature 
Int Entier 
Tableau de déclaration 
des Objets locaux 
Objets Type/Nature 
i Entier
Mr Bassem Guetif L S Mhamdia 
T : 10 12 0 -5 8 12 -2 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
T : 10 0 12 -5 8 12 -2 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
T : 10 0 -5 12 8 12 -2 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
-6- 
1) Pour i de 1 à Nf Faire 
Ecrire (L’élément N°, i,  est , Tf[i]) 
Fin Pour 
2) Fin Affiche 
III. Tri à bulles : 
Activité : Ecrire un programme qui permet de saisir un tableau T de n entiers, puis trier en ordre 
croissant ce tableau en utilisant la méthode de tri à bulles et afficher le résultat. 
a) Principe : Cette méthode de tri consiste à : 
1. Comparer les éléments du tableau T deux à deux, 
2. Permuter les contenus lorsque l’ordre n’est pas respecté, 
3. Refaire les actions 1 et 2 et ainsi de suite jusqu’à avoir finalement un tableau trié. 
b) Exemple : 
Soit un tableau T contenant les dix éléments suivants : 
T : 12 10 0 -5 8 12 -2 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
Soit une variable booléenne test initialisée à vrai et qui devienne faux à chaque permutation. 
Passage1 : 
T : 12 10 0 -5 8 12 -2 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
T : 10 0 -5 8 12 12 -2 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
T : 10 0 -5 8 12 12 -2 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
T : 10 0 -5 8 12 -2 12 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
T : 10 0 -5 8 12 -2 2 12 40 -1 
1 2 3 4 5 6 7 8 9 10 
Test 
Vrai 
Test 
Faux 
Test 
Faux 
Test 
Faux 
Test 
Faux 
Test 
Faux 
Test 
Faux 
Test 
Faux 
T[1]  T[2] alors 
permutation 
Test 
Vrai 
T[2]  T[3] alors 
permutation 
T[3]  T[4] alors 
permutation 
T[4]  T[5] alors 
permutation 
T[5] = T[6] alors pas 
de permutation 
T[6]  T[7] alors 
permutation 
T[7]  T[8] alors 
permutation 
T[8]  T[9] alors pas 
de permutation
Mr Bassem Guetif L S Mhamdia 
T : 10 0 -5 8 12 -2 2 12 40 -1 
1 2 3 4 5 6 7 8 9 10 
T : 10 0 -5 8 12 -2 2 12 -1 40 
1 2 3 4 5 6 7 8 9 10 
Puisqu’on a atteint la fin du tableau et le contenu de la variable test est Faux, alors on doit 
recommencer une nouveau passage et ainsi de suite jusqu'à ce qu’on fasse un passage complet du tableau 
sans modifier le contenu de test (Vrai). 
c) Spécifications et algorithmes du problème : 
1. Spécification du programme principale : 
• Résultat : Afficher le tableau T trié en utilisant une procédure Affiche 
• Traitements : Il faut trié le tableau T, en utilisant une procédure Tri 
• Données : Il faut remplir le tableau T et saisir la taille N, en utilisant la procédure 
-7- 
Saisie 
2. Algorithme du programme principal : 
0) Début Tri_Bulle 
1) Saisie (T, N) 
2) Tri (T, N) 
3) Affiche (T, N) 
4) Fin Tri_Bulle 
3. Spécification de la procédure Tri : 
• Résultat : Trier le tableau Tf 
 Traitements : Il s’agit d’un traitement répétitif jusqu'à ce que la valeur de 
la variable test reste à vrai, d’où on utilise la structure Répéter … Jusqu'à 
Le passage du tableau est un parcours du premier élément jusqu’au dernier 
élément, d’où on utilise la boucle POUR … FAIRE, et comparer chaque deux 
éléments consécutifs, s’ils ne sont pas dans le bon ordre on fait la permutation. 
Donc on fera appel à une procédure intitulée Permut permettant de permuter 
deux éléments. 
Les paramètres formels pour cette procédure sont le tableau Tf et sa taille Nf. 
4. Algorithme de la procédure Tri : 
0) Début procédure Tri (VAR Tf : TAB ; Nf : Entier) 
1) Répéter 
Test  Vrai 
Pour i de 1 à Nf-1 Faire 
Si Tf[i]  Tf[i+1] Alors 
Permut (Tf[i], Tf[i+1]) 
Finsi 
Fin Pour 
Jusqu’à (Test = Vrai) 
Test 
Faux 
Test 
Faux 
T[9]  T[10] alors 
permutation 
Tableau de déclaration des nouveaux types 
Types 
TAB = Tableau de 100 entiers 
Tableau de déclaration des Objets 
Objets Type/Nature 
T 
N 
Saisie, Affiche, Tri 
TAB 
Entier 
Procédure 
Tableau de déclaration 
des Objets locaux 
Objets Type/Nature 
i 
Test 
Permut 
Entier 
Booléen 
Procédure
Mr Bassem Guetif L S Mhamdia 
T : 10 12 0 -5 8 12 -2 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
T : 0 10 12 -5 8 12 -2 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
T : -5 0 10 12 8 12 -2 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
-8- 
2) Fin Tri 
IV. Tri par insertion : 
Activité : Ecrire un programme qui permet de saisir un tableau T de n entiers, puis trier en ordre 
croissant ce tableau en utilisant la méthode de tri par insertion et afficher le résultat. 
a) Principe : Cette méthode de tri consiste à : 
1. Considérer que les i-1 premiers éléments du tableau T sont triés et insérer l’élément N°i dans sa 
position parmi les i-1 déjà triés, 
2. Répéter cette action jusqu'à le dernier élément du tableau T. 
NB : L’insertion se traduit par le sauvegarde de l’élément N° i dans une variable intermédiaire 
(Int), puis le décalage d’un cran à droite des éléments i-1, i-2, … jusqu'à avoir un élément inférieur à Int 
et finalement affecter le contenu de Int dans l’élément libre. 
b) Exemple : 
Soit un tableau T contenant les dix éléments suivants : 
T : 12 10 0 -5 8 12 -2 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
On commence par l’élément N°2 puisque si le tableau contient un seul élément, il est considéré 
trié. 
Etape1 : 
T : 12 10 0 -5 8 12 -2 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
On obtient : 
Etape2 : 
T : 10 12 0 -5 8 12 -2 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
On obtient : 
Etape3 : 
T : 0 10 12 -5 8 12 -2 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
On obtient : 
Etape4 : 
T : -5 0 10 12 8 12 -2 2 40 -1 
Int 
Int 
10 
Recherche de la 
position d’insertion 
de T[2] 
Int 
0 
Recherche de la 
position d’insertion 
de T[3] 
Int 
-5 
Recherche de la 
position d’insertion 
de T[4] 
Int 
8 
Recherche de la 
position d’insertion 
de T[5]
Mr Bassem Guetif L S Mhamdia 
1 2 3 4 5 6 7 8 9 10 
-9- 
On obtient : 
Etape5 : 
T : -5 0 8 10 12 12 -2 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
On obtient : 
Etape6 : 
T : -5 0 8 10 12 12 -2 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
On obtient : 
Etape7 : 
T : -5 -2 0 8 10 12 12 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
On obtient : 
Etape8 : 
T : -5 -2 0 8 10 12 12 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
On obtient : 
T : -5 0 8 10 12 12 -2 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
T : -5 0 8 10 12 12 -2 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
T : -5 -2 0 8 10 12 12 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
T : -5 -2 0 2 8 10 12 12 40 -1 
1 2 3 4 5 6 7 8 9 10 
T : -5 -2 0 2 8 10 12 12 40 -1 
1 2 3 4 5 6 7 8 9 10 
Int 
8 
Recherche de la 
position d’insertion 
de T[6] 
Int 
-2 
Recherche de la 
position d’insertion 
de T[7] 
Int 
2 
Recherche de la 
position d’insertion 
de T[8] 
Int 
2 
Recherche de la 
position d’insertion 
de T[9]
Mr Bassem Guetif L S Mhamdia 
T : -5 -2 -1 0 2 8 10 12 12 40 
1 2 3 4 5 6 7 8 9 10 
-10- 
Etape9 : 
T : -5 -2 0 2 8 10 12 12 40 -1 
1 2 3 4 5 6 7 8 9 10 
On obtient : 
c) Spécifications et algorithmes du problème : 
1. Spécification du programme principale : 
• Résultat : Afficher le tableau T trié en utilisant une procédure Affiche 
• Traitements : Il faut trier le tableau T, en utilisant une procédure Tri 
• Données : Il faut remplir le tableau T et saisir la taille N, en utilisant la procédure 
Saisie 
2. Algorithme du programme principal : 
0) Début Tri_Insertion 
1) Saisie (T, N) 
2) Tri (T, N) 
3) Affiche (T, N) 
4) Fin Tri_Insertion 
3. Spécification de la procédure Tri : 
• Résultat : Trier le tableau Tf 
 Traitements : Il s’agit d’un traitement répétitif pour tous les éléments du 
tableau, sauf le premier, d’où utilisation de la boucle POUR … FAIRE …, 
• L pour chaque élément nous allons exécuter ces actions : 
 Action1 : Chercher la position correcte de l’élément en question 
 Action2 : Le ranger dans une variable intermédiaire (Int) 
 Action3 : Décaler d’une position les éléments supérieurs a cet élément 
 Action4 : Affecter au dernier élément décalé la valeur de Int 
Les paramètres formels pour cette procédure sont le tableau Tf et sa taille Nf. 
4. Algorithme de la procédure Tri : 
0) Début procédure Tri (VAR Tf : TAB ; Nf : Entier) 
1) Pour i de 2 à Nf Faire 
Pos  1 
Tant que (Pos  i) Faire 
Int 
-1 
Recherche de la 
position d’insertion 
de T[10] 
Tableau de déclaration des nouveaux types 
Types 
TAB = Tableau de 100 entiers 
Tableau de déclaration des Objets 
Objets Type/Nature 
T 
N 
Saisie, Affiche, Tri 
TAB 
Entier 
Procédure 
Tableau de déclaration 
des Objets locaux 
Objets Type/Nature 
i, Pos, Int Entier
Mr Bassem Guetif L S Mhamdia 
Si Tf[Pos]  Tf[i] Alors 
Int  Tf[i] 
Pour j de i à Pos +1 Faire 
Tf[j]  Tf[j-1] 
Fin Pour 
Tf[pos]  Int 
-11- 
Finsi 
Pos  Pos +1 
Fin Tant que 
Fin Pour 
2) Fin Tri 
B. La recherche d’un élément dans un tableau : 
I. Introduction : 
La recherche d’un élément dans un tableau ou dans une liste de valeur est un traitement très utile 
en informatique. Parmi les méthodes de recherches, on cite : 
• La recherche séquentielle, 
• La recherche dichotomique. 
II. La recherche séquentielle : 
Activité : Ecrire un programme qui permet de saisir un tableau T de n entiers, puis vérifier si un 
entier donné X existe dans le tableau ou non en utilisant la méthode de recherche séquentielle. 
a) Principe : 
Cette méthode de recherche consiste à parcourir les éléments du tableau un par un jusqu'à trouver 
la valeur cherchée ou arriver à la fin du tableau. 
b) Exemple : 
Soit un tableau T contenant les dix éléments suivants : 
T : 12 10 0 -5 8 12 -2 2 40 -1 
1 2 3 4 5 6 7 8 9 10 
Pour X = -2 le programme affichera -2 existe dans le tableau 
Pour X = 5 le programme affichera 5 n’existe pas dans le tableau 
c) Spécifications et algorithmes du problème : 
1. Spécification du programme principale : 
• Résultat : Afficher le résultat de l’existence de X dans le tableau T en utilisant 
une procédure Affiche 
• Traitements : Il faut vérifier si X existe dans le tableau T ou non, en utilisant une 
procédure Recherche 
• Données : Il faut remplir le tableau T, saisir la taille N et la valeur a cherchée X, 
en utilisant la procédure Saisie 
2. Algorithme du programme principal : 
0) Début Recherche_Seq 
1) Saisie (T, N, X) 
2) Verif  Recherche (T, N, X) 
3) Affiche (Verif) 
4) Fin Recherche_Seq 
Tableau de déclaration des Objets 
Objets Type/Nature 
T 
N, X 
Saisie, Affiche 
Recherche 
TAB 
Entier 
Procédure 
Fonction
Mr Bassem Guetif L S Mhamdia 
Tableau de déclaration des nouveaux types 
-12- 
Types 
TAB = Tableau de 100 entiers 
3. Spécification de la procédure Saisie : 
• Résultat : Saisir Nf, Xf et remplir Tf 
• Traitements : Le remplissage d’un tableau est une action répétitive, ou on 
connaît le nombre de répétition qui est égale à Nf, d’où utilisation de la boucle 
POUR … FAIRE … La saisie de l’entier Nf doit être contrôlée pour ne pas saisir 
un entier négatif ou supérieur à 100. Cette procédure admet trois paramètres 
formels qui sont Nf, Xf et Tf. 
4. Algorithme de la procédure Saisie : 
0) Début procédure Saisie (VAR Tf : TAB ; VAR Nf, Xf : Entier) 
1) Répéter 
Ecrire (Donner la taille du tableau : ), Lire (Nf) 
Jusqu'à (Nf dans [1..100]) 
2) Pour i de 1 à Nf Faire 
Ecrire (Donner l’élément N°, i, : ), Lire (Tf[i]) 
Fin Pour 
3) Ecrire (Donner la valeur a cherchée : ), Lire (Xf) 
4) Fin Saisie 
5. Spécification de la fonction Recherche : 
• Résultat : Retourner un résultat booléen déterminant l’existence. 
• Traitements : Il s’agit de comparer Xf avec chaque élément du tableau Tf jusqu'à 
trouver la valeur ou atteindre la fin du tableau, donc utilisation d’une structure 
itérative à condition d’arrêt et au minimum on doit faire une comparaison si on 
trouve la valeur à la première case du tableau, d’où utilisation de la boucle 
REPETR … JUSQU'A 
Les paramètres formels de cette fonction sont Xf, Nf et Tf. 
6. Algorithme de la fonction Recherche : 
0) Début fonction recherche (Tf : TAB ; Nf, Xf : Entier) : Booléen 
1) [Trouve  Faux, i  1] Répéter 
Si Tf[i] = Xf Alors 
Trouve  Vrai 
Sinon 
i  i+1 
Finsi 
Jusqu’à (Trouve = Vrai) OU (i  Nf) 
2) Recherche  Trouve 
3) Fin Recherche 
7. Spécification de la procédure Affiche : 
• Résultat : Afficher un commentaire pour dire si la valeur existe dans le tableau 
ou non 
• Traitements : Il s’agit d’une structure conditionnelle suivant la valeur de Veriff, 
on affiche un commentaire 
Les paramètres formels de cette procédure sont Veriff 
8. Algorithme de la procédure Affiche : 
0) Début procédure Affiche (Veriff : Booléen) 
1) Si Veriff = vrai Alors 
Tableau de déclaration 
des Objets locaux 
Objets Type/Nature 
i Entier 
Tableau de déclaration 
des Objets locaux 
Objets Type/Nature 
i 
Trouve 
Entier 
Booléen
Mr Bassem Guetif L S Mhamdia 
Ecrire (X, existe dans le tableau) 
T : -5 -2 -1 0 2 8 10 12 12 40 
1 2 3 4 5 6 7 8 9 10 
Tableau de déclaration des nouveaux types 
-13- 
Sinon 
Ecrire (X, n’existe pas dans le tableau) 
Finsi 
2) Fin Affiche 
III. La recherche dichotomique : 
Activité : Ecrire un programme qui permet de saisir un tableau T de n entiers triés dans l’ordre 
croissant, puis vérifier si un entier donné X existe dans le tableau ou non en utilisant la méthode de 
recherche dichotomique. 
a) Principe : 
Cette méthode de recherche consiste à : 
1. Fixer le début (Deb) et la fin (Fin) du tableau, 
2. Fixer le milieu du tableau (Mil = (Fin + Deb) Div 2), 
3. Comparer X et T[Mil], Si (X  T[Mil]) alors rechercher X dans le sous tableau [Mil + 1 
… Fin] sinon si (X  T[Mil]) alors dans le tableau [Deb … Mil - 1], 
4. Répéter les étapes 1, 2 et 3 jusqu’à (X = T[Mil]) ou (Deb  Fin) 
b) Exemple : 
Soit un tableau T contenant les dix éléments suivants : 
Pour X = -2 le programme affichera -2 existe dans le tableau 
Pour X = 5 le programme affichera 5 n’existe pas dans le tableau 
c) Spécifications et algorithmes du problème : 
1. Spécification du programme principale : 
• Résultat : Afficher le résultat de l’existence de X dans le tableau T en utilisant 
une procédure Affiche 
• Traitements : Il faut vérifier si X existe dans le tableau T ou non, en utilisant une 
procédure Recherche 
• Données : Il faut remplir le tableau T, saisir la taille N et la valeur a cherchée X, 
en utilisant la procédure Saisie 
2. Algorithme du programme principal : 
0) Début Recherche_Dicho 
1) Saisie (T, N, X) 
2) Verif  Recherche (T, N, X) 
3) Affiche (Verif) 
4) Fin Recherche_ Dicho 
Types 
TAB = Tableau de 100 entiers 
3. Spécification de la procédure Saisie : 
Tableau de déclaration des Objets 
Objets Type/Nature 
T 
N, X 
Saisie, Affiche 
Recherche 
TAB 
Entier 
Procédure 
Fonction 
• Résultat : Saisir Nf, Xf et remplir Tf 
• Traitements : Le tableau est formé par des entiers triés dans l’ordre croissant, 
donc on doit saisir l’élément N° 1 puis à chaque saisie on doit vérifié que 
l’élément est supérieur à celui qui le précède et ainsi de suite jusqu'à le dernier
Mr Bassem Guetif L S Mhamdia 
élément. C’est un traitement répétitif, la structure adéquate est la boucle POUR … 
FAIRE … 
… La saisie de l’entier Nf doit être contrôlée pour ne pas saisir un entier négatif ou 
supérieur à 100. Cette procédure admet trois paramètres formels qui sont Nf, Xf et Tf. 
-14- 
4. Algorithme de la procédure Saisie : 
0) Début procédure Saisie (VAR Tf : TAB ; VAR Nf, Xf : Entier) 
1) Répéter 
Ecrire (Donner la taille du tableau : ), Lire (Nf) 
Jusqu'à (Nf dans [1..100]) 
2) [Ecrire (Donner l’élément N°1, : ), Lire (Tf[1])] 
Pour i de 2 à Nf Faire 
Répéter 
Ecrire (Donner l’élément N°, i, : ), Lire (Tf[i]) 
Jusqu'à (Tf[i] = Tf[i – 1]) 
Fin Pour 
3) Ecrire (Donner la valeur a cherchée : ), Lire (Xf) 
4) Fin Saisie 
5. Spécification de la fonction Recherche : 
• Résultat : Retourner un résultat booléen déterminant l’existence. 
• Traitements : Il s’agit de calculer l’indice de l’élément du milieu du tableau et le 
comparer avec Xf, s’ils sont égaux alors fin du traitement si non calculer de 
nouveau le début et la fin du sous tableau ou se trouve Xf et refaire le même 
traitement jusqu'à trouver Xf ou arriver à un état ou début est supérieur à fin, donc 
utilisation d’une structure itérative à condition d’arrêt et au minimum on doit faire 
une comparaison, d’où utilisation de la boucle REPETR … JUSQU'A 
Les paramètres formels de cette fonction sont Xf, Nf et Tf. 
6. Algorithme de la fonction Recherche : 
0) Début fonction recherche (Tf : TAB ; Nf, Xf : Entier) : Booléen 
1) [Trouve  Faux, Deb  1, Fin  Nf] Répéter 
Mil  (Deb + Fin) Div 2 
Si Tf[Mil]  Xf Alors 
Fin  Mil - 1 
Sinon 
Si Tf[Mil]  Xf Alors 
Deb  Mil + 1 
Sinon 
Trouve  Vrai 
Finsi 
Jusqu’à (Trouve = Vrai) OU (Deb  Fin) 
2) Recherche  Touve 
3) Fin Recherche 
7. Spécification de la procédure Affiche : 
• Résultat : Afficher un commentaire pour dire si la valeur existe dans le tableau 
ou non 
• Traitements : Il s’agit d’une structure conditionnelle suivant la valeur de Veriff, 
on affiche un commentaire 
Les paramètres formels de cette procédure sont Veriff 
Tableau de déclaration 
des Objets locaux 
Objets Type/Nature 
i Entier 
Tableau de déclaration 
des Objets locaux 
Objets Type/Nature 
i, Deb, Fin 
Entier 
Trouve 
Booléen
Mr Bassem Guetif L S Mhamdia 
-15- 
8. Algorithme de la procédure Affiche : 
0) Début procédure Affiche (Veriff : Booléen) 
1) Si Veriff = vrai Alors 
Ecrire (X, existe dans le tableau) 
Sinon 
Ecrire (X, n’existe pas dans le tableau) 
Finsi 
2) Fin Affiche

More Related Content

What's hot

Serie recurrents & arithmetiques
Serie recurrents & arithmetiquesSerie recurrents & arithmetiques
Serie recurrents & arithmetiques
mohamed_SAYARI
 
éNoncés+corrections bac2009
éNoncés+corrections bac2009éNoncés+corrections bac2009
éNoncés+corrections bac2009
Morom Bil Morom
 
Serie algos approximationx
Serie algos approximationxSerie algos approximationx
Serie algos approximationx
mohamed_SAYARI
 
Serie tri revision_3si
Serie tri revision_3siSerie tri revision_3si
Serie tri revision_3si
Riadh Harizi
 
Les algorithmes recurrents
Les algorithmes recurrentsLes algorithmes recurrents
Les algorithmes recurrents
mohamed_SAYARI
 
Exercices en langage c
Exercices en langage cExercices en langage c
Exercices en langage c
Daoua Lotfi
 

What's hot (20)

Récursivité
RécursivitéRécursivité
Récursivité
 
Cours Algorithme: Matrice
Cours Algorithme: MatriceCours Algorithme: Matrice
Cours Algorithme: Matrice
 
Algorithmique programmation2018
Algorithmique programmation2018Algorithmique programmation2018
Algorithmique programmation2018
 
Exercices en turbo pascal sur les nombres
Exercices en turbo pascal sur les nombresExercices en turbo pascal sur les nombres
Exercices en turbo pascal sur les nombres
 
Sujet bac info 2013 g1, g2 et g3 avec correction
Sujet bac info 2013 g1, g2 et g3 avec correctionSujet bac info 2013 g1, g2 et g3 avec correction
Sujet bac info 2013 g1, g2 et g3 avec correction
 
Exercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdf
 
Serie recurrents & arithmetiques
Serie recurrents & arithmetiquesSerie recurrents & arithmetiques
Serie recurrents & arithmetiques
 
Recursiviteeeeeeeeee
RecursiviteeeeeeeeeeRecursiviteeeeeeeeee
Recursiviteeeeeeeeee
 
éNoncés+corrections bac2009
éNoncés+corrections bac2009éNoncés+corrections bac2009
éNoncés+corrections bac2009
 
Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en python
 
Serie algos approximationx
Serie algos approximationxSerie algos approximationx
Serie algos approximationx
 
Exercices pascal fenni_2018
Exercices pascal fenni_2018Exercices pascal fenni_2018
Exercices pascal fenni_2018
 
Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018
 
Cours algorithme: structures répétitives
Cours algorithme: structures répétitivesCours algorithme: structures répétitives
Cours algorithme: structures répétitives
 
Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivité
 
Serie tri revision_3si
Serie tri revision_3siSerie tri revision_3si
Serie tri revision_3si
 
Les algorithmes recurrents
Les algorithmes recurrentsLes algorithmes recurrents
Les algorithmes recurrents
 
Résumer arithmétique
Résumer arithmétiqueRésumer arithmétique
Résumer arithmétique
 
Exercices en langage c
Exercices en langage cExercices en langage c
Exercices en langage c
 
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de trirécursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
 

Viewers also liked

Ch5 Algorthmique Avancée - Algorithme de Tri
Ch5 Algorthmique Avancée - Algorithme de TriCh5 Algorthmique Avancée - Algorithme de Tri
Ch5 Algorthmique Avancée - Algorithme de Tri
lotfibenromdhane
 
Les algorithmes d’approximation
Les algorithmes d’approximationLes algorithmes d’approximation
Les algorithmes d’approximation
Wael Ismail
 
Ch2 Algorthmique Avancée - Récursivité
Ch2 Algorthmique Avancée - RécursivitéCh2 Algorthmique Avancée - Récursivité
Ch2 Algorthmique Avancée - Récursivité
lotfibenromdhane
 
Ch7 algorithmes NP-Copmlétude
Ch7 algorithmes NP-CopmlétudeCh7 algorithmes NP-Copmlétude
Ch7 algorithmes NP-Copmlétude
lotfibenromdhane
 
Ch3 Algorthmique Avancée - Méthodes Récursives
Ch3 Algorthmique Avancée - Méthodes RécursivesCh3 Algorthmique Avancée - Méthodes Récursives
Ch3 Algorthmique Avancée - Méthodes Récursives
lotfibenromdhane
 
Rapport groupe-travail-sur-apprentissage-en-ligne 3
Rapport groupe-travail-sur-apprentissage-en-ligne 3Rapport groupe-travail-sur-apprentissage-en-ligne 3
Rapport groupe-travail-sur-apprentissage-en-ligne 3
Riadh Harizi
 
Ch1 Algorthmique Avancée - Rappel & Notions de Base
Ch1 Algorthmique Avancée - Rappel & Notions de BaseCh1 Algorthmique Avancée - Rappel & Notions de Base
Ch1 Algorthmique Avancée - Rappel & Notions de Base
lotfibenromdhane
 

Viewers also liked (20)

Ch5 Algorthmique Avancée - Algorithme de Tri
Ch5 Algorthmique Avancée - Algorithme de TriCh5 Algorthmique Avancée - Algorithme de Tri
Ch5 Algorthmique Avancée - Algorithme de Tri
 
Coursasdch3
Coursasdch3Coursasdch3
Coursasdch3
 
Animations tris
Animations trisAnimations tris
Animations tris
 
Les algorithmes de tri
Les algorithmes de triLes algorithmes de tri
Les algorithmes de tri
 
Serie
SerieSerie
Serie
 
Mes devoirs 4 si
Mes devoirs 4 siMes devoirs 4 si
Mes devoirs 4 si
 
Les algorithmes d’approximation
Les algorithmes d’approximationLes algorithmes d’approximation
Les algorithmes d’approximation
 
Chapitre 3 Les algorithmes de recherche et de tris
Chapitre 3 Les algorithmes de recherche et de trisChapitre 3 Les algorithmes de recherche et de tris
Chapitre 3 Les algorithmes de recherche et de tris
 
Cours as dch3
Cours as dch3Cours as dch3
Cours as dch3
 
Ch2 Algorthmique Avancée - Récursivité
Ch2 Algorthmique Avancée - RécursivitéCh2 Algorthmique Avancée - Récursivité
Ch2 Algorthmique Avancée - Récursivité
 
Cats
CatsCats
Cats
 
Ch7 algorithmes NP-Copmlétude
Ch7 algorithmes NP-CopmlétudeCh7 algorithmes NP-Copmlétude
Ch7 algorithmes NP-Copmlétude
 
Ch3 Algorthmique Avancée - Méthodes Récursives
Ch3 Algorthmique Avancée - Méthodes RécursivesCh3 Algorthmique Avancée - Méthodes Récursives
Ch3 Algorthmique Avancée - Méthodes Récursives
 
Rapport groupe-travail-sur-apprentissage-en-ligne 3
Rapport groupe-travail-sur-apprentissage-en-ligne 3Rapport groupe-travail-sur-apprentissage-en-ligne 3
Rapport groupe-travail-sur-apprentissage-en-ligne 3
 
Protocols
ProtocolsProtocols
Protocols
 
Merci de répondre au question suivante
Merci de répondre au question suivanteMerci de répondre au question suivante
Merci de répondre au question suivante
 
Cours compilation
Cours compilationCours compilation
Cours compilation
 
Ch1 Algorthmique Avancée - Rappel & Notions de Base
Ch1 Algorthmique Avancée - Rappel & Notions de BaseCh1 Algorthmique Avancée - Rappel & Notions de Base
Ch1 Algorthmique Avancée - Rappel & Notions de Base
 
Algo tri
Algo triAlgo tri
Algo tri
 
GP TDI
GP TDIGP TDI
GP TDI
 

Similar to Chap04 les-algorithme-de-tri-et-de-recherche

Algo et complexite file pilezzzzzzzzzzzzzzzz.pptx
Algo et complexite file pilezzzzzzzzzzzzzzzz.pptxAlgo et complexite file pilezzzzzzzzzzzzzzzz.pptx
Algo et complexite file pilezzzzzzzzzzzzzzzz.pptx
Nabil Alami
 
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfChapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
MbarkiIsraa
 
Exos Cinematique 2008
Exos Cinematique  2008Exos Cinematique  2008
Exos Cinematique 2008
atire
 

Similar to Chap04 les-algorithme-de-tri-et-de-recherche (20)

EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
 
Cours Algorithme: Tableau
Cours Algorithme: TableauCours Algorithme: Tableau
Cours Algorithme: Tableau
 
Le tri dans un tableau en algo
Le tri dans un tableau en algoLe tri dans un tableau en algo
Le tri dans un tableau en algo
 
Correction td2
Correction td2Correction td2
Correction td2
 
Resumer sur les tris
Resumer sur les trisResumer sur les tris
Resumer sur les tris
 
Algo et complexite file pilezzzzzzzzzzzzzzzz.pptx
Algo et complexite file pilezzzzzzzzzzzzzzzz.pptxAlgo et complexite file pilezzzzzzzzzzzzzzzz.pptx
Algo et complexite file pilezzzzzzzzzzzzzzzz.pptx
 
20XX-XX.cours.complexite.powerpoint.sdd.pptx
20XX-XX.cours.complexite.powerpoint.sdd.pptx20XX-XX.cours.complexite.powerpoint.sdd.pptx
20XX-XX.cours.complexite.powerpoint.sdd.pptx
 
Fiche2 ex-sous-programme
Fiche2 ex-sous-programmeFiche2 ex-sous-programme
Fiche2 ex-sous-programme
 
Resume algorithme
Resume algorithmeResume algorithme
Resume algorithme
 
Résumé Algorithme et Programmation
Résumé Algorithme et ProgrammationRésumé Algorithme et Programmation
Résumé Algorithme et Programmation
 
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfChapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
 
Cours_3_0910_2.pdf
Cours_3_0910_2.pdfCours_3_0910_2.pdf
Cours_3_0910_2.pdf
 
Cours_3_0910.pdf
Cours_3_0910.pdfCours_3_0910.pdf
Cours_3_0910.pdf
 
Exos Cinematique 2008
Exos Cinematique  2008Exos Cinematique  2008
Exos Cinematique 2008
 
coursAlg.ppt
coursAlg.pptcoursAlg.ppt
coursAlg.ppt
 
04008 T316 Ind C Tp5
04008 T316 Ind C Tp504008 T316 Ind C Tp5
04008 T316 Ind C Tp5
 
HDJZKZOZHSGSKZIZLBZZHZNLZ JE SGSJZOKZVSHZKSKSNHSJZ
HDJZKZOZHSGSKZIZLBZZHZNLZ JE SGSJZOKZVSHZKSKSNHSJZHDJZKZOZHSGSKZIZLBZZHZNLZ JE SGSJZOKZVSHZKSKSNHSJZ
HDJZKZOZHSGSKZIZLBZZHZNLZ JE SGSJZOKZVSHZKSKSNHSJZ
 
Rapport
RapportRapport
Rapport
 
Algo3.pdf
Algo3.pdfAlgo3.pdf
Algo3.pdf
 
Cours d'algorithmique
Cours d'algorithmiqueCours d'algorithmique
Cours d'algorithmique
 

More from Riadh Harizi

35 js lyon_dassonville
35 js lyon_dassonville35 js lyon_dassonville
35 js lyon_dassonville
Riadh Harizi
 
Installing om2.x on windows xp-7-2003
Installing om2.x on windows xp-7-2003Installing om2.x on windows xp-7-2003
Installing om2.x on windows xp-7-2003
Riadh Harizi
 
25 conception-revu_par_ac
25  conception-revu_par_ac25  conception-revu_par_ac
25 conception-revu_par_ac
Riadh Harizi
 

More from Riadh Harizi (7)

4+si+technologie
4+si+technologie4+si+technologie
4+si+technologie
 
35 js lyon_dassonville
35 js lyon_dassonville35 js lyon_dassonville
35 js lyon_dassonville
 
Installing om2.x on windows xp-7-2003
Installing om2.x on windows xp-7-2003Installing om2.x on windows xp-7-2003
Installing om2.x on windows xp-7-2003
 
25 conception-revu_par_ac
25  conception-revu_par_ac25  conception-revu_par_ac
25 conception-revu_par_ac
 
Observer ts
Observer tsObserver ts
Observer ts
 
Observer ts
Observer tsObserver ts
Observer ts
 
Observer ts
Observer tsObserver ts
Observer ts
 

Recently uploaded

Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
ikospam0
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
AmgdoulHatim
 

Recently uploaded (20)

Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcours
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénients
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiques
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdfSTRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 

Chap04 les-algorithme-de-tri-et-de-recherche

  • 1. Mr Bassem Guetif L S Mhamdia LES algorithmes de tri Et de recherche • Manipulation des algorithmes de tri et de recherche, à savoir : Tri : par sélection, à bulles et par insertion. Recherche : séquentielle et dichotomique -1- Objectifs : A. Le tri d’un tableau : I. Introduction : Le tri est une opération qui consiste à répartir ou organiser une collection d’objets selon un ordre déterminé. Dans le domaine de l’informatique, il existe plusieurs méthodes de tri (algorithmes). Dans ce chapitre nous allons découvrir trois méthodes de tri : • Tri par sélection, • Tri à bulles, • Tri par insertion. II. Tri par sélection : Activité : Ecrire un programme qui permet de saisir un tableau T de n entiers, puis trier en ordre croissant ce tableau en utilisant la méthode de tri par sélection et afficher le résultat. a) Principe : Cette méthode de tri consiste à : 1. Se pointer à la 1ère case du tableau T et de parcourir la totalité du tableau pour repérer l’indice de la première position du minimum, 2. Comparer ce minimum avec T [1]. S’ils sont différents on les permute, 3. Le sous tableau de T allant de 2 à n est à priori non trié, on applique l’étape 1 et 2 et ainsi de suite jusqu’à l’avant dernier élément (n-1). b) Exemple : Soit un tableau T contenant les dix éléments suivants : T : 12 10 0 -5 8 12 -2 2 40 -1 1 2 3 4 5 6 7 8 9 10 Etape1 : Parcourir la totalité du tableau pour repérer le minimum (indice de la première position du minimum) et le comparer avec T [1] T : 12 10 0 -5 8 12 -2 2 40 -1 1 2 3 4 5 6 7 8 9 10 On obtient : T : -5 10 0 12 8 12 -2 2 40 -1 1 2 3 4 5 6 7 8 9 10 Le sous tableau allant de 2 à n est à priori non trié, on applique l’étape 1 et 2 et ainsi de suite jusqu’à l’avant dernier élément (n-1). Indice du minimum T [1] T [4] alors permutation
  • 2. Mr Bassem Guetif L S Mhamdia T [2] T [7] alors permutation T [3] T [10] alors permutation T [4] T [10] alors permutation -2- Etape2 : T : -5 10 0 12 8 12 -2 2 40 -1 1 2 3 4 5 6 7 8 9 10 On obtient : Indice du minimum T : -5 -2 0 12 8 12 10 2 40 -1 1 2 3 4 5 6 7 8 9 10 Etape3 : T : -5 -2 0 12 8 12 10 2 40 -1 1 2 3 4 5 6 7 8 9 10 On obtient : Indice du minimum T : -5 -2 -1 12 8 12 10 2 40 0 1 2 3 4 5 6 7 8 9 10 Etape4 : T : -5 -2 -1 12 8 12 10 2 40 0 1 2 3 4 5 6 7 8 9 10 On obtient : Indice du minimum T : -5 -2 -1 0 8 12 10 2 40 12 1 2 3 4 5 6 7 8 9 10 Etape5 : T : -5 -2 -1 0 8 12 10 2 40 12 1 2 3 4 5 6 7 8 9 10 Indice du minimum T [5] T [8] alors permutation
  • 3. Mr Bassem Guetif L S Mhamdia -3- On obtient : T : -5 -2 -1 0 2 12 10 8 40 12 1 2 3 4 5 6 7 8 9 10 Etape6 : T : -5 -2 -1 0 2 12 10 8 40 12 1 2 3 4 5 6 7 8 9 10 On obtient : Indice du minimum T : -5 -2 -1 0 2 8 10 12 40 12 1 2 3 4 5 6 7 8 9 10 Etape7 : T : -5 -2 -1 0 2 8 10 12 40 12 1 2 3 4 5 6 7 8 9 10 On obtient : Indice du minimum T : -5 -2 -1 0 2 8 10 12 40 12 1 2 3 4 5 6 7 8 9 10 Etape8 : T : -5 -2 -1 0 2 8 10 12 40 12 1 2 3 4 5 6 7 8 9 10 On obtient : T : -5 -2 -1 0 2 8 10 12 40 12 1 2 3 4 5 6 7 8 9 10 Etape9 : T : -5 -2 -1 0 2 8 10 12 40 12 1 2 3 4 5 6 7 8 9 10 On obtient : Indice du minimum Indice du minimum T [6] T [8] alors permutation T [7] = T [7] alors pas de permutation T [8] = T [8] alors pas de permutation T [9] T [10] alors permutation
  • 4. Mr Bassem Guetif L S Mhamdia T : -5 -2 -1 0 2 8 10 12 12 40 1 2 3 4 5 6 7 8 9 10 Tableau de déclaration des nouveaux types -4- Remarque : • On est arrivé à l’élément numéro n-1, alors arrêt du traitement. • Nous n’avons pas besoin de traiter le dernier élément, puisque si les neuf premiers éléments sont triés alors automatiquement le dernier sera le plus grand et par conséquent il se trouve à la bonne position. c) Spécifications et algorithmes du problème : 1. Spécification du programme principale : • Résultat : Afficher le tableau T trié en utilisant une procédure Affiche • Traitements : Il faut trié le tableau T, en utilisant une procédure Tri • Données : Il faut remplir le tableau T et saisir la taille n, en utilisant la procédure Saisie 2. Algorithme du programme principal : 0) Début Tri_Selection 1) Saisie (T, N) 2) Tri (T, N) 3) Affiche (T, N) 4) Fin Tri_Selection Types TAB = Tableau de 100 entiers 3. Spécification de la procédure Saisie : Tableau de déclaration des Objets Objets Type/Nature T N Saisie, Affiche, Tri TAB Entier Procédure • Résultat : Saisir Nf et remplir Tf • Traitements : Le remplissage d’un tableau est une action répétitive, ou on connaît le nombre de répétition qui est égale à Nf, d’où utilisation de la boucle POUR … FAIRE … La saisie de l’entier Nf doit être contrôlée pour ne pas saisir un entier négatif ou supérieur à 100. Cette procédure admet deux paramètres formels qui sont Nf et Tf. 4. Algorithme de la procédure Saisie : 0) Début procédure Saisie (VAR Tf : TAB ; VAR Nf : Entier) 1) Répéter Ecrire (Donner la taille du tableau : ), Lire (Nf) Jusqu'à (Nf dans [1..100]) 2) Pour i de 1 à Nf Faire Ecrire (Donner l’élément N°, i, : ), Lire (Tf[i]) Fin Pour 3) Fin Saisie 5. Spécification de la procédure Tri : Tableau de déclaration des Objets locaux Objets Type/Nature i Entier • Résultat : Trier le tableau Tf • Traitements : Il s’agit d’un traitement répétitif jusqu'à l’avant dernier élément du tableau, d’où utilisation de la boucle POUR … FAIRE …, pour chaque élément nous allons exécuter deux actions :
  • 5. Mr Bassem Guetif L S Mhamdia Action1 : Chercher la première apparition du minimum Action2 : Comparer l’indice du minimum et celui de l’élément en cours, s’ils sont différents, alors on applique la permutation à ces deux éléments. Donc on fera appel à une fonction intitulée Premposmin qui retourne le premier indice du minimum et à une procédure intitulée Permut permettant de permuter deux éléments. Les paramètres formels pour cette procédure sont le tableau Tf et sa taille Nf. -5- 6. Algorithme de la procédure Tri : 0) Début procédure Tri (VAR Tf : TAB ; Nf : Entier) 1) Pour i de 1 à Nf-1 Faire Pmin Premposmin (Tf, Nf, i) Si i Pmin Alors Permut (Tf[i], Tf[Pmin]) Finsi Fin Pour 2) Fin Tri 7. Spécification de la fonction Premposmin : • Résultat : Déterminer la première position du minimum dans un sous tableau • Traitements : Il s’agit d’un traitement répétitif jusqu'à le dernier élément du tableau, d’où utilisation de la boucle POUR … FAIRE. On doit initialiser la position du minimum à i puis faire le parcours du sous tableau, dés que on trouve un élément inférieur à ce minimum on change la position par l’indice de cet élément. Les paramètres formels de cette fonction sont Tf, Nf et pd 8. Algorithme de la fonction Premposmin : 0) Début fonction Premposmin (Tf : TAB ; Nf, pd : Entier) : Entier 1) [pm pd] Pour J de pd+1 à Nf Faire Si Tf[j] Tf [pm] Alors Pm j Finsi Fin Pour 2) Premposmin pm 3) Fin Premposmin 9. Spécification de la procédure Permut : • Résultat : Permuter deux variables entiers X et Y • Traitements : pour permuter deux variables, on procède généralement à utiliser une variable intermédiaire et faire la permutation. Les paramètres formels de cette procédure sont X et Y. 10. Algorithme de la procédure Permut : 0) Début procédure Permut (VAR X, Y : Entier) 1) Int X 2) X Y 3) Y Int 4) Fin Permut 11. Spécification de la procédure Affiche : • Résultat : Afficher le tableau Tf • Traitements : Il s’agit d’un traitement répétitif pour afficher chaque élément du tableau Tf , donc l’instruction d’affichage va être exécuter Nf fois, le nombre de répétition est connu d’avance, d’où utilisation de la boucle POUR … FAIRE… Les paramètres formels de cette procédure sont Tf et Nf. 12. Algorithme de la procédure Affiche : 0) Début procédure Affiche (Tf : TAB ; Nf : Entier) Tableau de déclaration des Objets locaux Objets Type/Nature i, Pmin Premposmin Permut Entier Fonction Procédure Tableau de déclaration des Objets locaux Objets Type/Nature i, pm Entier Tableau de déclaration des Objets locaux Objets Type/Nature Int Entier Tableau de déclaration des Objets locaux Objets Type/Nature i Entier
  • 6. Mr Bassem Guetif L S Mhamdia T : 10 12 0 -5 8 12 -2 2 40 -1 1 2 3 4 5 6 7 8 9 10 T : 10 0 12 -5 8 12 -2 2 40 -1 1 2 3 4 5 6 7 8 9 10 T : 10 0 -5 12 8 12 -2 2 40 -1 1 2 3 4 5 6 7 8 9 10 -6- 1) Pour i de 1 à Nf Faire Ecrire (L’élément N°, i, est , Tf[i]) Fin Pour 2) Fin Affiche III. Tri à bulles : Activité : Ecrire un programme qui permet de saisir un tableau T de n entiers, puis trier en ordre croissant ce tableau en utilisant la méthode de tri à bulles et afficher le résultat. a) Principe : Cette méthode de tri consiste à : 1. Comparer les éléments du tableau T deux à deux, 2. Permuter les contenus lorsque l’ordre n’est pas respecté, 3. Refaire les actions 1 et 2 et ainsi de suite jusqu’à avoir finalement un tableau trié. b) Exemple : Soit un tableau T contenant les dix éléments suivants : T : 12 10 0 -5 8 12 -2 2 40 -1 1 2 3 4 5 6 7 8 9 10 Soit une variable booléenne test initialisée à vrai et qui devienne faux à chaque permutation. Passage1 : T : 12 10 0 -5 8 12 -2 2 40 -1 1 2 3 4 5 6 7 8 9 10 T : 10 0 -5 8 12 12 -2 2 40 -1 1 2 3 4 5 6 7 8 9 10 T : 10 0 -5 8 12 12 -2 2 40 -1 1 2 3 4 5 6 7 8 9 10 T : 10 0 -5 8 12 -2 12 2 40 -1 1 2 3 4 5 6 7 8 9 10 T : 10 0 -5 8 12 -2 2 12 40 -1 1 2 3 4 5 6 7 8 9 10 Test Vrai Test Faux Test Faux Test Faux Test Faux Test Faux Test Faux Test Faux T[1] T[2] alors permutation Test Vrai T[2] T[3] alors permutation T[3] T[4] alors permutation T[4] T[5] alors permutation T[5] = T[6] alors pas de permutation T[6] T[7] alors permutation T[7] T[8] alors permutation T[8] T[9] alors pas de permutation
  • 7. Mr Bassem Guetif L S Mhamdia T : 10 0 -5 8 12 -2 2 12 40 -1 1 2 3 4 5 6 7 8 9 10 T : 10 0 -5 8 12 -2 2 12 -1 40 1 2 3 4 5 6 7 8 9 10 Puisqu’on a atteint la fin du tableau et le contenu de la variable test est Faux, alors on doit recommencer une nouveau passage et ainsi de suite jusqu'à ce qu’on fasse un passage complet du tableau sans modifier le contenu de test (Vrai). c) Spécifications et algorithmes du problème : 1. Spécification du programme principale : • Résultat : Afficher le tableau T trié en utilisant une procédure Affiche • Traitements : Il faut trié le tableau T, en utilisant une procédure Tri • Données : Il faut remplir le tableau T et saisir la taille N, en utilisant la procédure -7- Saisie 2. Algorithme du programme principal : 0) Début Tri_Bulle 1) Saisie (T, N) 2) Tri (T, N) 3) Affiche (T, N) 4) Fin Tri_Bulle 3. Spécification de la procédure Tri : • Résultat : Trier le tableau Tf Traitements : Il s’agit d’un traitement répétitif jusqu'à ce que la valeur de la variable test reste à vrai, d’où on utilise la structure Répéter … Jusqu'à Le passage du tableau est un parcours du premier élément jusqu’au dernier élément, d’où on utilise la boucle POUR … FAIRE, et comparer chaque deux éléments consécutifs, s’ils ne sont pas dans le bon ordre on fait la permutation. Donc on fera appel à une procédure intitulée Permut permettant de permuter deux éléments. Les paramètres formels pour cette procédure sont le tableau Tf et sa taille Nf. 4. Algorithme de la procédure Tri : 0) Début procédure Tri (VAR Tf : TAB ; Nf : Entier) 1) Répéter Test Vrai Pour i de 1 à Nf-1 Faire Si Tf[i] Tf[i+1] Alors Permut (Tf[i], Tf[i+1]) Finsi Fin Pour Jusqu’à (Test = Vrai) Test Faux Test Faux T[9] T[10] alors permutation Tableau de déclaration des nouveaux types Types TAB = Tableau de 100 entiers Tableau de déclaration des Objets Objets Type/Nature T N Saisie, Affiche, Tri TAB Entier Procédure Tableau de déclaration des Objets locaux Objets Type/Nature i Test Permut Entier Booléen Procédure
  • 8. Mr Bassem Guetif L S Mhamdia T : 10 12 0 -5 8 12 -2 2 40 -1 1 2 3 4 5 6 7 8 9 10 T : 0 10 12 -5 8 12 -2 2 40 -1 1 2 3 4 5 6 7 8 9 10 T : -5 0 10 12 8 12 -2 2 40 -1 1 2 3 4 5 6 7 8 9 10 -8- 2) Fin Tri IV. Tri par insertion : Activité : Ecrire un programme qui permet de saisir un tableau T de n entiers, puis trier en ordre croissant ce tableau en utilisant la méthode de tri par insertion et afficher le résultat. a) Principe : Cette méthode de tri consiste à : 1. Considérer que les i-1 premiers éléments du tableau T sont triés et insérer l’élément N°i dans sa position parmi les i-1 déjà triés, 2. Répéter cette action jusqu'à le dernier élément du tableau T. NB : L’insertion se traduit par le sauvegarde de l’élément N° i dans une variable intermédiaire (Int), puis le décalage d’un cran à droite des éléments i-1, i-2, … jusqu'à avoir un élément inférieur à Int et finalement affecter le contenu de Int dans l’élément libre. b) Exemple : Soit un tableau T contenant les dix éléments suivants : T : 12 10 0 -5 8 12 -2 2 40 -1 1 2 3 4 5 6 7 8 9 10 On commence par l’élément N°2 puisque si le tableau contient un seul élément, il est considéré trié. Etape1 : T : 12 10 0 -5 8 12 -2 2 40 -1 1 2 3 4 5 6 7 8 9 10 On obtient : Etape2 : T : 10 12 0 -5 8 12 -2 2 40 -1 1 2 3 4 5 6 7 8 9 10 On obtient : Etape3 : T : 0 10 12 -5 8 12 -2 2 40 -1 1 2 3 4 5 6 7 8 9 10 On obtient : Etape4 : T : -5 0 10 12 8 12 -2 2 40 -1 Int Int 10 Recherche de la position d’insertion de T[2] Int 0 Recherche de la position d’insertion de T[3] Int -5 Recherche de la position d’insertion de T[4] Int 8 Recherche de la position d’insertion de T[5]
  • 9. Mr Bassem Guetif L S Mhamdia 1 2 3 4 5 6 7 8 9 10 -9- On obtient : Etape5 : T : -5 0 8 10 12 12 -2 2 40 -1 1 2 3 4 5 6 7 8 9 10 On obtient : Etape6 : T : -5 0 8 10 12 12 -2 2 40 -1 1 2 3 4 5 6 7 8 9 10 On obtient : Etape7 : T : -5 -2 0 8 10 12 12 2 40 -1 1 2 3 4 5 6 7 8 9 10 On obtient : Etape8 : T : -5 -2 0 8 10 12 12 2 40 -1 1 2 3 4 5 6 7 8 9 10 On obtient : T : -5 0 8 10 12 12 -2 2 40 -1 1 2 3 4 5 6 7 8 9 10 T : -5 0 8 10 12 12 -2 2 40 -1 1 2 3 4 5 6 7 8 9 10 T : -5 -2 0 8 10 12 12 2 40 -1 1 2 3 4 5 6 7 8 9 10 T : -5 -2 0 2 8 10 12 12 40 -1 1 2 3 4 5 6 7 8 9 10 T : -5 -2 0 2 8 10 12 12 40 -1 1 2 3 4 5 6 7 8 9 10 Int 8 Recherche de la position d’insertion de T[6] Int -2 Recherche de la position d’insertion de T[7] Int 2 Recherche de la position d’insertion de T[8] Int 2 Recherche de la position d’insertion de T[9]
  • 10. Mr Bassem Guetif L S Mhamdia T : -5 -2 -1 0 2 8 10 12 12 40 1 2 3 4 5 6 7 8 9 10 -10- Etape9 : T : -5 -2 0 2 8 10 12 12 40 -1 1 2 3 4 5 6 7 8 9 10 On obtient : c) Spécifications et algorithmes du problème : 1. Spécification du programme principale : • Résultat : Afficher le tableau T trié en utilisant une procédure Affiche • Traitements : Il faut trier le tableau T, en utilisant une procédure Tri • Données : Il faut remplir le tableau T et saisir la taille N, en utilisant la procédure Saisie 2. Algorithme du programme principal : 0) Début Tri_Insertion 1) Saisie (T, N) 2) Tri (T, N) 3) Affiche (T, N) 4) Fin Tri_Insertion 3. Spécification de la procédure Tri : • Résultat : Trier le tableau Tf Traitements : Il s’agit d’un traitement répétitif pour tous les éléments du tableau, sauf le premier, d’où utilisation de la boucle POUR … FAIRE …, • L pour chaque élément nous allons exécuter ces actions : Action1 : Chercher la position correcte de l’élément en question Action2 : Le ranger dans une variable intermédiaire (Int) Action3 : Décaler d’une position les éléments supérieurs a cet élément Action4 : Affecter au dernier élément décalé la valeur de Int Les paramètres formels pour cette procédure sont le tableau Tf et sa taille Nf. 4. Algorithme de la procédure Tri : 0) Début procédure Tri (VAR Tf : TAB ; Nf : Entier) 1) Pour i de 2 à Nf Faire Pos 1 Tant que (Pos i) Faire Int -1 Recherche de la position d’insertion de T[10] Tableau de déclaration des nouveaux types Types TAB = Tableau de 100 entiers Tableau de déclaration des Objets Objets Type/Nature T N Saisie, Affiche, Tri TAB Entier Procédure Tableau de déclaration des Objets locaux Objets Type/Nature i, Pos, Int Entier
  • 11. Mr Bassem Guetif L S Mhamdia Si Tf[Pos] Tf[i] Alors Int Tf[i] Pour j de i à Pos +1 Faire Tf[j] Tf[j-1] Fin Pour Tf[pos] Int -11- Finsi Pos Pos +1 Fin Tant que Fin Pour 2) Fin Tri B. La recherche d’un élément dans un tableau : I. Introduction : La recherche d’un élément dans un tableau ou dans une liste de valeur est un traitement très utile en informatique. Parmi les méthodes de recherches, on cite : • La recherche séquentielle, • La recherche dichotomique. II. La recherche séquentielle : Activité : Ecrire un programme qui permet de saisir un tableau T de n entiers, puis vérifier si un entier donné X existe dans le tableau ou non en utilisant la méthode de recherche séquentielle. a) Principe : Cette méthode de recherche consiste à parcourir les éléments du tableau un par un jusqu'à trouver la valeur cherchée ou arriver à la fin du tableau. b) Exemple : Soit un tableau T contenant les dix éléments suivants : T : 12 10 0 -5 8 12 -2 2 40 -1 1 2 3 4 5 6 7 8 9 10 Pour X = -2 le programme affichera -2 existe dans le tableau Pour X = 5 le programme affichera 5 n’existe pas dans le tableau c) Spécifications et algorithmes du problème : 1. Spécification du programme principale : • Résultat : Afficher le résultat de l’existence de X dans le tableau T en utilisant une procédure Affiche • Traitements : Il faut vérifier si X existe dans le tableau T ou non, en utilisant une procédure Recherche • Données : Il faut remplir le tableau T, saisir la taille N et la valeur a cherchée X, en utilisant la procédure Saisie 2. Algorithme du programme principal : 0) Début Recherche_Seq 1) Saisie (T, N, X) 2) Verif Recherche (T, N, X) 3) Affiche (Verif) 4) Fin Recherche_Seq Tableau de déclaration des Objets Objets Type/Nature T N, X Saisie, Affiche Recherche TAB Entier Procédure Fonction
  • 12. Mr Bassem Guetif L S Mhamdia Tableau de déclaration des nouveaux types -12- Types TAB = Tableau de 100 entiers 3. Spécification de la procédure Saisie : • Résultat : Saisir Nf, Xf et remplir Tf • Traitements : Le remplissage d’un tableau est une action répétitive, ou on connaît le nombre de répétition qui est égale à Nf, d’où utilisation de la boucle POUR … FAIRE … La saisie de l’entier Nf doit être contrôlée pour ne pas saisir un entier négatif ou supérieur à 100. Cette procédure admet trois paramètres formels qui sont Nf, Xf et Tf. 4. Algorithme de la procédure Saisie : 0) Début procédure Saisie (VAR Tf : TAB ; VAR Nf, Xf : Entier) 1) Répéter Ecrire (Donner la taille du tableau : ), Lire (Nf) Jusqu'à (Nf dans [1..100]) 2) Pour i de 1 à Nf Faire Ecrire (Donner l’élément N°, i, : ), Lire (Tf[i]) Fin Pour 3) Ecrire (Donner la valeur a cherchée : ), Lire (Xf) 4) Fin Saisie 5. Spécification de la fonction Recherche : • Résultat : Retourner un résultat booléen déterminant l’existence. • Traitements : Il s’agit de comparer Xf avec chaque élément du tableau Tf jusqu'à trouver la valeur ou atteindre la fin du tableau, donc utilisation d’une structure itérative à condition d’arrêt et au minimum on doit faire une comparaison si on trouve la valeur à la première case du tableau, d’où utilisation de la boucle REPETR … JUSQU'A Les paramètres formels de cette fonction sont Xf, Nf et Tf. 6. Algorithme de la fonction Recherche : 0) Début fonction recherche (Tf : TAB ; Nf, Xf : Entier) : Booléen 1) [Trouve Faux, i 1] Répéter Si Tf[i] = Xf Alors Trouve Vrai Sinon i i+1 Finsi Jusqu’à (Trouve = Vrai) OU (i Nf) 2) Recherche Trouve 3) Fin Recherche 7. Spécification de la procédure Affiche : • Résultat : Afficher un commentaire pour dire si la valeur existe dans le tableau ou non • Traitements : Il s’agit d’une structure conditionnelle suivant la valeur de Veriff, on affiche un commentaire Les paramètres formels de cette procédure sont Veriff 8. Algorithme de la procédure Affiche : 0) Début procédure Affiche (Veriff : Booléen) 1) Si Veriff = vrai Alors Tableau de déclaration des Objets locaux Objets Type/Nature i Entier Tableau de déclaration des Objets locaux Objets Type/Nature i Trouve Entier Booléen
  • 13. Mr Bassem Guetif L S Mhamdia Ecrire (X, existe dans le tableau) T : -5 -2 -1 0 2 8 10 12 12 40 1 2 3 4 5 6 7 8 9 10 Tableau de déclaration des nouveaux types -13- Sinon Ecrire (X, n’existe pas dans le tableau) Finsi 2) Fin Affiche III. La recherche dichotomique : Activité : Ecrire un programme qui permet de saisir un tableau T de n entiers triés dans l’ordre croissant, puis vérifier si un entier donné X existe dans le tableau ou non en utilisant la méthode de recherche dichotomique. a) Principe : Cette méthode de recherche consiste à : 1. Fixer le début (Deb) et la fin (Fin) du tableau, 2. Fixer le milieu du tableau (Mil = (Fin + Deb) Div 2), 3. Comparer X et T[Mil], Si (X T[Mil]) alors rechercher X dans le sous tableau [Mil + 1 … Fin] sinon si (X T[Mil]) alors dans le tableau [Deb … Mil - 1], 4. Répéter les étapes 1, 2 et 3 jusqu’à (X = T[Mil]) ou (Deb Fin) b) Exemple : Soit un tableau T contenant les dix éléments suivants : Pour X = -2 le programme affichera -2 existe dans le tableau Pour X = 5 le programme affichera 5 n’existe pas dans le tableau c) Spécifications et algorithmes du problème : 1. Spécification du programme principale : • Résultat : Afficher le résultat de l’existence de X dans le tableau T en utilisant une procédure Affiche • Traitements : Il faut vérifier si X existe dans le tableau T ou non, en utilisant une procédure Recherche • Données : Il faut remplir le tableau T, saisir la taille N et la valeur a cherchée X, en utilisant la procédure Saisie 2. Algorithme du programme principal : 0) Début Recherche_Dicho 1) Saisie (T, N, X) 2) Verif Recherche (T, N, X) 3) Affiche (Verif) 4) Fin Recherche_ Dicho Types TAB = Tableau de 100 entiers 3. Spécification de la procédure Saisie : Tableau de déclaration des Objets Objets Type/Nature T N, X Saisie, Affiche Recherche TAB Entier Procédure Fonction • Résultat : Saisir Nf, Xf et remplir Tf • Traitements : Le tableau est formé par des entiers triés dans l’ordre croissant, donc on doit saisir l’élément N° 1 puis à chaque saisie on doit vérifié que l’élément est supérieur à celui qui le précède et ainsi de suite jusqu'à le dernier
  • 14. Mr Bassem Guetif L S Mhamdia élément. C’est un traitement répétitif, la structure adéquate est la boucle POUR … FAIRE … … La saisie de l’entier Nf doit être contrôlée pour ne pas saisir un entier négatif ou supérieur à 100. Cette procédure admet trois paramètres formels qui sont Nf, Xf et Tf. -14- 4. Algorithme de la procédure Saisie : 0) Début procédure Saisie (VAR Tf : TAB ; VAR Nf, Xf : Entier) 1) Répéter Ecrire (Donner la taille du tableau : ), Lire (Nf) Jusqu'à (Nf dans [1..100]) 2) [Ecrire (Donner l’élément N°1, : ), Lire (Tf[1])] Pour i de 2 à Nf Faire Répéter Ecrire (Donner l’élément N°, i, : ), Lire (Tf[i]) Jusqu'à (Tf[i] = Tf[i – 1]) Fin Pour 3) Ecrire (Donner la valeur a cherchée : ), Lire (Xf) 4) Fin Saisie 5. Spécification de la fonction Recherche : • Résultat : Retourner un résultat booléen déterminant l’existence. • Traitements : Il s’agit de calculer l’indice de l’élément du milieu du tableau et le comparer avec Xf, s’ils sont égaux alors fin du traitement si non calculer de nouveau le début et la fin du sous tableau ou se trouve Xf et refaire le même traitement jusqu'à trouver Xf ou arriver à un état ou début est supérieur à fin, donc utilisation d’une structure itérative à condition d’arrêt et au minimum on doit faire une comparaison, d’où utilisation de la boucle REPETR … JUSQU'A Les paramètres formels de cette fonction sont Xf, Nf et Tf. 6. Algorithme de la fonction Recherche : 0) Début fonction recherche (Tf : TAB ; Nf, Xf : Entier) : Booléen 1) [Trouve Faux, Deb 1, Fin Nf] Répéter Mil (Deb + Fin) Div 2 Si Tf[Mil] Xf Alors Fin Mil - 1 Sinon Si Tf[Mil] Xf Alors Deb Mil + 1 Sinon Trouve Vrai Finsi Jusqu’à (Trouve = Vrai) OU (Deb Fin) 2) Recherche Touve 3) Fin Recherche 7. Spécification de la procédure Affiche : • Résultat : Afficher un commentaire pour dire si la valeur existe dans le tableau ou non • Traitements : Il s’agit d’une structure conditionnelle suivant la valeur de Veriff, on affiche un commentaire Les paramètres formels de cette procédure sont Veriff Tableau de déclaration des Objets locaux Objets Type/Nature i Entier Tableau de déclaration des Objets locaux Objets Type/Nature i, Deb, Fin Entier Trouve Booléen
  • 15. Mr Bassem Guetif L S Mhamdia -15- 8. Algorithme de la procédure Affiche : 0) Début procédure Affiche (Veriff : Booléen) 1) Si Veriff = vrai Alors Ecrire (X, existe dans le tableau) Sinon Ecrire (X, n’existe pas dans le tableau) Finsi 2) Fin Affiche