Beruflich Dokumente
Kultur Dokumente
Na)onale Polytechnique
1ère année Classes Préparatoires
Année 2019/2020
Ma)ère
Informa)que 1
Chapitre V
Algorithmique
• Séquence d’instruc)ons
– Lecture/Écriture
– Affecta)on
– Structures alterna)ves
– Structure itéra)ves
Dr. Meziane-Tani I. 2
Introduc)on
Ordinateur
Matériel Logiciel
- Composants matériels
- Codage de l’informa)on - Algorithmique
- Algèbre de Boole et circuits électroniques - Programma)on
- Machine de Von Neumann Dr. Meziane-Tani I. 3
Introduc)on
• Logiciel = Programmes + Données
• Cependant celui-ci n’est pas très maniable par l’être humain qui doit écrire les codes
(le programmeur) => appari)on des langages évolués : Pascal, C, Fortran, C++, Java,
etc.
• Les programmes écrits dans des langages évolués sont traduits (par l’ordinateur lui
même) vers le langage binaire afin d’être exécutés par le processeur : la compilaBon.
Dr. Meziane-Tani I. 4
Introduc)on
Énoncé du problème
Spécifica-on
Analyse
PréparaBon
Algorithme du
programme
Traduc-on
Compila-on
Tests et modifica-ons
Dr. Meziane-Tani I. 5
Algorithme
• Extrait du nom du mathéma)cien perse Al Khawarizmi.
• Exemples :
• Mode d’emploi pour faire fonc)onner une machine à laver.
• Receke de cuisine pour préparer un plat.
• I)néraire rou)er pour aller d’une ville à une autre.
• ...
Dr. Meziane-Tani I. 6
Algorithme / Programme
Algorithme Programme écrit en langage « C »
#include <stdio.h>
Algorithme Puissance2
#include <stdlib.h>
Variables x, y : en-ers Traduc)on int x, y;
Début
int main()
Lire(x)
{
y ç x * x
scanf(“%d”, &x);
Ecrire(y)
y = x * x;
Fin
prin<(”y=%d\n”, y);
return 0;
}
• Le langage algorithmique doit tout de même respecter une certaine syntaxe pour
faciliter la compréhension.
• Un algorithme n’est pas un programme prêt à être exécuté par une machine.
• Pour exécuter un algorithme sur une machine, il faut d’abord le traduire, dans un
langage de programma)on, en un programme exécutable par un ordinateur.
Dr. Meziane-Tani I. 9
ReprésentaBon d’un algorithme
Dr. Meziane-Tani I. 10
Organigramme
• Une représenta)on graphique Exemple d’organigramme pour
u)lisant des symboles : carrés, le calcul de la puissance 2
losanges, rectangles, etc.
Début
Dr. Meziane-Tani I. 11
Pseudo-Code
• Représenta)on textuelle respectant une certaine
s y n t a x e q u i r e s s e m b l e à u n l a n g a g e d e
programma)on, d’où le nom « pseudo-code ».
• Plus pra)que pour écrire un algorithme.
• A u j o u r d ’ h u i , L e m o t a l g o r i t h m e d é s i g n e
principalement le pseudo-code.
Dr. Meziane-Tani I. 12
Composants de base d’un algorithme
• Certaines convenBons doivent être respectées pour écrire un
algorithme, telles que :
Dr. Meziane-Tani I. 13
Structure de base d’un algorithme
Algorithme Nom de l’algorithme
/* La par-e déclara-ons de l’algorithme */ Commentaire
Constantes // les constantes nécessitent d’avoir une valeur dès leur déclara)on
const1 ç 10 : en)er
Variables // les variables proprement dites
var2, var3 : réels
/* corps de l’algorithme */
Début
/* instruc)ons */
Fin
Dr. Meziane-Tani I. 14
Les variables
Dr. Meziane-Tani I. 15
NoBon de variable (1/2)
• Dans un programme, une donnée peut être :
– Une donnée de départ : une entrée
– Un résultat intermédiaire obtenu par le programme en cours
d’exécu)on
– Résultat défini)f du programme : une sor)e.
Dr. Meziane-Tani I. 16
NoBon de variable (2/2)
• Les données manipulées par un programme
peuvent être :
– des nombres (en)ers ou réels),
– des données logiques (vrai ou faux),
– des caractères,
– du texte (suite de caractères),
– etc.
Dr. Meziane-Tani I. 18
IdenBficateur de variables
• L’iden)ficateur est le nom qu’on donne à une variable.
• Conven)ons :
1. l’iden)ficateur commence par une majuscule. Exemples : Nom, Prenom,
Age, …
2. Les symboles acceptées sont : Chiffres, lekres minuscules, majuscules, )ret-
bas “_”. Exemples : Informa)que1, Informa)que_1 : corrects
5. Doit être différent des mots réservés. Exemples : En)er, Début, Variable, ...
Dr. Meziane-Tani I. 19
Types de variables
• Le type d’une variable détermine l’ensemble de
valeurs que peut prendre ceke variable ainsi que les
opéra)ons correspondantes.
• Exemples :
– En)er court : réserver 2 octets.
– Caractère : réserver un octet.
Dr. Meziane-Tani I. 20
Types prédéfinies
Dr. Meziane-Tani I. 21
DéclaraBon de variables
• Toute variable u)lisée dans un algorithme doit être déclarée avant
son u)lisa)on.
• Exemples :
Variables i, j, k : en@er
x, y : réel
OK : booléen
Chaine1, Chaine2 : Chaîne de caractères
Dr. Meziane-Tani I. 22
Les constantes
Dr. Meziane-Tani I. 23
NoBon de constante
• Une constante est une variable dont la valeur ne change pas au cours de
l’exécu)on du programme, elle peut être :
– un nombre
– un caractère
– une chaine de caractères.
• Exemple :
– Pour calculer la surface des cercles, la valeur de pi est une constante mais le
rayon est une variable.
Constante PI ç 3.14 : réel
Variable Rayon : réel
Dr. Meziane-Tani I. 24
La séquence d’instrucBons
Dr. Meziane-Tani I. 25
Séquence d’instrucBons
• Une instruc)on, appelée aussi « ac-on primi-ve » est une
opéra)on de base du processeur, d’un langage de
programma)on ou bien du langage algorithmique.
Dr. Meziane-Tani I. 26
Séquence d’instrucBons
• En algorithmique, une instruc)on peut être :
– Une affecta)on
– Une structure alterna)ve
Dr. Meziane-Tani I. 27
Les entrées et sorBes
Dr. Meziane-Tani I. 28
Les instrucBons d’entrées/sorBes
• Les instruc)ons d’entrées et de sor)es
permekent à l’humain de communiquer avec
l’ordinateur.
– La lecture
– L’écriture
Dr. Meziane-Tani I. 29
Lecture
• La lecture est une instruc)on d’entrée qui permet d’introduire des
données numériques ou textuelles au moyen d’un clavier.
• En pseudo-code : Lire(x)
Dr. Meziane-Tani I. 30
Écriture
• L’écriture est une instruc)on de sor)e qui permet d’afficher des résultats ou
bien des messages à l’écran.
Ecrire(liste d’expressions)
• En pseudo-code : ou
Ecrire(expression 1, expression 2, expression 3, …)
Dr. Meziane-Tani I. 32
L’affectaBon
Dr. Meziane-Tani I. 33
AffectaBon
• Soit « v » une variable et « E » une expression.
Dr. Meziane-Tani I. 34
AffectaBon
• L’expression E peut être :
• Exemples :
– A ç A+1 (incrémenta)on) et A ç A-1 (décrémenta)on) ont un sens en
programma)on contrairement aux équa)ons.
Dr. Meziane-Tani I. 35
Opérateurs
• En algorithmique, un opérateur est un symbole
qui représente une opéra)on qui, selon le type
des opérandes (variables), peut être :
Dr. Meziane-Tani I. 36
Type Opérateur Symbole
Opérateurs
addi)on +
soustrac)on -
Opérateurs
ArithméBques mul)plica)on *
division /
modulo %
puissance ^
Est égal =
Est différent ≠
Opérateurs de Est inférieur <
comparaison Est supérieur >
Est inférieur ou égal ≤
Inverse NON
Opérateurs Et ET
logiques
Autre Concaténa)on de chaînes &
Dr. Meziane-Tani I. 37
de caractères
Quelques exemples
• OpéraBon ArithméBque :
– v ç 15 + 5 => v vaut 20
• OpéraBon de comparaison :
– v ç 6 > 8 => v (une variable booléenne) vaut faux car 6 n’est pas
supérieur à 8.
• OpéraBon logique :
– v ç (8 % 5 = 3) OU (5 > 10) => v vaut vrai
car : 8%5 vaut 3
(8%5 = 3) vaut vrai
(5 > 10) vaut faux
(vrai OU faux) vaut vrai.
Dr. Meziane-Tani I. 38
Règles d’uBlisaBon des opérateurs
• L’évalua)on d’une expression se fait en tenant
compte des priorités des opérateurs.
– Exemple : 2+5*4 vaut 22
Dr. Meziane-Tani I. 40
Exemple d’exécuBon d’un algorithme
Algorithme Affecta-ons
Déroulement de l’algorithme :
Variables A, B, C: En@er
InstrucBon A B C
Début A←7 7 ? ?
A←7 B ← 17 7 17 ?
B ← 17 A←B 17 17 ?
B ← A+5 17 22 ?
A←B
C←A+B 17 22 39
B ← A+5
C←A+B A = 17
Résultats : B = 22
Fin C = 39
Dr. Meziane-Tani I. 41
Les structures alternaBves
Dr. Meziane-Tani I. 42
Structure alternaBve
• Une structure alterna-ve, appelée aussi structure
condi-onnelle est une structure algorithmique dans
laquelle une suite d’instruc)ons n’est exécutée que si
une condi)on est vérifiée.
Dr. Meziane-Tani I. 45
1. AlternaBve simple
Si … alors ... Finsi
Dr. Meziane-Tani I. 46
AlternaBve simple
La structure algorithmique pour effectuer un test simple est la suivante :
Début
Si Condi-on alors
/* Séquence d’instruc-ons */
Finsi
Condi)on
?
- Condi-on est une expression booléenne qui doit
retourner un résultat VRAI ou FAUX. VRAI
Algorithme En-erPosi-f
Variables x: En@er
Début
Lire(x)
Si x ≥ 0 alors
Écrire(‘’La valeur de x est posi-ve ou nulle’’)
Finsi
Fin
Dr. Meziane-Tani I. 48
2. AlternaBve complète
Si … alors ... Sinon ... Fin si
Dr. Meziane-Tani I. 49
AlternaBve complète
Pseudo-code :
Si Condi-on alors Début
/* Séquence d’instruc-ons 1 */
Sinon
/* Séquence d’instruc-ons 2 */ FAUX
Condi)on
Finsi ?
Dr. Meziane-Tani I. 50
Exemple
Exemple : Écrire un algorithme qui permet de lire un en)er x puis d’afficher
sa valeur absolue.
Algorithme ValeurAbsolue
Variables x: En@er
Début
Lire(x)
Si x ≥ 0 alors
Écrire(‘’La valeur absolue de x est :’’, x)
Sinon /* x < 0 mais pas besoin de revérifier la condi-on */
Écrire(‘’La valeur absolue de x est :’’, -x)
Finsi
Fin
Dr. Meziane-Tani I. 51
3. AlternaBve imbriquée
Dr. Meziane-Tani I. 52
AlternaBve imbriquée
• Il est possible d’effectuer un test à l’intérieur d’un autre test : imbricaBon.
• Le degré d’imbrica)on n’est pas limité mais doit tout de même être raisonnable.
Pseudo-code :
Début
Si Condi-on 1 alors
Si Condi-on 2 alors
/* Séquence d’instruc-ons 1 */ VRAI Condi)o FAUX
Sinon n 1 ?
/* Séquence d’instruc-ons 2 */ FAUX
Condi)o Condi)o
Finsi n 2 ? n 3 ?
VRAI
Sinon FAUX
Si Condi-on 3 alors VRAI Instruc)ons 2 Instruc)ons 4
/* Séquence d’instruc-ons 3 */
Sinon
/* Séquence d’instruc-ons 4 */ Instruc)ons 1 Instruc)ons 3
Finsi
Finsi
Dr. Meziane-Tani I. 55
Selon … FinSelon
En Pseud-code :
SELON 1. La condiBon 1 est évaluée :
Condi)on 1 : Ac)on 1 • Si la condi)on 1 est vraie, alors on exécute
l'ac)on correspondante et on quike la structure
Condi)on 2 : Ac)on 2 selon.
• Si la condi)on 1 est fausse, on évalue la
... condi)on 2...et ainsi de suite.
Condi)on n : Ac)on n 2. Si aucune n'est vraie on effectue l'acBon sinon
SINON : ac)on_sinon Remarque : l'ac)on sinon n’est pas obligatoire. Si
elle n'existe pas alors aucune ac)on n'est exécutée
FINSELON dans le cas où aucune condi)on n’et vérifiée.
Dr. Meziane-Tani I. 56
Exemple
• Résoudre l’exemple précédent (le signe d’un nombre
introduit au clavier) en u)lisant l’instruc)on Selon.
Algorithme Signe
Variables x: En@er
Début
Lire(x)
Selon
x > 0 : Écrire(‘’Le nombre est posi-f’’)
x < 0 : Écrire(‘’Le nombre est néga-f’’)
Sinon : Écrire(‘’Le nombre est nul’’)
FinSelon
Fin
Dr. Meziane-Tani I. 57
Les structures répéBBve
Dr. Meziane-Tani I. 58
Structure répéBBve
• Une structure répéBBve ou structure itéraBve est une
structure algorithmique qui consiste à répéter un ensemble
d’instruc)ons un certain nombre de fois.
• Aken)on : le nombre de répé))ons ne peut être infini ! Il
faut toujours s’assurer que la structure répé))ve s’arrête
après un nombre fini de répé))ons.
• Remarques :
- En jargon informa)que, une structure répé))ve est
généralement appelée « boucle ».
- Une répé))on est appelée : itéraBon.
Dr. Meziane-Tani I. 59
Structure répéBBve
• Le nombre d’itéra)ons peut être donné de deux différentes
manières :
– Un compteur
– Une condi)on d’arrêt des répé))ons
Dr. Meziane-Tani I. 60
1. TantQue … Faire ... FinTantQue
Dr. Meziane-Tani I. 61
La boucle « TantQue »
• Une séquence d’instruc)ons est répétée tant
qu’une condi)on est vérifiée.
Pseudo-code :
Début
TantQue Condi-on Faire
/* Séquence d’instruc-ons */
FinTantQue VRAI
Condi)on
Instruc)ons
?
Remarques :
- La Condi-on est évaluée avant chaque FAUX Organigramme
itéra)on.
- Il est possible que la séquence
d’instruc)ons ne soit jamais exécutée. Fin
Dr. Meziane-Tani I. 62
Exemple
• Écrire un algorithme qui demande à l’u)lisateur d’introduire
une note jusqu’à ce que celle-ci soit valide (0 ≤ note ≤ 20).
Algorithme SaisiNote
Variables Note: En@er
Début
Ecrire(“Introduire une note :”)
Lire(Note)
TantQue (Note < 0) OU (Note > 20) faire
Ecrire(“La note n’est pas valide. Veuillez recommencer”)
Lire(Note)
FinTantQue
Ecrire(“Note Correcte.”)
Fin Dr. Meziane-Tani I. 63
2. Répéter… Jusqu’à ...
Dr. Meziane-Tani I. 64
La boucle « Répéter »
• Répéter une séquence d’instruc)ons jusqu’à
ce qu’une condi)on soit vérifiée. Dans ce cas,
on sort de la boucle. Début
Pseudo-code :
Répéter
Instruc)ons
/* Séquence d’instruc-ons */
Jusqu’à Condi-on
FAUX
Condi)on
Remarques : ?
- La Condi-on est évaluée après chaque
itéra)on. VRAI
- La séquence d’instruc)ons est exécutée
au moins une fois. Fin
Dr. Meziane-Tani I. 68
La boucle « Pour »
• Une séquence d’instruc)ons est exécutée un certain nombre
de fois connu à l’avance.
Pseudo-code :
Pour Compteur de Ini-ale à Finale Pas Valeur_Pas Faire
/* Séquence d’instruc-ons */
FinPour
Dr. Meziane-Tani I. 69
La boucle « Pour »
- Organigramme -
Début
cpt ← ini)ale
VRAI
cpt ≤ Finale* Instruc)ons
FAUX
* : la condi)on devient cpt ≥ Finale
Fin si Finale < Ini)ale.
Dr. Meziane-Tani I. 70
Exemple 1
• Écrire un algorithme qui demande à l’u)lisateur un
nombre en)er de départ et qui ensuite affiche les 10
en)ers suivants.
Algorithme NombresSuivants
Variables Depart, i: En@er
Début
Ecrire(“Introduire un nombre de départ :”)
Lire(Depart)
Pour i de 1 à 10 Pas 1 faire /* i est un compteur qui compte les nombres */
Ecrire(Depart+i) /* afficher les en-ers qui suivent la valeur Depart */
FinPour
Fin
Dr. Meziane-Tani I. 71
Exemple 2
• Écrire un algorithme qui demande à l’u)lisateur un
nombre en)er final et qui ensuite affiche les 10
en)ers précédents dans un ordre croissant.
Algorithme NombresPrecedents
Variables Final, i: En@er
Début
Ecrire(“Introduire un nombre final”)
Lire(Final)
Pour i de 10 à 1 Pas -1 faire /* le compteur est décrémenté par pas de -1 */
Ecrire(Final-i) /* afficher les en-ers qui précèdent Final */
FinPour
Fin
Dr. Meziane-Tani I. 72
La boucle « Pour »
- Quelques remarques -
• Avec la boucle « Pour », il n’y a pas de risque de boucle
infinie car les valeurs « Ini)ale » et « Finale » sont
obligatoirement définies avec des valeurs numériques.
Dr. Meziane-Tani I. 73
Remarque Pour/TantQue
• La boucle Pour peut être remplacée par une boucle TantQue.
Pour Compteur de Ini-ale à Finale Pas Valeur_Pas Faire
/* Séquence d’instruc-ons */
FinPour
Compteur ← Ini-al
TantQue Compteur ≤ Finale* Faire
/* Séquence d’instruc-ons */
Compteur ← Compteur + Valeur_Pas
FinTantQue
Dr. Meziane-Tani I. 75
Quelques exemples…
• Exemple 1 : Écrire un algorithme qui
demande successivement 20 nombres à
l’u)lisateur, et qui lui dise ensuite quel était le
plus grand parmi ces 20 nombres.
Dr. Meziane-Tani I. 77
SoluBon Exemple 2
TantQue
Algorithme PlusGrandNombre2
Variables N, i, Max: En@er
Debut
N ← 1
i ← 0
Max← 0
TantQue N <> 0
Ecrire("Entrez un nombre : ”)
Lire(N)
i ← i + 1
Si (i = 1) OU (N > Max) Alors
Max← N
FinSi
FinTantQue
Ecrire("Le nombre le plus grand était : ", Max)
Fin
Dr. Meziane-Tani I. 78
SoluBon Exemple 2
Répéter
Algorithme PlusGrandNombre3
Variables N, i, Max: En@er
Debut
i ← 0
Max← 0
Répéter
Ecrire("Entrez un nombre : ”)
Lire(N)
i ← i + 1
Si (i = 1) OU (N > Max) Alors
Max← N
FinSi
Jusqu’à N=0
Ecrire("Le nombre le plus grand était : ", Max)
Fin
Dr. Meziane-Tani I. 79
Boucles imbriquées
• En fonc)on du problème abordé, il est possible que les
instruc)ons d’une boucle soient à leur tour une
boucle : du même type ou d’un autre type.
Dr. Meziane-Tani I. 81
Les types complexes
Dr. Meziane-Tani I. 82
Types complexes
• Les types complexes ne désignent pas les nombres complexes !
• En algorithmique :
– Les tableaux
– Les enregistrements
– Les listes
– Les Piles et les Files
– Les arbres
– Etc.
Dr. Meziane-Tani I. 83
1 – Les tableaux
Dr. Meziane-Tani I. 84
IntroducBon
• Reprenons l’exemple des boucles où il était demandé d’introduire
20 nombres puis d’afficher le maximum de ces nombres comme
résultat.
Dr. Meziane-Tani I. 85
Tableau
• Un tableau est une structure de données qui
permet de manipuler un ensemble de données
de même type.
RAM
ReprésentaBon en mémoire :
Élément 1
Élément 2
Élément 3
Tableau de n
: éléments
:
Élément n
Dr. Meziane-Tani I. 89
Accéder aux éléments du tableau
• Pour accéder à un élément du tableau, il faut donner le nom du tableau et
le numéro d’ordre (entre crochets []) de l’élément dans le tableau.
• Exemples :
– T[3] ← 4.
– N = T[1]+T[2]
Dr. Meziane-Tani I. 91
Lecture d’un tableau (2/2)
• Écrire un algorithme qui demande à l’u)lisateur
d’introduire les 20 éléments d’un tableau d’en)ers T.
Algorithme LectureTableau
Constante N←20 : En@er /* La taille du tableau est déclarée comme une constante
*/
Variables i: En@er
T[N] : En@er
Début
Pour i de 0 à N-1 faire /* i : indice qui compte les éléments du tableau */
Ecrire(“T[“, i, “] = ”) /* affiche le nom de la case */
Lire(T[i])
FinPour
Fin
Dr. Meziane-Tani I. 92
Écriture (Affichage) d’un tableau
• Écrire un algorithme qui affiche les 20 éléments d’un
tableau d’en)ers T.
Algorithme EcritureTableau
Constante N←20 : En@er /* La taille du tableau est déclarée comme une
constante */
Variables i: En@er
T[N] : En@er
Début
Pour i de 0 à N-1 faire /* i : indice qui compte les éléments du tableau */
Ecrire(“T[“, i, “] = ”, T[i]) /* affiche le nom de la case */
FinPour
Fin
Dr. Meziane-Tani I. 93
Mise à jour d’un tableau
• Les opéra)ons de mise à jour sont les opéra)ons qui
permekent de modifier les éléments d’un tableau.
Dr. Meziane-Tani I. 94
ModificaBon
La modifica)on d’un élément du tableau consiste à
remplacer la valeur d’un élément par une autre valeur.
La taille du tableau ne change pas après modifica)on.
Avant modificaBon :
0 1 p-1 p p+1 n-1
T[0] T[1] … ... T[p] ... …. T[n-1]
Après modificaBon :
0 1 p-1 p p+1 n-1
T[0] T[1] … ... x ... ... T[n-1]
Dr. Meziane-Tani I. 95
Algorithme de modificaBon
Écrire un algorithme qui permet de modifier l’élément qui se trouve à
l’emplacement « p » d’un tableau d’en)ers T par la valeur de « x ».
Algorithme Modifica-on
Constante N←20 : En@er
Variables p, x: En@er
T[N] : En@er
Début
Lire(x,p)
T[p] ← x /* remplacer la valeur de T[p] par x */
Fin Dr. Meziane-Tani I. 96
InserBon
L’inser)on d’un élément « x » à l’emplacement « p » d’un
tableau consiste à :
– Décaler vers la droite tous les éléments à par)r de l’indice
p.
– Insérer cet élément dans la case T[p]
=> la taille du tableau après inser)on : n+1.
Avant inserBon :
0 1 p-1 p p+1 n-1
T[0] T[1] … T[p-1] T[p] T[p+1] …. T[n-1]
Après inserBon :
0 1 p-1 p p+1 p+2 n
T[0] T[1] … T[p-1] x T[p] T[p+1] …. T[n-1]
Dr. Meziane-Tani I. 97
Algorithme d’inserBon
Écrire un algorithme qui permet d’insérer un élément « x » à l’emplacement
« p » d’un tableau, T, d’en-ers. T est supposé donné.
Algorithme Inser-on
Constante N←20 : En@er
Variables i, p, x: En@er
T[N], T_nouveau[N+1] : En@er /*T_Nouveau : Nouveau tableau après inser-on de x. */
Début
Lire(x,p)
Pour i de 0 à p-1 faire /* Les éléments de 0 à p-1 sont conservés dans le tableau T_nouveau */
T_nouveau[i] ← T[i]
FinPour
Pour i de p+1 à N faire /* Ceƒe boucle décale les éléments de p+1 à N-1. */
T_nouveau[i] ← T[i-1]
FinPour
T_nouveau[p] ← x /* Insérer l’élément x à l’emplacement p */
Fin
Dr. Meziane-Tani I. 98
Suppression
La suppression d’un élément qui se trouve à
l’emplacement « p » d’un tableau consiste à :
– Décaler vers la gauche tous les éléments à par)r de
l’indice p+1.
=> la taille du tableau après inser)on : n-1.
Avant suppression :
0 1 p-1 p p+1 n-1
T[0] T[1] … T[p-1] T[p] T[p+1] …. T[n-1]
Après suppression :
0 1 p-1 p n-2
T[0] T[1] … T[p-1] T[p+1] …. T[n-1]
Dr. Meziane-Tani I. 99
Algorithme de suppression
Écrire un algorithme qui permet de supprimer l’élément qui se trouve à
l’emplacement « p » d’un tableau, T, d’en-ers. T est supposé donné.
Algorithme Suppression
Constante N←20 : En@er
Variables i, p, x: En@er
T[N], T_nouveau[N-1] : En@er /*T_Nouveau : Nouveau tableau après suppression de x. */
Début
Lire(p)
Pour i de 0 à p-1 faire /* Les éléments de 0 à p-1 sont conservés dans le tableau T_nouveau */
T_nouveau[i] ← T[i]
FinPour
Pour i de p à N-2 faire /* Ceƒe boucle décale les éléments de p+1 à N-1. */
T_nouveau[i] ← T[i+1] /* la suppression est effectuée en affectant à T[p] ← T[p+1] */
FinPour
Fin Dr. Meziane-Tani I. 100
Algorithme de Recherche
Principe
• Étant donnés un tableau T et une valeur x(l’élément que
l’on cherche), plusieurs types de problèmes peuvent être
posés :
• Principe :
– Diviser le tableau en deux par)es et comparer la valeur
recherchée avec l'élément situé au milieu du tableau (l'élément
médian).
0 1 Diviser le tableau
en deux par)es
0 1
Si x < milieu
0 1
Rediviser la par)e
gauche en deux par)es
0 1 Ainsi de suite…
Dr. Meziane-Tani I. 106
Recherche dichotomique
Algorithme RechercheDichotomique
Constante N←20 : En@er
Variables Trouve : Booléen
x, d, f, m : En@er // d : indice du premier élement
T[N] : En@er // f : indice du dernier élement
Début // m : indice du milieu
d ← 0
f ← n−1
TantQue d < f faire
m ← (d+f)/2 /* Milieu du tableau : Division en-ère */
Si T[m] < x alors
d ← m+1 /*rechercher dans la par-e gauche*/
Sinon
f ← m /*rechercher dans la par-e droite*/
FinSi
FinTantQue
Si x = T[d] alors
Trouve ← Vrai
Sinon
Trouve ← Faux
FinSi
Dr. Meziane-Tani I. 107
Fin.
2 – Les enregistrements
• Exemple : P: Personne