Algorithme et Programmation : compl´ements
1. Un peu d’histoire
D`es l’antiquit´e, des algorithmes ont ´et´e utilis´es dans le commerce ou le calcul des impˆots (des descriptions
exhaustives ont ´et´e retrouv´ees) : ils permettaient notamment aux marchands de faire leurs calculs d’int´erˆets
sans rien connaˆıtre aux math´ematiques !
Par ailleurs, l’algorithme math´ematique le plus connu, d´ecrit par Euclide vers -300, permet de trouver le plus
grand diviseur commun `a deux entiers.
Mais le mot ”algorithme” vient du nom du c´el`ebre math´ematicien perse Al Khuwaritzmi (latinis´e au Moyen-
Age en Algoritmi) qui au IXesi`ecle, ´ecrivit le premier ouvrage sur la r´esolution syst´ematique des ´equations du
premier et deuxi`eme degr´e.
2. De l’agorithme `a sa programmation
L’int´erˆet majeur qu’il y a `a disposer d’algorithme de r´esolution de probl`eme est de permettre l’automatisa-
tion : on peut d´el´eguer `a une machine l’ex´ecution de tˆaches routini`eres conduisant `a la solution.
La traduction de l’algorithme en vue de son ex´ecution par une machine pose deux probl`emes distincts :
a) le d´ecoupage en tˆaches suffisamment simples et sans ambig¨uit´e pour qu’une machine sache les ex´ecuter
correctement ;
b) la traduction de ces tˆaches dans un langage compr´ehensible par la machine.
a) Analyse descendante
Une technique d’´elaboration d’un bon algorithme est appel´ee m´ethode descendante (top down). Elle consiste
`a consid´erer un probl`eme dans son ensemble, `a pr´eciser les donn´ees fournies et les r´esultats `a obtenir puis `a
d´ecomposer le probl`eme en plusieurs sous-probl`emes plus simples qui seront trait´es s´epar´ement et ´eventuellement
d´ecompos´es eux-mˆemes de mani`ere plus fine.
Exemple : imaginons un robot domestique `a qui nous devons fournir un algorithme lui permettant de pr´eparer
une tasse de caf´e soluble. Une premi`ere version de l’algorithme pourrait ˆetre :
(1) faire bouillir de l’eau
(2) mettre le caf´e dans la tasse
(3) ajouter l’eau dans la tasse
Les ´etapes de cet algorithme ne sont probablement pas assez d´etaill´ees pour que le robot puisse les interpr´eter.
Chaque ´etape doit donc ˆetre affin´ee en une suite d’´etapes plus ´el´ementaires, chacune ´etant sp´ecifi´ee d’une mani`ere
plus d´etaill´ee que dans la premi`ere version. Ainsi l’´etape (1) faire bouillir l’eau peut ˆetre affin´ee en
(1.1) remplir la bouilloire d’eau
(1.2) brancher la bouilloire sur le secteur
(1.3) attendre l’´ebullition
(1.4) d´ebrancher la bouilloire
De mˆeme, (2) mettre le caf´e dans la tasse pourrait ˆetre affin´e en
(2.1) ouvrir le pot `a caf´e
(2.2) prendre une cuiller `a caf´e
(2.3) plonger la cuiller dans le pot
(2.4) verser le contenu de la cuiller dans la tasse
(2.5) fermer le pot `a caf´e
et (3) ajouter de l’eau dans la tasse pourrait ˆetre affin´ee en
(3.1) verser de l’eau dans la tasse jusqu’`a ce que celle-ci soit pleine
Certaines ´etapes ´etant encore trop complexes et sans doute incompr´ehensibles pour notre robot, il faut les affiner
davantage. Ainsi l’´etape (1.1) remplir la bouilloire d’eau peut n´ecessiter les affinements suivants :
(1.1.1) mettre la bouilloire sous le robinet
(1.1.2) ouvrir le robinet
(1.1.3) attendre que la bouilloire soit pleine
(1.1.4) fermer le robinet
Quand il proc`ede `a des affinements des diff´erentes ´etapes, le concepteur d’un algorithme doit naturellement
savoir o`u s’arrˆeter. Autrement dit, il doit savoir quand une ´etape est compr´ehensible par le robot ou la machine.
b) Pour r´esoudre le second probl`eme, il existe de nombreux langages compr´ehensibles par un ordinateur dont
Turbo-Pascal. Chaque langage pr´esente ses particularit´es propres, mais les principes de base sont plus ou moins
toujours les mˆemes.
3. Algorithmes math´ematiques : exemples
Le but d’un algorithme en math´ematique est de produire la solution g´en´erale d’un probl`eme.
Un algorithme se distingue d’une succession de calculs par l’aspect g´en´eral de la m´ethode de r´esolution qu’il
permet : ainsi, quelque soient les donn´ees, la r´esolution pourra ˆetre obtenue.
R´esolution des ´equations du premier degr´e
Probl`eme : ´etant donn´ee une ´equation de type ax +b= 0, en trouver les solutions.
Ici, les donn´ees sont les r´eels aet b, et la sortie doit ˆetre les solutions de l’´equation associ´ee ax +b= 0.
A nous de trouver la seconde ´etape : la suite des instructions qui permet de passer des entr´ees `a la sortie.
Attention de bien pr´evoir tous les cas possibles (ne pas s’occuper que du cas g´en´eral ! )
sinon l’algorithme n’en est plus un.
Il existe plusieurs fa¸cons de pr´esenter un algorithme : dans l’exemple qui nous int´eresse, l’arbre est appropri´e.
Entr´ee : l’´equation ou plutˆot les r´eels aet b
Groupe d’instructions `a faire
Sortie : affichage des solutions.
R´esolution des ´equations du second degr´e
Probl`eme : ´etant donn´ee une ´equation de type ax2+bx +c= 0, en trouver les solutions.
Adopter une d´emarche analogue pour obtenir un algorithme sous forme d’arbre.
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !