2. Sommaire
01 - Les Notions de base en algorithmique
02 – Démarche à suivre pour écrire un bon algorithme
03 – Propriétés d’un bon algorithme
04 - Étapes d’un algorithme
05 - Particularités d’un bon algorithme
06 - Quelquesrèglespourconcevoirunalgorithme
07 - Place de l’algorithme dans la résolution d’un problème informatique
08 - La gestion des erreurs
2
3. Un algorithme
C’est une liste d’étapes que vous devez suivre pour effectuer une tâche.
Exemple de tâches:
1 Faire une omelette: Prendre une poêle, poser la poêle sur le feu, allumer le
feu, verser l’huile, casser un œuf, verser l’œuf, casser un autre œuf, verser l’œuf,
mettre du sel, mettre du poivre,….
3
4. Un algorithme
2 Se brosser les dents: Prendre la brosse, mouiller la brosse, prendre le tube,
ouvrir le tube, déposer le dentifrice sur la brosse, fermer le tube, flotter les
dents…
4
5. Origine du mot d’algorithme
Algorithme : mot dérivé du nom du mathématicien al_Khwarizmi qui a vécu
au 9ème siècle, était membre d’un académie des sciences à Bagdad . Un
algorithme prend des données en entrée, exprime un traitement particulier et
fournit des données en sortie.
5
6. Démarche à suivre
6
Un algorithmique a pour vocation de permettre a résoudre un problème en
suivant la démarche suivants.
Quand on a un problème informatique à résoudre il faut:
1. Découper le problème initial (souvent complexe) en plusieurs morceaux de
petits problèmes simples.
2. Chercher la solution de tous les petits problèmes
3. Faire la somme des solutions des petits problèmes pour avoir la solution du
problème initial.
7. Caractéristique d’algorithmique
Savoir expliquer comment faire un travail sans la moindre ambiguïté. langage
simple : des instructions (pas élémentaires). suite finie d'actions à entreprendre
en respectant une chronologie imposée. L’écriture algorithmique : un travail de
programmation à visée universelle. un algorithme ne dépend pas du langage dans
lequel il est implanté, ni de la machine qui exécutera le programme
correspondant.
7
8. Propriétés d’un bon algorithme
• Complexité
En combien de temps un algorithme va -t-il atteindre le résultat escompté? De quel
espace a-t-il besoin?
• Calculabilité:
Existe-t-il des tâches pour lesquelles il n'existe aucun algorithme ? Etant donnée une
tâche, peut-on dire s'il existe un algorithme qui la résolve ?
• Correction
Peut-on être sûr qu'un algorithme réponde au problème pour lequel il a été conçu ?
8
9. Étapes d’un algorithme
• Préparation du traitement
données nécessaires à la résolution du problème
• Traitement
résolution pas à pas,
après décomposition en sous-problèmes si nécessaire
• Edition des résultats
impression à l’écran, dans un fichier, etc
9
11. Particularités d’un bon algorithme
• Un algorithme doit être:
PRECIS:
Il doit indiquer:
- l'ordre des étapes qui le constituent
- à quel moment il faut cesser une action
- à quel moment il faut en commencer une autre
- comment choisir entre différentes possibilités
11
12. Particularités d’un bon algorithme
• Un algorithme doit être:
DETERMINISTE
- Une suite d'exécutions à partir des mêmes données doit produire des
résultats identiques.
FINI DANS LE TEMPS
- c'est-à-dire s'arrêter au bout d'un temps fini.
12
13. Quelquesrèglespourconcevoirunalgorithme
1) Entrée: L'énoncé d'un algorithme doit comprendre une définition des
données auxquelles il s'applique. Normalement, un algorithme possède une ou
plusieurs données d'entrée (input data), c’est à-dire des valeurs qui sont
connues avant son exécution et sur lesquelles l'algorithme est appliqué. Comme
un algorithme doit tenir compte des propriétés des données d'entrée.
l'ensemble de ces données doit être spécifié de façon exacte. Evidemment cet
ensemble peut être l'ensemble vide.
13
14. Quelquesrèglespourconcevoirunalgorithme
2) Sortie : Un algorithme possède une ou plusieurs données de sortie (output
data), c'est-à-dire des valeurs produites par lui-même. Ces données sont en
relation exactement spécifiée avec les données d'entrée.
3) Terminaison
Un algorithme doit se terminer après un nombre fini de pas.
14
15. Quelquesrèglespourconcevoirunalgorithme
4) Clarté
Le concepteur d'un algorithme doit vérifier attentivement que l'algorithme est fixé
dans tous ses détails, c'est-à-dire que l'algorithme décrit précisément la procédure
qu'il doit suivre, que tous les cas ont été prévus et, en particulier, que l'ordre dans
lequel les règles devront être appliquées n'est pas ambigu. Chaque opération doit
donc être définie d'une manière précise et claire. Cette tâche est connue sous le
nom d'affinement progressif de l'algorithme ou conception descendante
15
16. Quelquesrèglespourconcevoirunalgorithme
5) Efficacité
Pour des raisons pratiques, un algorithme doit pouvoir être exécuté de manière
efficace. On dit qu'un algorithme doit être efficace ce qui signifie que: chaque
opération doit être suffisamment simple, afin qu'elle soit exécutable en un temps
fini, le nombre d'opérations doit être fini et limité de façon à ce que la machine
soit capable de terminer leur exécution dans un temps raisonnable
16
17. Place de l’algorithme dans la résolution d’un
problème informatique
Un algorithme doit être exprimé dans un langage de programmation pour être
compris et exécuté par un ordinateur. Le programme constitue le codage d'un
algorithme dans un langage de programmation donné, et qui peut être traité par
une machine. L'écriture d'un programme n'est qu'une étape dans le processus de
programmation, comme le montre le schéma suivant :
17
19. Place de l’algorithme dans la résolution d’un
problème informatique
L'analyse du problème consiste à définir les différentes étapes de sa résolution. Elle
permet de définir le contenu d'un programme en terme de données et d'actions. Le
problème initial est décomposé en sous problèmes plus simples à résoudre auxquels
on associe une spécification formelle ayant des conditions d'entrées et le(s)
résultat(s) que l'on souhaiterait obtenir. L'ensemble de ces spécifications représente
l'algorithme.
19
20. Place de l’algorithme dans la résolution d’un
problème informatique
La phase (Codage) suivante consiste à traduire l'algorithme dans un langage de
programmation donné tout en respectant strictement la syntaxe du langage.
20
21. La gestion des erreurs
Lors de l'étape d'exécution, soit des erreurs syntaxiques sont signalées, ce qui
entraîne des corrections en général simples à effectuer, soit des erreurs sémantiques
plus difficiles à déceler. Dans le cas d'erreurs syntaxiques les retours vers le
programme peuvent être fréquents. Dans le cas d'erreurs sémantiques, le
programme produit des résultats qui ne correspondent pas à ceux escomptés : les
retours vers l'analyse (l'algorithme) sont alors inévitables.
21