Plan
Algorithmique et Structures de Données I
Dr. Maher Helaoui
2019 - 2020
1/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 1/120
Plan
Bibliographie
Kernighan, B. et Ritchie, D.:
The C Programming Language. (1988)
Faber, F.:
Cours : Programmation C.
http://www.ltam.lu/cours-c/prg-c c.htm, (1997)
Ben Ayed, D.:
Cours : Algorithmique et structures de données.
ISI, (2018)
Helaoui, M.:
Travaux Dirigés : Algorithmique et Structures de Données.
https://www.researchgate.net/publication/266392442,
(2016) 2/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 2/120
Plan
Plan
1 Introduction à l’algorithmique et structures de données
Définir la notion d’algorithmique
Structure générale d’un algorithme
Premier algorithme : instructions d’entrée/sortie
2 Les variables
Déclarer une variable
Type d’une variable
Instruction d’affectation
3 Les structures de contrôle
Les Instructions conditionnelles
Les structures itératives
4 Les Sous programmes et Tableaux
Les Sous programmes
Les Tableaux et les Matrices
3/71
Les Algorithmes de Tri
Dr. Maher Helaoui Algorithmique et Structures de Données I 3/120
Introduction
Notion d’algorithmique
LES VARIABLES
Structure générale
Structures de contrôle
Entrée/sortie
Sous programmes et Tableaux
Introduction à l’algorithmique et structures de données
4/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 4/120
Introduction
Notion d’algorithmique
LES VARIABLES
Structure générale
Structures de contrôle
Entrée/sortie
Sous programmes et Tableaux
Algorithmique : résoudre un problème par le calcul
Résoudre un problème par le calcul
Pendant plusieurs millénaires, les mathématiciens se sont
contentés d’une notion intuitive, informelle, d’algorithme :
une méthode effective de calcul ,
un processus de résolution d’un problème par le calcul
5/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 5/120
Introduction
Notion d’algorithmique
LES VARIABLES
Structure générale
Structures de contrôle
Entrée/sortie
Sous programmes et Tableaux
Les Baboliens
Figure: Le premier algorithme
6/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 6/120
Introduction
Notion d’algorithmique
LES VARIABLES
Structure générale
Structures de contrôle
Entrée/sortie
Sous programmes et Tableaux
Historique: les algorithmes
2000 ans avant J.C.
les Babyloniens (l’actuel Irak) ont marqué les premiers
algorithmes sur terre et étaient principalement des méthodes
de calcul pour le commerce et les impôts.
300 ans avant J.C.
les Grecs ont présenté l’algorithme D’Euclide pour le calcul du
pgcd.
900 ans après J.C.
Al Khuwarizmi, un mathématicien perse (actuel Iran), consacre
un ouvrage aux algorithmes.
7/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 7/120
Introduction
Notion d’algorithmique
LES VARIABLES
Structure générale
Structures de contrôle
Entrée/sortie
Sous programmes et Tableaux
Historique: les machines et l’automatisation du calcul
Entre 1600 et 1800
Pascal et Leibniz construisent des machines à calculer
mécaniques (la Pascaline en 1642) ou des automates, et d’où
l’automatisation du calcul et la recherche d’algorithmes
efficaces.
8/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 8/120
Introduction
Notion d’algorithmique
LES VARIABLES
Structure générale
Structures de contrôle
Entrée/sortie
Sous programmes et Tableaux
La pascaline
Figure: La Pascaline : calculatrice mécanique
9/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 9/120
Introduction
Notion d’algorithmique
LES VARIABLES
Structure générale
Structures de contrôle
Entrée/sortie
Sous programmes et Tableaux
Premier ordinateur
En 1928
Hilbert avec son Entscheidungsproblem ( problème de
décision ) demande s’il existe un algorithme capable de
décider si un énoncé mathématique est vrai ?
Une machine peut elle prendre une décision ?
En 1930 − 1937
Présentation de la machine de Turing.
En 1945
la construction des premiers ordinateurs inspirés de la machine
de Turing.
10/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 10/120
Introduction
Notion d’algorithmique
LES VARIABLES
Structure générale
Structures de contrôle
Entrée/sortie
Sous programmes et Tableaux
Machine de Turing
Figure: Machine de Turing
11/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 11/120
Introduction
Notion d’algorithmique
LES VARIABLES
Structure générale
Structures de contrôle
Entrée/sortie
Sous programmes et Tableaux
Section II. Définir la notion d’algorithmique
12/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 12/120
Introduction
Notion d’algorithmique
LES VARIABLES
Structure générale
Structures de contrôle
Entrée/sortie
Sous programmes et Tableaux
Algorithme
Définition
Un algorithme est une méthode générale pour résoudre un
type ou une classe de problèmes. Il est dit correct lorsque qu’il
résout le problème posé.
Efficacité
l’efficacité d’un algorithme est mesurée par sa durée de calcul,
par sa consommation de mémoire vive, par la précision des
résultats obtenus, etc.
13/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 13/120
Introduction
Notion d’algorithmique
LES VARIABLES
Structure générale
Structures de contrôle
Entrée/sortie
Sous programmes et Tableaux
Algorithmique
Définition
L’algorithmique est l’étude et la production de règles et
techniques qui sont impliquées dans la définition et la
conception d’algorithmes, c’est-à-dire de processus
systématiques de résolution d’un problème permettant de
décrire précisément des étapes pour résoudre un problème
algorithmique.
L’algorithmique est la logique d’écrire des algorithmes.
14/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 14/120
Introduction
Notion d’algorithmique
LES VARIABLES
Structure générale
Structures de contrôle
Entrée/sortie
Sous programmes et Tableaux
Etapes de résolution d’un problème P
Résoudre P
Définir
Analyser
Algorithme informel
Conception
Algorithme formel
Implémentation et tests
Algorithme codés
Maintenance
15/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 15/120
Introduction
Notion d’algorithmique
LES VARIABLES
Structure générale
Structures de contrôle
Entrée/sortie
Sous programmes et Tableaux
Section III. Structure générale d’un algorithme
16/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 16/120
Introduction
Notion d’algorithmique
LES VARIABLES
Structure générale
Structures de contrôle
Entrée/sortie
Sous programmes et Tableaux
Structure générale d’un algorithme
Syntaxe de la structure générale
Algorithme <Nom de l’Algorithme>
<Déclaration de constantes>
<Déclaration de types>
<Déclaration de variables>
Début
<Instructions>
Fin
Il est possible d’ajouter des commentaires (des explications et
des informations qui ne vont pas être exécutées ou prises en
considération par l’ordinateur) :
/* commentaires */ (plusieurs lignes) ou
// commentaires (une seule ligne) 17/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 17/120
Introduction
Notion d’algorithmique
LES VARIABLES
Structure générale
Structures de contrôle
Entrée/sortie
Sous programmes et Tableaux
Section IV. Premier programme : instructions
d’entrée/sortie
18/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 18/120
Introduction
Notion d’algorithmique
LES VARIABLES
Structure générale
Structures de contrôle
Entrée/sortie
Sous programmes et Tableaux
Instruction de sortie : d’affichage ou d’écriture
L’instruction d’écriture ”Ecrire” affiche des informations sous
une forme compréhensible sur un périphérique de sortie
(L’écran). Ce qui permet au développeur de communiquer
avec l’utilisateur de son programme.
Syntaxe de l’instruction de sortie
Ecrire(Ident) ⇒ affiche sur l’écran le contenu de la variable
Ident
Ecrire(100) ⇒ affiche sur l’écran 100
Ecrire(”Bonjour tous les étudiants présents”) ⇒ affiche sur
l’écran le texte Bonjour tous les étudiants présents.
Ecrire(”Bonjour”, X) ⇒ affiche sur l’écran le texte Bonjour
puis le contenu de la variable X
19/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 19/120
Introduction
Notion d’algorithmique
LES VARIABLES
Structure générale
Structures de contrôle
Entrée/sortie
Sous programmes et Tableaux
Instruction d’entrée : de lecture
L’instruction de lecture ”Lire” permet à l’utilisateur d’entrer des
valeurs au programme à partir de l’entrée standard. (Le
clavier).
Syntaxe de l’instruction de sortie
Lire(Ident1, . . . , Identi, . . . , identn) ⇒ saisir une valeur à
partir du clavier et la mettre dans la variable Identi
20/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 20/120
Introduction
Notion d’algorithmique
LES VARIABLES
Structure générale
Structures de contrôle
Entrée/sortie
Sous programmes et Tableaux
Premier algorithme
Exercice
Ecrire un algorithme qui lit :
le prix hors taxe d’un article
le nombre d’articles achetés
le taux de la TVA
Et qui affiche le montant total toute taxe comprise.
21/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 21/120
Introduction
Notion d’algorithmique
LES VARIABLES
Structure générale
Structures de contrôle
Entrée/sortie
Sous programmes et Tableaux
Premier algorithme
Solution
Algorithme montant
/* Cette partie de déclaration sera expliquée lors du prochain
chapitre*/
PHT, TVA: Réel
Nbre: Entier
Début
Ecrire(”Veillez donner le prix hors taxe d’un article”)
Lire(PHT)
Ecrire(”Veillez donner le nombre d’articles achetés”)
Lire (Nbre) Ecrire(”Veillez donner le taux de la TVA”)
Lire (TVA)
Ecrire (”le montant total est:”, (PHT*Nbre) * (1+(TVA*0.01)))
Fin 22/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 22/120
Introduction
Notion d’algorithmique
LES VARIABLES
Structure générale
Structures de contrôle
Entrée/sortie
Sous programmes et Tableaux
Merci pour votre attention
https://sites.google.com/site/maherhelaoui/
23/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 23/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Chapitre II. Les variables
24/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 24/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Section I. Introduction
25/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 25/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Objectif ?
Maı̂triser les notions : variable, type et valeur.
à la fin de ce chapitre vous devez
faire la différence entre variable et valeur
savoir affecter une valeur à une variable
savoir accorder le bon type à une variable
26/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 26/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Section II. Déclaration de variable
27/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 27/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Besoin d’un programme
Mémoriser provisoirement des informations
Un programme a besoin de mémoriser provisoirement
des valeurs (information)
ces valeurs peuvent être de plusieurs types (des nombres,
du texte, etc.)
pour ce faire, nous pouvons utiliser des variables.
28/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 28/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Schématiser une variable
Une variable peut être schématisée par une boı̂te, repérée par
une étiquette. Pour avoir accès au contenu de la boı̂te, il suffit
de la désigner par son étiquette.
01231456
893 6996
29/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 29/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Déclaration des variables
Une variable : un emplacement de mémoire, désigné par une
adresse binaire
Dans la mémoire vive de l’ordinateur, la boı̂te et
l’étiquette sont remplacées par un emplacement de
mémoire, désigné par une adresse binaire.
Le compilateur se charge d’affecter une étiquette choisie
par le programmeur pour chaque adresse binaire.
Afin d’utiliser une variable il faut préparer son emplacement
mémoire : créer la boı̂te et lui coller une étiquette.
Ceci peut se faire au début de l’algorithme (Variables
globales), avant même les instructions proprement dites.
C’est ce qu’on appelle la déclaration des variables. 30/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 30/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Type ?
C’est quoi un compilateur ?
Un programme écrit par le programmeur (en Langage
structuré) ne peut être exécuté par votre ordinateur que s’il est
transformé en langage compris par la machine : Le langage
binaire.
Le compilateur est un programme permettant de transformer
un code écrit en Langage structuré en un code écrit en
langage binaire.
31/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 31/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Syntaxe de la déclaration des variables
Variable g : Entier Long
Variables PrixHT, TauxTVA, PrixTTC : Réel Simple
Une variable est déclarée par la syntaxe suivante :
Variable Nom de la variable (étiquette ou identificateur) : Type
de la variable
32/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 32/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Type ?
C’est quoi le type d’une variable ?
Une bonne question, le type d’une variable est l’objet de la
prochaine Section.
33/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 33/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Section III. Type d’une variable et opérateurs associés
34/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 34/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Type ?
C’est quoi le type d’une variable ?
Pour créer une boı̂te (réserver un emplacement mémoire
pour notre variable) nous devons préciser sa taille.
Elle doit correspondre à ce que l’on voudra mettre dedans,
il faut éviter :
1 un gaspillage de mémoire de créer une boite (réserver un
emplacement mémoire) plus grande par rapport à notre
besoin.
2 une taille insuffisante pour mémoriser toute l’information
utile. (Perte de données utiles)
Optimiser la taille
Imaginons que nous allons construire un château pour élever
un oiseau ou construire une toute petite cage pour un éléphant. 35/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 35/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Types numériques
Types numériques classiques
Byte (octet) de 0 à 255
Entier simple de -32 768 à 32 767
Entier long de -2 147 483 648 à 2 147 483 647
Réel simple de -3,40E38 à -1,40E-45 pour les valeurs
négatives et de 1,40E-45 à 3,40E38 pour les valeurs
positives
Réel double de -1,79E308 à -4,94E-324 pour les valeurs
négatives et de 4,94E-324 à 1,79E308 pour les valeurs
positives.
36/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 36/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Opérateurs : Types numériques
Opérateurs : Types numériques classiques
Entier : Parenthèse, Exposant, {+, −, ∗, /, %, div },
{=, 6=, <, <=, >, >=}
Réel : Parenthèse, Exposant, {+, −, ∗, /},
{=, 6=, <, <=, >, >=}
37/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 37/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Types non numériques
exemples de types non numériques
alphanumérique (également appelé caractère) lettres, de
signes de ponctuation, d’espaces, ou de chiffres.
chaı̂ne de caractères (une telle chaı̂ne de caractères est
toujours notée entre guillemets) selon le type 2010 peut
représenter le nombre 2010, ou la suite de caractères 2, 0,
1 et 0.
booléen uniquement les valeurs logiques VRAI et FAUX
38/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 38/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Opérateurs : Types non numériques
Opérateurs et fonctions
caractère : {=, 6=, <, <=, >, >=}
La comparaison entre les caractères se fait selon leur code
ASCII ’ ’ < ’0’ < ’7’ < ’A’ < ’Z’ < ’a’ < ’z’ < ’}
∃ des fonctions prédéfinies comme Succ(Ident),
Pred(Ident), ASCII(Ident)
booléen : NON, ET, OU, {=, 6=, <, <=, >, >=}
Chaı̂ne de caractères : ∃ des procédures et des fonctions
prédéfinies comme la fonctions LONG(”Bonjour”) renvoie
la cardinalité de la chaı̂ne dans cet exemple 7
39/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 39/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Types et langage C
0123 45267879 8 79233
!"#$"!!#!"!
"%&"!"!'()%*()! 6
""'!#!"'!%&#!"!+,-./012"%345
7$"89:;<= ' !#"'!% 6 E#6"$#! "
"'! >)3453!##$#@5!"!"!'7963793?@AB=C@AB5 # ) F
!'D
!"'! 7$"89:;<= ' 3!I5#!"'!% 6E#6 $#! "
>#!"!7963793G=AHH5!'% # ) F
JKLMN"'!"!'()%3> )#$#!"!"!'796379
# 3?4A=BOB=C4A=BOB5!'D453!#@5 =""@O"
#"! "!"8%P!'"QQ"?4ABOBE!#?4ABORF # 6"
"'!# #!ST#)!!"'!T'!")!"#!
"'!#"! #U(!=# 'U#ST
#)!)!"#!" ###!%3H5
!"'!# JKLMN!"'!34"5!'()%>#!"!7963793G= 6
!"'!#"! OH=H4H5!'D
"! V""'!"!'()%3> )#$#!"!"!'796379
"'! 3?4A=BOB=C4A=BOB5!'D453!#@5 =""@O" 6"#6
"'!"! "!"8%
!"'! V"!"'!34"5!'()%>#!"!7963793G= 6
!"'!"! OH=H4H5!'D
#!' WLXY"'!"!'()%>)#$#!345"3!!#"!'@7596379
#!'"! 3?A=@IB=IR4=OIB=CA=@IB=IR4=OIB5!'D ="" 6"
"'!#!' 4A""!"8%
"'!#!'"!
!"'!#!' WLXY!"'!"!'()%>)345#$#!"!"!'79 6
!"'!#!'"! 63793G=I=AZI=ZOB=AZH5!'D
#!'#!' WLXY[\LXY"'!"!'()%>)#$#!"!"!'79
#!'#!'"! 6379
"'!#!'#!' 3?Z=AA434=543!B#A=G@45O=RHI=BBH=RGB=CZ=AA4=4BA=G4O=RHI=BBH=RGB5 6"
"'!#!'#!'"! !'D =""OI""!"8%)"$"
"!>ZZQ"#!#$!%
!"'!#!'#!' WLXY[\LXY!"'!"!'()%>#!345"!7963793G=
=IIO=BII=GB4=BGZ=HH@=O@H5!'D )"$""! 6
!"'!#!'#!'"! C@R>Z ZQ"#!#$!%
]$#"!'T)#"!()=($#"!'T >#!Q"!'$#^c35
)""#!$#"!'T)#"!()%*)#)"!)"$" 6$6a
$# E^)"!" ""F=#UQ#!#("" 6'6d
&___BHI"!'T)""#!"!($#"!'T)#"!$#E4A
"F%P"$#"` "(#)"#!*!!^ab&_> 66_
OGHHZ$#"!'T)#"!""b% 66*
]$#"!'T)#"!()=($## T 6$6a
)""#!$#"!'T)#"!()%*)#)"!)"$" 6'6d
# E^)"!" ""F=#UQ#!#(""
&___BHI# T)""#!"!($#"!'T)#"! 66_
$#EOI"F%P"$#"` "(#)"#! 66*35
*!!^ab&_>OGHHZ$#"!'T)#"!""b%
]$#"!'T)#"!()=())#!^!
)""#!$#"!'T)#"!! $#%*)#)"
!)"$"%&!"^RO^!T)""#!$#"!'T 6e$6ea 40/71
#!'# )#"!$#ERG"= ()"(ZO"#@AR""! 6e'6ed
#(U")"!'(F=!#!T&___b# T# b 6e6e_35
E@AR"F=&___BHI` )T)""#!$#"!'T)#"! 6e6e*
$#E@AR"F=## %"#!
#!'# $#"%
Dr. Maher Helaoui Algorithmique et Structures de Données I 40/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Opérateurs et priorités
Ordre de priorité entre les opérateurs
Parenthèse Exposant Non {∗, /, %, div } {+, −}
{<, <=, >, >=} {=, 6=} ET OU
NB : en cas d’égalité dans l’ordre de priorité la priorité est
de gauche à droite
41/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 41/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Tables de vérité (1)
Table de vérité de négation
Ident1 NON Ident1
vrai faux
faux vrai
Table de vérité : conjonction ET
Ident1 Ident2 Ident1 ET Ident2
vrai vrai vrai
vrai faux faux
faux vrai faux
faux faux faux
42/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 42/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Tables de vérité (2)
Table de vérité : disjonction OU
Ident1 Ident2 Ident1 OU Ident2
vrai vrai vrai
vrai faux vrai
faux vrai vrai
faux faux faux
43/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 43/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Section III. Instruction d’affectation
44/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 44/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Syntaxe de l’instruction affectation
Syntaxe
Une variable permet de mémoriser une information, cette
opération se fait à travers une instruction : l’affectation (lui
attribuer une valeur).
En algorithmique, cette instruction se note avec le signe ← .
Syntaxe de l’instruction affectation :
Nom de la variable ← Valeur de la variable.
45/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 45/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Exemple déclaration
Exemple
Variable Boite : Entier
/*Cette ligne permet de réserver un espace mémoire suffisant
pour contenir un entier au niveau de la déclaration notre boite
est vide.*/
23456 46/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 46/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Exemple affectation
Exemple
Boite ← 12
/*Cette ligne permet d’affecter la valeur entière de 12 à notre
variable Boite.*/
12
45678 47/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 47/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Exemple réaffectation
Exemple
Boite ← 20
/*Cette ligne permet d’écraser la valeur de 12 dans notre
variable Boite et affecter une nouvelle valeur entière de 20.*/
12
45678 48/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 48/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Des questions ?
Questions :
1 Et les constantes ?
2 Pourquoi avez-vous confondu Bita et octet ?
3 Est-il possible d’allouer x/8 octetb avec un langage
structuré comme le C ?
4 Pourquoi le type booléen n’est pas numérique ? Il
n’existe pas en C ?
5 Quel est l’espace mémoire réservé au type booléen ?
a
The byte is a unit of digital information that most commonly consists of
eight bits ... The size has historically been hardware dependent
b
Le Byte est la plus petite unité logiquement adressable par un
programme
49/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 49/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Les constantes
Une constante
Une constante est une variable dont la valeur est fixée tout
au long du programme.
Syntaxe constante
Constante
Nom de la constante ← Valeur de la constante : Type
50/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 50/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
L’enregistrement
Créer mon propre type
L’enregistrement est le fait de créer une nouvelle structure
de données en créant un nouveau type.
Syntaxe
Type
Nom de la structure : Enregistrement
Structures de données Typés
Fin Enregistrement
51/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 51/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Créer un enregistrement
Booléen
1 Supposons que nous n’avons pas de type booléen, ce qui
est le cas avec le langage c, et nous voulons le créer.
2 quelle est l’allocation mémoire à réserver pour le nouveau
type créé ?
52/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 52/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Exercice
Exercice 1
Soit l’algorithme Test1 suivant :
Algorithme Test1
// Ajouter les déclarations nécessaires
Début
A ← 4(1)
B ← 11(2)
A ← B − A(3)
B ← B − A(4)
A ← A + B(5)
Fin
Ajouter les déclarations nécessaires à l’algorithme Test1
Que fait l’algorithme ci-dessus ? 53/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 53/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Exercice 1 suite
Exercice 1 suite
Ce résultat est-t-il toujours vrai ? Etablir la trace de cet
algorithme (sous forme de tableau) avec a et b pour
valeurs initiales de A et B.
Ecrire un nouvel algorithme équivalant en n’utilisant que
des variables ? (Utiliser une variable intermédiaire).
54/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 54/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Section IV. Conclusion
55/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 55/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Ce qu’il faut retenir
Variable, type et valeur.
à la fin de ce chapitre vous devez
faire la différence entre variable et valeur
savoir déclarer une variable
savoir utiliser l’instruction d’affectation
Gérer la déclaration des structures de données.
56/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 56/120
Introduction
Déclaration
LES VARIABLES
Type
Structures de contrôle
Affectation
Sous programmes et Tableaux
Merci pour votre attention
https://sites.google.com/site/maherhelaoui/
57/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 57/120
Introduction
LES VARIABLES Instructions conditionnelles
Structures de contrôle Structures itératives
Sous programmes et Tableaux
Chapitre III. Les structures de contrôle
58/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 58/120
Introduction
LES VARIABLES Instructions conditionnelles
Structures de contrôle Structures itératives
Sous programmes et Tableaux
Section I. Introduction
59/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 59/120
Introduction
LES VARIABLES Instructions conditionnelles
Structures de contrôle Structures itératives
Sous programmes et Tableaux
Pourquoi ?
Objectifs ?
Ce chapitre a pour objectifs de
Définir et présenter la syntaxe des structures de contrôle
Maı̂triser et savoir utiliser les structures de contrôle
60/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 60/120
Introduction
LES VARIABLES Instructions conditionnelles
Structures de contrôle Structures itératives
Sous programmes et Tableaux
Section II. Les Instructions conditionnelles
61/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 61/120
Introduction
LES VARIABLES Instructions conditionnelles
Structures de contrôle Structures itératives
Sous programmes et Tableaux
Formes de l’instruction conditionnelle Si
Syntaxes des divers formes
1 Si (expression logique) Alors Instructions FinSi
2 Si (expression logique 1) Alors Instructions 1 Sinon
Instructions 2 FinSi
3 // Les conditionnelles emboı̂tées :
Si (expression logique 1) Alors Instructions 1
Sinon Si (expression logique 2) Alors Instructions 2
...
Sinon Si (expression logique n-1) Alors Instructions n-1
Sinon Instructions n
FinSi
62/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 62/120
Introduction
LES VARIABLES Instructions conditionnelles
Structures de contrôle Structures itératives
Sous programmes et Tableaux
Exemple : instruction conditionnelle Si
Instruction conditionnelle Si
Ecrire un programme permettant à un étudiant de l’ISI de saisir
sa moyenne et il affiche le résultat et la mention obtenue.
63/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 63/120
Introduction
LES VARIABLES Instructions conditionnelles
Structures de contrôle Structures itératives
Sous programmes et Tableaux
Syntaxe de l’instruction Selon
Nous pouvons remplacer Les conditionnelles emboı̂tées par
l’instruction Selon ( permet une facilité d’écriture)
Syntaxe
Selon identificateur Faire
(liste de) valeur(s) 1 : instructions 1
(liste de) valeur(s) 2 : instructions 2
...
(liste de) valeur(s) n-1: instructions n-1
Sinon
instructions n
FinSelon
64/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 64/120
Introduction
LES VARIABLES Instructions conditionnelles
Structures de contrôle Structures itératives
Sous programmes et Tableaux
Exemple : instruction conditionnelle Selon
Instruction conditionnelle Selon
Ecrire un programme permettant à un étudiant de l’ISI de saisir
sa moyenne et selon la moyenne il affiche le résultat et la
mention obtenue.
65/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 65/120
Introduction
LES VARIABLES Instructions conditionnelles
Structures de contrôle Structures itératives
Sous programmes et Tableaux
Section III. Les structures itératives
66/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 66/120
Introduction
LES VARIABLES Instructions conditionnelles
Structures de contrôle Structures itératives
Sous programmes et Tableaux
La structure itérative Pour
Syntaxe
1 Pour compteur de début à fin [(pas = val)] Faire
Instructions
FinPour
67/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 67/120
Introduction
LES VARIABLES Instructions conditionnelles
Structures de contrôle Structures itératives
Sous programmes et Tableaux
Exemple : structure itérative Pour
structure itérative Pour
Ecrire un programme permettant à un étudiant de l’ISI de
proposer cinq idées permettant à son avis d’améliorer la qualité
des formations.
68/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 68/120
Introduction
LES VARIABLES Instructions conditionnelles
Structures de contrôle Structures itératives
Sous programmes et Tableaux
La structure itérative Tant que
Syntaxe
1 Tantque (expression logique) Faire
Instructions
FinTantque
69/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 69/120
Introduction
LES VARIABLES Instructions conditionnelles
Structures de contrôle Structures itératives
Sous programmes et Tableaux
Exemple : structure itérative Tant que
structure itérative Tant que
Ecrire un programme permettant à un étudiant de l’ISI de
proposer toutes idées permettant à son avis d’améliorer la
qualité des formations.
70/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 70/120
Introduction
LES VARIABLES Instructions conditionnelles
Structures de contrôle Structures itératives
Sous programmes et Tableaux
La structure itérative Répéter Jusqu’à
Syntaxe
1 Répéter
Instructions
Jusqu’à (expression logique)
71/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 71/120
Introduction
LES VARIABLES Instructions conditionnelles
Structures de contrôle Structures itératives
Sous programmes et Tableaux
Exemple : structure itérative Répéter Jusqu’à
structure itérative Répéter Jusqu’à
Ecrire un programme permettant à un étudiant de l’ISI de
proposer au minimum une idée permettant à son avis
d’améliorer la qualité des formations.
72/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 72/120
Introduction
LES VARIABLES Instructions conditionnelles
Structures de contrôle Structures itératives
Sous programmes et Tableaux
Section V. Conclusion
73/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 73/120
Introduction
LES VARIABLES Instructions conditionnelles
Structures de contrôle Structures itératives
Sous programmes et Tableaux
Conclusion
Conclusion
Dans ce Chapitre nous avons présenté:
Les instructions conditionnelles.
Les structures itératives
74/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 74/120
Introduction
LES VARIABLES Instructions conditionnelles
Structures de contrôle Structures itératives
Sous programmes et Tableaux
Merci pour votre attention
https://sites.google.com/site/maherhelaoui/
75/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 75/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Chapitre IV. Les Sous programmes et Tableaux
76/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 76/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Section I. Introduction
77/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 77/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Pourquoi ?
Objectifs ?
Ce chapitre a pour objectifs de
Maı̂triser la programmation modulaire
Introduire les tableaux et les matrices
Présenter des algorithmes de tri
78/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 78/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Section II. Les Sous programmes
79/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 79/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Exemple 1
Pourquoi les sous programmes ?
Pouvez vous écrire un programme qui
demande à l’utilisateur de remplir les valeurs de deux
variables de types entiers X 1 et Y 2 ?
calcule la somme de X 1 et Y 2 ?
demande à l’utilisateur de remplir deux autres variables de
types entiers X 2 et Y 3 ?
calcule la somme de X 2 et Y 3 ?
demande à l’utilisateur de remplir deux autres variables de
types entiers X 3 et Y 4 ?
calcule la moyenne de X 3 et Y 4 ?
80/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 80/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Exemple 2
Pourquoi les sous programmes ?
Pouvez vous écrire un programme qui
demande à l’utilisateur de remplir deux variables X 1 et Y 2
?
permute les valeurs de X 1 et Y 2 ?
demande à l’utilisateur de remplir deux autres variables X 2
et Y 3 ?
permute les valeurs de X 2 et Y 3 ?
demande à l’utilisateur de remplir deux autres variables X 3
et Y 4 ?
permute les valeurs de X 3 et Y 4 ?
81/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 81/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Procédure et fonction
Procédure
Une procédure est un sous programme qui n’a pas de retour
propre à la procédure.
Fonction
Une fonction est une procédure qui a un type et un retour, de
même type que la fonction, une ou un ensemble de valeurs,
propres à la fonction.
82/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 82/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Syntaxe d’une procédure
Syntaxe
Nom de la procédure(liste typée de paramètres formels)
/*en-tête de la procédure*/
Déclaration des variables locales
Début
Instructions /*Un bloc homogène*/
Fin
83/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 83/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Syntaxe d’une fonction
Syntaxe
Nom de la fonction(liste typée paramètres formels) : [type
propre à la fonction]/*en-tête de la fonction*/
Déclaration des variables locales
Début
Instructions /*Un bloc homogène*/
Nom de la fonction ← expression ou variable à renvoyer /*Mot
Clé du retour*/
Fin
84/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 84/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Structure générale d’un algorithme
Mise à jour de la Syntaxe de la structure générale
Algorithme <Nom de l’Algorithme>
<Déclaration de constantes>
<Déclaration de types>
<Déclaration de variables>
<Procédures et Fonctions>
Début
<Instructions>
Fin
Instruction d’appel d’une fonction ou une procédure
Nom de la procédure(Liste de paramètres non typée)
Variable ← Nom de la fonction(Liste de paramètres non typée)
85/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 85/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Fonctions somme et moyenne
Fonction somme de deux entiers
Somme(A:Entier, B:Entier) : Entier/*en-tête de la fonction
somme*/
Début
Somme ← A+B
Fin
Fonction moyenne de deux entiers
Moyenne(A:Entier, B:Entier) : Réel /*en-tête de la fonction
Moyenne*/
Somme(A:Entier, B:Entier) : Entier /*La déclaration de la
fonction Somme n’est pas obligatoire*/
Début
Moyenne ← Somme(A,B)/2 86/71
Fin Dr. Maher Helaoui Algorithmique et Structures de Données I 86/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Exercice 1
Solution Exercice 1
Algorithme Solution-Exercice-1
Somme(A:Entier, B:Entier) : Entier/*en-tête de la fonction
somme*/
Début Somme ← A+B Fin
Moyenne(A:Entier, B:Entier) : Réel /*en-tête de la fonction
Moyenne*/
Début Moyenne ← Somme(A,B)/2 Fin
i, a, b : Entiers c: Réel
Début
Pour i de 1 à 3 Faire
Ecrire(”Donnez un entier”) Lire(a)
Ecrire(”Donnez un entier”) Lire(b)
Si (i < 3) alors Ecrire(”La somme est : ”, Somme(a,b) ) FinSi 87/71
FinPour Dr. Maher Helaoui Algorithmique et Structures de Données I 87/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Passage de paramètres par valeurs et par adresses
Passage de paramètres par valeurs
Nous passons le contenu de la variable en paramètre : le
contenu de la variable passée en paramètre ne sera pas
modifié suite à l’appel de la fonction ou la procédure.
Passage de paramètres par adresses
Nous passons l’adresse physique de la variable en paramètre :
le contenu de la variable passée en paramètre sera modifié
suite à l’appel de la fonction ou la procédure.
88/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 88/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Passage de paramètre par adresse
Var Boite xxxxxx
L’Adresse de la variable est son emplacement
mémoire physique.
89/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 89/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Exercice 2
Solution Exercice 2
Algorithme Solution-Exercice-2
Permuter(Var A:Entier, Var B:Entier) /*en-tête de la Procédure
Permuter*/
temps : Entier Début
temps ← A
A←B
B ← temps
Fin
a, b,c,d,e,f : Entiers
Début
Ecrire(”Donnez un entier X1”) Lire(a)
Ecrire(”Donnez un entier Y1”) Lire(b)
Ecrire(”Donnez un entier X2”) Lire(c) 90/71
Ecrire(”Donnez un entier
Dr. Maher Y2”)
Helaoui Lire(d)
Algorithmique et Structures de Données I 90/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Appel d’une fonction (1)
Fonctions ne renvoyant rien au programme et sans passage
d’arguments
Une fonction ne renvoyant rien au programme est une
Procédure de type void.
Fonction renvoyant une valeur au programme et sans passage
d’arguments
Une fonction ne possède pas de paramètre formel et après
exécution, renvoie une valeur. Le type de cette valeur est
déclaré avec la fonction. La valeur retournée est spécifiée à
l’aide du mot réservé return.
Fonction avec passage d’arguments
91/71
Fonctions utilisent les valeurs de certaines variables du
Dr. Maher Helaoui Algorithmique et Structures de Données I 91/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Appel d’une fonction (2)
Fonction avec passage d’arguments
Fonctions utilisent les valeurs de certaines variables du
programme les ayant appelé.
92/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 92/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Exemple 4
Fonction ne renvoyant rien au programme et sans passage
d’arguments
Appelons une fonction carre ne renvoyant rien au programme
et sans passage d’arguments pemettant de calculer le carré
d’un entier choisi par l’utilisateur de notre programme.
93/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 93/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Exemple 4 bis
Fonction renvoyant une valeur au programme et sans passage
d’arguments
Appelons une fonction carre renvoyant au programme le carré
d’un entier choisi par l’utilisateur et sans passage d’arguments.
94/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 94/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Exemple 4 bis bis
Fonction avec passage d’arguments
Appelons une fonction carre renvoyant au programme le carré
d’un entier choisi par l’utilisateur au programme principale et
passons le comme argument à cette fonction.
Nous pouvons appeler la fonction carre autant de fois que l’on
veut avec des variables différentes.
x est un paramètre formel ou argument : ce n’est pas une
variable du programme.
n1 une variable du programme est un paramètre effectif de la
fonction carre.
95/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 95/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Le passage de paramètres
Le passage de paramètres d’une fonction
Avec l’instruction return d’une part et la liste des paramètres
d’autre part, une fonction dispose de deux moyens pour
communiquer ou pour échanger des données avec d’autres
fonctions.
Divers passage de paramètres d’une fonction
Passage de paramètres par valeur.
Passage de paramètres par adresse.
96/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 96/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Exemple : Passage de paramètres par valeur d’une
fonction
Passage de paramètres par valeur
Reprenons l’Exemple 3 et présentons
une première solution avec passage de paramètres par
valeur.
une deuxième solution avec passage de paramètres par
adresse.
97/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 97/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Section III. Les Tableaux et les Matrices
98/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 98/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Tableaux ?
C’est quoi un tableau ?
Un tableau ou vecteur T est une suite de N variables ou
enregistrement de même types (appelées éléments) dont les
adresses sont ordonnées.
N est la dimension de T : elle nous permet de connaı̂tre
l’espace mémoire consommé par T .
99/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 99/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Adresses ordonnées ?
Pourquoi les adresses sont ordonnées ?
L’ordre sur les adresses de T permet l’accès à n’importe quel
élément T [i] de T étant donnée son indice et l’adresse du
premier élément.
Indice ?
Les indices est un ordre sur les adresses des divers éléments
de T .
1 Le premier élément est d’indice 1 : accessible par T[1]
2 Le deuxième élément est d’indice 2 : accessible par T[2]
3 ...
4 Le nième élément est d’indice n : accessible par T[n] 100/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 100/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Syntaxe des Tableaux
Déclaration
Nom Tableau : Tableau [premier indice . . . dernier indice]de
Type élément
101/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 101/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Tableaux à 2 dimentions ?
C’est quoi une Matrice ?
Un tableau à deux dimensions ou Matrice M est une suite de L
Tableaux chacun de dimension C de même types dont les
adresses sont ordonnées.
L’espace mémoire consommé par M est de L ∗ C de type d’un
élément.
102/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 102/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Adresses ordonnées ?
Pourquoi les adresses sont ordonnées ?
L’ordre sur les adresses de M permet l’accès à n’importe quel
élément M[i][j] de M étant donnée ses indices et l’adresse du
premier élément.
Indice ?
Les indices est un ordre sur les adresses des divers éléments
de M.
1 Le premier élément est d’indice 1ere Ligne 1ere Colonne :
accessible par M[1][1]
2 Le deuxième élément est d’indice 1ere Ligne 2eme
Colonne : accessible par M[1][2]
103/71
3 ...
Dr. Maher Helaoui Algorithmique et Structures de Données I 103/120
4
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Syntaxe des Tableaux
Déclaration
Nom Matrice : Tableau [1er indice . . . Leme indice] [1er indice
. . . Ceme indice] de Type élément
104/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 104/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Section IV. Les Algorithmes de Tri
105/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 105/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Tri par sélection
Principe
1 Permuter l’élément le plus petit de T[1 . . . N] avec l’élément
1 de T
2 Permuter l’élément le plus petit de T[2 . . . N] avec l’élément
2 de T . . .
3 Permuter l’élément le plus petit de T[N-1, N] avec l’élément
N-1 de T
Pour i de 1 à N-1 Faire
Permuter l’élément le plus petit de T[i . . . N] avec l’élément i de
T
FinPour
106/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 106/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Tri par sélection
Algorithme : Tri par sélection
Const
NMax ← 1000 : Entier
Variables
i,N, IndicePP : Entiers
T: Tableau [1 . . . NMax] d’Entiers
Debut
Pour i de 1 à N-1 Faire
IndicePP ← SelectionnerLePlusPetit(T [], i, N)
Permuter(T,i,IndicePP)
FinPour
Fin
107/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 107/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Sélectionner Le Plus Petit
SelectionnerLePlusPetit(T[]:Entier,i:Entier,N:Entier) : Entier
Variables
j,IndiceMin : Entiers
Debut
IndiceMin ← i
Pour j de i+1 à N Faire
Si T[j] < T[IndiceMin] Alors
IndiceMin ← j
FinSi
FinPour
SelectionnerLePlusPetit ← IndiceMin
Fin
108/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 108/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Permuter Le Plus Petit
Permuter(T:Entier,i,IndicePP)/*T:Entier est équivalente à Var
T[]*/
Début
Si i 6= IndicePPAlors
Variable
Aux : Entier
Aux ← T [i]
T[i] ← T [IndicePP]
T[IndicePP] ← Aux
FinSi
Fin
109/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 109/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Tri à bulle
Principe
Tantque une permutation est possible Faire
Permuter les plus grands éléments du tableau enfin de tableau.
FinTantque
Ceci est équivalent à
Tantque une permutation est possible Faire
Permuter les plus petits éléments du tableau au début du
tableau.
FinTantque
110/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 110/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Tri à bulle
Procédure TRISBULLE (VAR T : tableau entier, N : entier)
Variables i, j, aux : Entiers
DEBUT
Pour i de 1 à N-1 Faire
j←N
Tantque (j 6= i) Faire
Si (T[j] < T[j - 1] ) alors
Permuter(T,j,j-1)
Finsi
j←j 1
FinTantque
FinPour
FIN
111/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 111/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Tri par insertion
Procédure TriInsertion( T:tableau Entier, n: Entier)
Variables
x,i,j:Entiers
pour (i de 1 à n - 1) Faire
x ← T[i]
j←i
Tant que (j > 0 et T[j - 1] > x) Faire
T[j] ← T[j - 1]
j←j-1
FinTantque
T[j] ← x
FinPour
Fin
112/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 112/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Section V. Conclusion
113/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 113/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Conclusion
Conclusion
Dans ce Chapitre nous avons présenté:
Les Sous programmes.
Les Tableaux et les Matrices.
Les Algorithmes de Tri.
114/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 114/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Merci pour votre attention
https://sites.google.com/site/maherhelaoui/
115/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 115/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
P UBLICATIONS
116/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 116/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
Bibliographie
Kernighan, B. et Ritchie, D.:
The C Programming Language. (1988)
Faber, F.:
Cours : Programmation C.
http://www.ltam.lu/cours-c/prg-c c.htm, (1997)
Ben Ayed, D.:
Cours : Algorithmique et structures de données.
ISI, (2018)
Helaoui, M.:
Travaux Dirigés : Algorithmique et Structures de Données. 117/71
https://www.researchgate.net/publication/266392442,
Dr. Maher Helaoui Algorithmique et Structures de Données I 117/120
Introduction
Sous programme
LES VARIABLES
Tableaux
Structures de contrôle
Tri
Sous programmes et Tableaux
MERCI POUR VOTRE ATTENTION
118/71
Dr. Maher Helaoui Algorithmique et Structures de Données I 118/120