Algorithmique
1. Introduction
Sommaire
I. Définitions
II. Historique
III. Concepts de base
IV. Structure générale d’un algorithme
2 Algorithmique ESI 2021-2022
Définitions
Définitions
Algorithmique
« Discipline qui a pour objet la conception, l'évaluation et
l'optimisation des méthodes de calcul en mathématiques et
en informatique » Encyclopédie Universalis
« Qui concerne les algorithmes, peut être exprimé par un
algorithme » Larousse
4 Algorithmique ESI 2021-2022
Définitions
Informatique = information + automatique
« Science du traitement automatique et rationnel de
l'information considérée comme le support des
connaissances et des communications » Larousse
5 Algorithmique ESI 2021-2022
Définitions
Algorithme
« Ensemble de règles opératoires dont l'application permet
de résoudre un problème énoncé au moyen d'un nombre fini
d'opérations. Un algorithme peut être traduit, grâce à un
langage de programmation, en un programme exécutable
par un ordinateur » Larousse
6 Algorithmique ESI 2021-2022
Définitions
Algorithme
« Un algorithme consiste en la spécification d'un schéma de
calcul, sous forme d'une suite d'opérations élémentaires
obéissant à un enchaînement déterminé » Encyclopédie
Universalis
7 Algorithmique ESI 2021-2022
Définitions
Algorithme
En d’autres termes, un algorithme est une suite
d’instructions qui, si elles sont exécutées correctement,
permettent de résoudre un problème donné
Ces instructions doivent être compréhensibles par celui
qui va exécuter l’algorithme
8 Algorithmique ESI 2021-2022
Définitions
Algorithme
N’est pas réservé à l’informatique
Est souvent utilisé dans la vie quotidienne
Manuels d’utilisation des équipements électroniques ;
Recettes de cuisine ; Instructions de GPS ; Notices des
médicaments …
9 Algorithmique ESI 2021-2022
Définitions
Algorithme
10 Algorithmique ESI 2021-2022
11 Algorithmique ESI 2021-2022
Définitions
Algorithme
En informatique, un algorithme est une suite ordonnée
d'instructions qui décrit de façon exhaustive les
différentes étapes à suivre par un processeur pour
résoudre un problème quelconque en un temps fini
12 Algorithmique ESI 2021-2022
Historique
Historique
Les premiers algorithmes connus étaient utilisés à
Babylone dès l’an 2000 BC environ pour effectuer des
calculs avancés des impôts
Euclide a conçu en l’an 300 BC environ un algorithme
pour calculer le plus grand commun diviseur (PGCD) de
deux nombres
Archimède a proposé en l’an 250 BC environ un
algorithme pour le calcul de Π
14 Algorithmique ESI 2021-2022
Historique
Le mathématicien arabe Muhammed Al-Khwarizmi, au
début du 8e siècle, est le premier à avoir systématiser
des algorithmes en proposant plusieurs algorithmes
pour la résolution d’équations du second degré
Le mot Algorithme trouve son origine dans le nom
latinisé " Algoritmi " d’Al-Khwarizmi
15 Algorithmique ESI 2021-2022
Historique
Averroès, au 12e siècle, propose une méthode de
raisonnement itérative, où la thèse s’affine d’étape en
étape
Ada Lovelace, mathématicienne britannique, a réalisé
en 1843 la première implémentation d’un algorithme
(pour le calcul des nombres de Bernoulli) sous forme
de programme
16 Algorithmique ESI 2021-2022
Historique
Alan Turing, mathématicien britannique, formalise les
concepts d'algorithme et de calculabilité en inventant
la machine de Turing en 1936. Cette machine virtuelle
donne une définition précise au concept d’algorithme
et permet de résoudre tout problème de calcul basé
sur une procédure algorithmique
17 Algorithmique ESI 2021-2022
Concepts de base
Concepts de base
L’ordinateur est une machine qui est
Incapable d’initiative ➔ ne peut exécuter une tâche que si
on lui fournit le détail des instructions à réaliser, i.e. que si
on le programme
Capable de stocker un programme et de l’exécuter
19 Algorithmique ESI 2021-2022
Concepts de base
Un programme informatique est l’implémentation
d’un ou plusieurs algorithme(s) dans un langage
de programmation donné
Ainsi, tout programme a, par définition, la structure d'un
algorithme
La programmation est la tâche d’écrire un
programme
20 Algorithmique ESI 2021-2022
Concepts de base
Problème dans le Analyse
monde réel
Codage avec un langage de programmation
Algorithme
Exécution
Programme
Résultat
21 Algorithmique ESI 2021-2022
Concepts de base
Un langage de programmation est une notation
conventionnelle destinée à implémenter des
algorithmes afin de produire des programmes
informatiques
À l’instar des langues naturelles, il est composé d'un
alphabet, d'un vocabulaire, de règles de grammaire et de
significations
22 Algorithmique ESI 2021-2022
Concepts de base
Niveaux des langages de programmation
Langages de bas niveau : sont très loin de la langue
naturelle (i.e. difficile à comprendre par les humains) et
fournissent très peu d'abstraction par rapport aux
instructions du processeur de la machine
23 Algorithmique ESI 2021-2022
Concepts de base
Niveaux des langages de programmation
Langages de haut niveau : sont proches de la langue
naturelle (i.e. facile à comprendre par les humains) et
permettent un grand niveau d’abstraction avec l’utilisation
de mots usuels (print, read, save, when, if…else, …) et de
symboles de mathématiques
24 Algorithmique ESI 2021-2022
Concepts de base
Langages de programmation de bas niveau
Langage machine : appelé aussi code machine, c’est
un ensemble d’instructions et de données codées en
binaire (des bits de 0 ou 1) interprété par le processeur
exécutant le programme
Il s’agit du langage natif d’un processeur, i.e. le seul qu’il
puisse comprendre et traiter
Il est propre à chaque processeur
25 Algorithmique ESI 2021-2022
Concepts de base
Langages de programmation de bas niveau
Langage assembleur : appelé aussi langage
d’assemblage, il représente le langage machine sous une
forme lisible par l’humain
Il est propre à chaque processeur
26 Algorithmique ESI 2021-2022
Concepts de base
Langages de programmation de haut niveau
Il existe des centaines de langages de programmation de
haut niveau
27 Algorithmique ESI 2021-2022
Concepts de base
28 Algorithmique ESI 2021-2022
PopularitY of Programming Languages [Link]
Concepts de base
Langages de programmation de haut niveau
Nécessitent une traduction vers le langage machine par
un compilateur (programme traduisant l’ensemble des
instructions demandées dans un langage de bas niveau,
notamment assembleur ou machine) ou un interpréteur
(programme exécutant pas à pas les instructions
demandées)
29 Algorithmique ESI 2021-2022
Exemples de langages compilés :
C, C++, Pascal, Go, Fortran…
30
[Link]
Exemples de langages interprétés:
Python, Java, Javascript, PHP, Ruby…
31
[Link]
Concepts de base
Langages de programmation de haut niveau
Un langage interprété permet la portabilité, i.e. obtenir un
code source qui fonctionne sur tout ordinateur
Un langage compilé permet d’exécuter le programme
directement sur l’ordinateur ➔ plus rapide que le même
programme dans un langage interprété
32 Algorithmique ESI 2021-2022
Structure générale d’un
algorithme
Écriture d’un algorithme
Un algorithme s’adresse à un être humain qui va
généralement le traduire dans un langage de
programmation
Son écriture doit détailler le plus possible son
fonctionnement et sa structure
Entrées; Enchaînement des instructions; Structures de
contrôle; Sorties
34 Algorithmique ESI 2021-2022
Écriture d’un algorithme
Un algorithme est indépendant du langage de
programmation
Il y a plusieurs possibilités pour écrire un algorithme
Utilisation de phrases dans la langue naturelle
Représentation graphique à l’aide d’organigrammes,
logigrammes ou algorigrammes
35 Algorithmique ESI 2021-2022
Écriture d’un algorithme
Un algorithme est indépendant du langage de
programmation
Il y a plusieurs possibilités pour écrire un algorithme
Utilisation de phrases dans la langue naturelle
Représentation graphique à l’aide d’organigrammes,
logigrammes ou algorigrammes
36 Algorithmique ESI 2021-2022
Écriture d’un algorithme
Un algorithme est indépendant du langage de
programmation
Il y a plusieurs possibilités pour écrire un algorithme
Utilisation de phrases dans la langue naturelle
Représentation graphique à l’aide d’organigrammes,
logigrammes ou algorigrammes
Utilisation de pseudo-code
37 Algorithmique ESI 2021-2022
Écriture d’un algorithme
Très souvent, un algorithme est écrit en pseudo-
code
Forme proche de la langue humaine, avec des conventions
proche des langages de programmation mais sans les
contraintes syntaxiques de ces derniers
Utilisation de mots-clés
ALGORITHME PROCEDURE FONCTION VAR CONSTANTE
PARAM DEBUT FIN SI SINON
SELON POUR AUTREMENT TANT_QUE REPETER
JUSQU’À
38 OU ET
Algorithmique ESI NON
2021-2022 …
Écriture d’un algorithme
Avantages de l’utilisation du pseudo-code
Lisibilité
Surtout avec l’utilisation des commentaires
Facilitation du passage au langage de programmation
Unification de l’écriture des algorithmes
39 Algorithmique ESI 2021-2022
Écriture d’un algorithme
Structure générale d’un algorithme écrit en pseudo-
code
En-tête
Partie déclarative
Corps
40 Algorithmique ESI 2021-2022
Écriture d’un algorithme
Structure générale d’un algorithme écrit en pseudo-
code
En-tête : Commence par le mot-clé ALGORITHME et
permet de définir le nom de l’algorithme
Partie déclarative : Permet de déclarer les différents
objets utilisés dans l’algorithme
Corps : Est délimitée par les mots-clés DEBUT et FIN et
contient toutes les instructions de l’algorithme
41 Algorithmique ESI 2021-2022
Écriture d’un algorithme
Structure générale d’un algorithme écrit en pseudo-
code
ALGORITHME nom_de_l’algorithme
<Déclarations>
DEBUT
<Instructions>
//commentaire
FIN
42 Algorithmique ESI 2021-2022
Écriture d’un algorithme
Structure générale d’un algorithme écrit en pseudo-
code
En-tête ALGORITHME nom_de_l’algorithme
Partie déclarative <Déclarations>
DEBUT
<Instructions>
Corps
//commentaire
FIN
43 Algorithmique ESI 2021-2022
Écriture d’un algorithme
Exemple
ALGORITHME calcul_du_périmètre
VAR longueur, largeur, p : réel
DEBUT
Afficher("Donner la longueur et la largeur: ")
Lire(longueur, largeur)
p 2*(longueur+largeur)
Afficher("Le périmètre est : ", p)
FIN
44 Algorithmique ESI 2021-2022
Écriture d’un algorithme
Exemple
Afficher("Donner la longueur: et la largeur ")
Lire(longueur, largeur)
p 2*(longueur+largeur)
Afficher("Le périmètre est : ", p)
45 Algorithmique ESI 2021-2022
Algorithmique
1. Introduction