Vous êtes sur la page 1sur 20

Université Sidi Mohamed Ben Abdellah

Ecole Supérieure de Technologie


Fès

Introduction à l’Algorithmique

Cours Algorithmique
Avant-propos

« Un langage de programmation est une convention pour donner


des ordres à un ordinateur. Ce n’est pas censé être obscur,
bizarre et plein de pièges subtils.Ça, ce sont les caractéristiques
de la magie. » - Dave Small

2
EST Fès Algorithmique
Introduction a l’Algorithmique
Plan
 Définitions
 Historique
 Notion d’algorithme
 Les pré-requis de algorithmique
 Langage machine
 Algorithmique et programmation
 Spécifications
 Avec quelles conventions écrit-on un algorithme ?

4
EST Fès Algorithmique
Historique
 L’algorithmique est une science apparue, il y a très
longtemps, bien avant l’idée même d’ordinateur.
 Citons, vers 1800 avant J-C, les babyloniens de l’époque
d’Hammurabi formulant des règles précises pour la
résolution de certains types d’équations.
 En Perse, au 9ème siècle après J-C, on trouve l’origine du
mot« algorithme », qui provient du surnom de Abu Ja'far
Mohammed Ibn Mûsâ Al-Khowâ-rismi qui écrit un
ouvrage d’arithmétique utilisant les règles de calcul sur la
représentation décimale des nombres.

5
EST Fès Algorithmique
Historique (suite)
 Au fil du temps, la signification du mot s’élargit et
finalement vient à désigner tout procédé de calcul
systématique, voire automatique, mais sans référence
nécessaire à une machine.
 Côté informatique du 21ème siècle et en première
approche, on peut dire qu'un algorithme est un « mode
d'emploi pour résoudre un problème ».

6
EST Fès Algorithmique
Définitions
 algorithme nom masculin
(arabe al-khârezmi, surnom d'un mathématicien arabe)
Math. et Inform. Suite finie d'opérations élémentaires
constituant un schéma de calcul ou de résolution d'un
problème.
– (c) Petit Larousse.

 Algorithme(D. Knuth, The art of computer programming,


vol. 1): ensemble fini de règles qui donne une suite
d'opérations pour résoudre un certain type de problèmes.

7
EST Fès Algorithmique
Notion d’algorithme
Un algorithme est:
 une méthode systématique;
 définie étape par étape;
 permettant de résoudre à coup sûr et en un nombre fini
d'étapes une certaine classe de problèmes ou de répondre à
une certaine classe de questions.

8
EST Fès Algorithmique
Notion d’algorithme (suite)
 Un algorithme est un procédé de calcul automatique composé d’un
ensemble fini d’étapes, chaque étape étant formée d’un nombre fini
d’étapes élémentaires, qui permet de résoudre le problème en donnant la
sortie requise.
 Chaque étape élémentaire est :
- définie de façon rigoureuse et non ambiguë
- effective, c-à-d, pouvant être réalisée par une machine
 l’algorithme doit toujours terminer après un nombre fini d’opérations.
 Les algorithmes que nous considérons sont déterministes: : étant donné
un algorithme, toute exécution de cet algorithme sur les mêmes données
donne le même résultat.

9
EST Fès Algorithmique
Les pré-requis de algorithmique
 Il faut avoir une certaine intuition;
 Il faut être méthodique et rigoureux;
 Il faut systématiquement se mettre mentalement à la place
de la machine qui va les exécuter;
 La vérification méthodique, pas à pas, de chacun de vos
algorithmes représente plus de la moitié du travail à
accomplir.

10
EST Fès Algorithmique
Langage machine
 les ordinateurs, quels qu’ils soient, ne sont
fondamentalement capables de comprendre que quatre
catégories d'instructions (ordres):
 L’affectation de variables
 La lecture / écriture (entrées / sorties)
 Les tests (Les structures alternatives)
 Les boucles (Les structures répétitives)

11
EST Fès Algorithmique
L’affectation de variables
 L’action de stocker une valeur dans une variable est
appelée l’affectation.
 Une variable est, a priori, une case mémoire.
 Une variable informatique est différente d’une variable
mathématique.
 En algorithmique, une variable est l’association d’un nom
et d’un contenu (nous verrons par la suite que la notion de
variable est un peu plus complexe en programmation).

12
EST Fès Algorithmique
La lecture / écriture
Il existe des d’instructions pour permettre à la machine de
dialoguer avec l’utilisateur:
 Dans un sens, ces instructions permettent à l’utilisateur de
rentrer des valeurs au clavier pour qu’elles soient utilisées
par le programme. Cette opération est la lecture.
 Dans l’autre sens, d’autres instructions permettent au
programme de communiquer des valeurs à l’utilisateur en
les affichant à l’écran. Cette opération est l’écriture.

13
EST Fès Algorithmique
Les tests
Egalement intitulés les structures alternatives:
Ils permettent de ne pas exécuter systématiquement
certains instructions, mais seulement dans certains cas bien
prévus par le programmeur.

14
EST Fès Algorithmique
Les boucles
Egalement appelées les structures répétitives (les itérations):
Ils permettent de faire executer plusieurs fois certains
phases de programme, sans qu’il soit nécessaire à chaque
fois de réécrire les instructions correspondantes.

15
EST Fès Algorithmique
Algorithmique et programmation
 Apprendre l’algorithmique, c’est apprendre à manier la
structure logique d’un programme informatique;
 L’algorithmique exprime les instructions résolvant un
problème donné indépendamment des particularités de
tel ou tel langage;
 Un langage de programmation s'utilise dans le cadre de la
communication entre l'homme et la machine;
 Un langage algorithmique est fait pour la communication
entre l'homme et l'homme.

16
EST Fès Algorithmique
Algorithmique et programmation
 Et en particulier pour la communication avec soi-même
dans le but de mettre au claire (et formellement) sa pensée;
 le but de produire un tout cohérent et compréhensible pour
un humain, facile à traduire pour un ordinateur;
 Les programmes sont difficiles à relire, à maintenir;
 Ils mélangent instructions et astuces;
 Ils imposent des contraintes techniques qu'un algorithme
sait ignorer.

17
EST Fès Algorithmique
Algorithmique et programmation
 Les vrais programmeurs savent que l'algorithme se situe au
coeur du travail de programmation:
 véritable fédérateur de la méthode;
 cheville entre les langages et les idées;
 dénominateur commun et premier au sens où il se situe avant
tout progrmme.

 Le langage algorithmique est un langage générique


permettant de traiter des problèmes par concaténation
d'instructions élémentaires. Il est à la base de tous les
langages de programmation.

18
EST Fès Algorithmique
Avec quelles conventions écrit-on un
algorithme ?

 Historiquement, plusieurs types de notations ont représenté


des algorithmes (entre autres):
 représentation graphique, avec des carrés, des losanges…

 On utilise généralement une série de conventions appelée


« pseudo-code » :
 Il ressemble à un langage de programmation authentique dont on aurait
évacué la plupart des problèmes de syntaxe;
 Il est purement conventionnel.

19
EST Fès Algorithmique
Conclusion
 un algorithme a cinq particularités importantes:
• Finitude: un algorithme doit toujours terminer en un nombre fini
d'étapes.
• Il est défini: chaque pas d'algorithme doit être défini précisément.
• Entrée: un algo a 0 ou plusieurs entrées.
• Sortie: un algo a 0 ou plusieurs sorties.
• Effectivité: chaque opération doit être sufisamment basique pour
pouvoir être exécutée en un temps fini par un homme utilisant... un
crayon et un papier ou une machine.

20
EST Fès Algorithmique

Vous aimerez peut-être aussi