Chapitre 1
Introduction à l’algorithmique
Dr BOULOU
Objectifs pédagogiques du chapitre
Objectif général
A la fin du chapitre, l’étudiant est capable :
- d’expliquer ce qu’est un algorithme
- de dérouler la démarche de réalisation d’un
algorithme
2
Objectifs pédagogiques du chapitre
Objectifs spécifiques
A la fin du chapitre, l’étudiant est capable :
• de définir les concepts d’algorithme et
d’algorithmique
• de dérouler le processus d’écriture d’un algorithme
• d’expliquer ce qu’est un programme
• d’expliquer le processus de réalisation d’un
programme (cycle de développement du logiciel)
3
Contenu
• Notions d’algorithme et d’algorithmique
• Notions de données dans l’énoncé d’un problème
• Processus de description d’un algorithme
• Notion de programme
• Processus de réalisation/développement d’un
programme
4
Partie 1 - De l’algorithme au programme
5
Introduction à l’algorithmique
• Algorithmique : domaine de l’informatique
consacré à l’étude des algorithmes
•Un algorithme : description sans ambiguïté du
cheminement (succession de traitements)
conduisant à la résolution d’un problème donné
6
Introduction à l’algorithmique
Exemple d’algorithme
• Une recette de cuisine (Les différents détails
pour préparer un plat de spaguetti)
• Un cheminement mathématique pour résoudre
équation( la résolution d’une équation de
seconde degré)
• Expliquer à un étranger comment retrouver
l’Université Norbert ZONGO
Introduction à l’algorithmique
Les acteurs de mise en place
d’un algorithme
• Pour la mise en place d’un algorithme, il faut un premier
acteur qui va poser un problème spécifique exprimant un
besoin de résolution, il est couramment appelé
utilisateur de l’algorithme.
• Un deuxième acteur conçoit une solution appropriée au
problème donné, il est généralement appélé le
concepteur de l’algorithme,.
Introduction à l’algorithmique
Les acteurs de mise en place
d’un algorithme
Utilisateur :
▪ L'utilisateur est celui qui utilise l'algorithme pour
accomplir une tâche spécifique.
▪ Son rôle principal est de comprendre comment utiliser
l'algorithme pour obtenir les résultats souhaités sans
nécessairement comprendre les détails de son
fonctionnement interne.
▪ L'utilisateur peut être un individu ou un système
informatique interagissant avec l'algorithme pour effectuer
des opérations.
Introduction à l’algorithmique
Les acteurs de mise en place d’un
algorithme
Concepteur :
▪ Le concepteur est celui qui crée l'algorithme, en concevant
sa logique et en le mettant en œuvre.
▪ Son rôle principal est de comprendre en profondeur le
problème à résoudre, de concevoir une solution
algorithmique efficace et de l'implémenter dans un
langage de programmation donné.
▪ Le concepteur doit avoir une expertise en algorithmique,
en programmation et en résolution de problèmes pour
créer des algorithmes efficaces et optimisés.
Introduction à l’algorithmique
• Poser un problème à résoudre suppose l’expression,
l’énoncé, la formulation de ce problème
• A partir de l’énoncé du problème on peut repérer :
➢les données en entrée : ce sont généralement des
valeurs connues au départ
➢les données en sortie/résultat : ce sont des valeurs
calculées obtenues à la fin de la résolution du problème
➢les données intermédiaires/temporaires : elles sont à
mi-chemin entre les deux précédentes catégories de
valeurs car produites par des traitements intermédiaires
11
Introduction à l’algorithmique
Algorithme
Données en entrée
Données en sortie
Succession
d‘étapes de
traitement pouvant
produire et utiliser
des données
intermédiaires
NB : le nombre de données varie selon le problème à résoudre
12
Introduction à l’algorithmique
• Donnée en entrée = valeur fournie par l’utilisateur à
l’algorithme qui le stocke dans une variable en entrée
(input), ou bien une variable supposée déjà initialisée
Entrées Sorties
(à l’extérieur (à l’extérieur
de l’algo) de l’algo)
•Donnée en sortie/résultat = valeur calculée par
l’algorithme et rangée dans une variable en sortie/résultat
(output) attendue comme un résultat pour l’utilisateur
13
Introduction à l’algorithmique
• Enoncé du problème (cahier des charges) parfois
incomplet ⇒ nécessité de préciser (compléments
d’informations pour lever les ambiguïtés) le problème
avant de concevoir la solution
• Le problème posé par un client dans ses termes à lui
doit être traduit dans les termes des informaticiens :
c’est la phase de spécification du problème conduisant
à la phase de spécification de l’algorithme où l’on
dit ce que fait l’algorithme sans détailler
comment il le fait
14
Introduction à l’algorithmique
Énoncé d’un problème (cahier des charges)
Précisions apportées à l’énoncé du problème
Spécification de l’algorithme
Repérage des données en entrée
Repérage des données en sortie
Repérage des données en entrée/sortie
Repérage des données intermédiaires
Description de la méthode
15
Introduction à l’algorithmique
• Écriture/rédaction de l’algorithme : usage d’un
langage de description très proche de celui que
nous avons l’habitude d’employer (français +
expressions mathématiques, graphiques)
• Indépendance d’un algorithme de tout langage
de programmation
16
Introduction à l’algorithmique
• Pour résoudre un problème, généralement
plusieurs algorithmes peuvent être proposés
• Le meilleur algorithme est celui qui utilise au
mieux les ressources (temps de calcul, nombre de
lignes décrivant l’algorithme, taille des objets
requis, efforts de compréhension à faire, etc.)
• Il existe des problèmes pour lesquels on ne
connaît pas d’algorithme
17
Introduction à l’algorithmique
Partie 2 : Du programme aux résultats de l’exécution
18
Introduction à l’algorithmique
• PROGRAMME = Résultat de la traduction d’un
algorithme dans un langage de programmation
que comprend un ordinateur
• De nombreux langages de programmation
existent (langages de bas niveau et langages haut
niveau ou évolués, langages de programmation
impérative/procédurale, langages de programmation
fonctionnelle, langages de programmation objet,
langages de programmation événementielle, etc.)
19
Compilation & interprétation
❑ Les programmes écrits par les programmeurs sont
appelés PROGRAMMES SOURCES car rédigés dans des
langages de programmation
❑ L’apprentissage de l’écriture de ces programmes à
travers le cours de « programmation »
20
Interprétation & Compilation
Les programmes sont :
❑ soit directement fournis à des INTERPRETEURS : on
est dans le processus d’INTERPRETATION
❑ soit traduits en PROGRAMMES EXECUTABLES qui
seront exécutés par les ordinateurs, après une succession de
traitements ; on est dans le processus de COMPILATION
21
Phases du développement de programmes
Édition de texte
Débogage
Chargement et exécution
Édition de liens
22
Édition de texte
❑ Éditeur de texte = programme de
[Link] saisie de texte par l’utilisateur sans mise
en forme. Ce texte va correspondre à un
programme écrit dans un langage de
[Link] programmation (respect de la syntaxe
d’écriture du programme et des
instructions)
[Link]
❑ Un fichier source résulte de cette
opération et porte un nom dont
tata.c l’extension rappelle le langage de
programmation employé
23
Compilation
❑ Compilateur = programme lisant un
programme écrit dans un 1er langage –
langage source – et le traduisant en un
[Link] programme équivalent écrit dans un 2nd
langage – langage cible ou objet -
Compilateur ❑ Lors de ce processus les erreurs
rencontrées sont signalées à l’utilisateur
dans un fichier d’erreurs de syntaxe
❑ Est associé à chaque langage de
programmation un Compilateur
[Link]
[Link]
24
Édition de liens ❑ Tous les liens irrésolus
(variables, étiquettes, fonctions
Biblio1
connues ailleurs que dans le
programme compilé) sont
[Link] Biblio2 traités, grâce à l’utilisation des
bibliothèques et autres fichiers
renfermant du code objet
fourni à l’éditeur de liens qui
Éditeur de liens
est un programme
❑ Le fichier exécutable
résultant contient le
Autres fichiers [Link] programme traduit en langage
(map, err, …) machine (code binaire)
25
Chargement et exécution
❑ Chargeur = programme ayant pour rôle d’installer
en mémoire centrale le code exécutable d’un
programme dont on connaît le nom : trouver la place,
copier le code en mémoire centrale avec les
adaptations liées aux translations, préparer le
contexte d’exécution
❑ Un programme exécutable un nom de fichier
renfermant du code exécutable
❑ Lorsque le processeur sera attribué au processus
correspondant au programme chargé, celui-ci
s’exécutera et produira des résultats
26
Débogage
❑ Débogueur = programme ayant pour rôle d’aider à
la mise au point d’un autre programme en cours de
développement (détection des erreurs de logique
appelés en anglais « bugs »), en fournissant la
possibilité de suivre pas à pas :
➢ le déroulement de chacune des instructions
constituant le programme testé
➢ l’évolution du contenu des variables, des
structures de données et autres zones en mémoire
centrale employées dans le programme
27
Environnement de développement intégré
❑ Il existe des environnements de développement
intégrés EDI où tous ces outils (éditeurs de texte,
compilateurs, éditeurs de liens, chargeurs,
débogueurs, gestionnaire de dépendances) sont
mis à la disposition des programmeurs pour leur
faciliter le travail
❑ Exemples : Microsoft Visual C++, Borland
Jbuilder, CodeBlocks, etc.
28
QUESTIONS ?
29
Dr BOULOU Mahamadi