Exercice 2 - WordPress.com

publicité
Cours n° 1
Histoire de l’algorithmique
1. l'histoire
Dés l'antiquité, des algorithmes ont été utilisées dans le commerce ou le calcul des
impôts (des descriptions exhaustives ont été retrouvées) : ils permettaient
notamment aux marchands de faire leurs calculs d'intérêts sans rien connaitre aux
mathématiques !
Par ailleurs, l'algorithme mathématique le plus connu, décrit par Euclide vers 300, permet de trouver le plus grand diviseur commun à deux entiers.
Mais le mot "algorithme" vient du nom du célèbre mathématicien perse Al
Khawarizmi (latinisé au Moyen-âge en Algoritmi) qui au IX siècle, écrivit le
premier ouvrage sur la résolution systématique des équations du premier et
deuxième degré.
2. De l'algorithme à sa programmation
L'intérêt majeur qu'il y a à disposer d'algorithme de résolution de problème est de
permettre l'automatisation : on peut déléguer à une machine l'exécution de taches
routinières conduisant à la solution. La traduction de l'algorithme en vue de son
exécution par une machine pose deux problèmes distincts :
a) le découpage en taches suffisamment simples et sans ambigüité pour qu'une
machine sache les exécuter correctement ;
b) la traduction de ces taches dans un langage compréhensible par la machine.
3) Analyse descendante
Une technique d'élaboration d'un bon algorithme est appelée méthode descendante
(top down). Elle consiste à considérer un problème dans son ensemble, à préciser
les données fournies et les résultats à obtenir puis décomposer le problème en
plusieurs sous-problèmes plus simples qui seront traites séparément et
éventuellement décomposés eux-mêmes de manière plus fine.
Exemple : imaginons un robot domestique à qui nous devons fournir un
algorithme lui permettant de préparer une tasse de café soluble. Une première
version de l'algorithme pourrait être :
(1) faire bouillir de l'eau
(2) mettre le cafe dans la tasse
(3) ajouter l'eau dans la tasse
Les étapes de cet algorithme ne sont probablement pas assez détaillées pour que le
robot puisse les interpréter. Chaque étape doit donc être affinée en une suite
d'étapes plus élémentaires, chacune étant spécifiée d'une manière plus détaillée
que dans la première version.
Ainsi l'étape (1) faire bouillir l'eau peut être affinée en :
1
(1.1) remplir la bouilloire d'eau
(1.2) brancher la bouilloire sur le secteur
(1.3) attendre l'ébullition
(1.4) débrancher la bouilloire
De même, (2) mettre le café dans la tasse pourrait être affine en :
(2.1) ouvrir le pot à café
(2.2) prendre une cuiller à café
(2.3) plonger la cuiller dans le pot
(2.4) verser le contenu de la cuiller dans la tasse
(2.5) fermer le pot à café
Et (3) ajouter de l'eau dans la tasse pourrait être affinée en :
(3.1) verser de l'eau dans la tasse jusqu'à ce que celle-ci soit pleine
Certaines étapes étant encore trop complexes et sans doute incompréhensibles
pour notre robot, il faut les affiner davantage.
Ainsi l'étape (1.1) remplir la bouilloire d'eau peut nécessiter 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
L’algorithme final obtenu est le suivant :
(1.1) remplir la bouilloire d'eau
(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
(1.2) brancher la bouilloire sur le secteur
(1.3) attendre l'ébullition
(1.4) débrancher la bouilloire
(2.1) ouvrir le pot à café
(2.2) prendre une cuiller à café
(2.3) plonger la cuiller dans le pot
(2.4) verser le contenu de la cuiller dans la tasse
(2.5) fermer le pot à café
(3.1) verser de l'eau dans la tasse jusqu'à ce que celle-ci soit pleine
Remarque
2
Quand il procède à des affinements des différentes étapes, le concepteur d'un
algorithme doit naturellement savoir ou s'arrêter. Autrement dit, il doit savoir
quand une étape est compréhensible par le robot ou la machine.
3. Algorithmes mathématiques : exemples
Le but d'un algorithme en mathématique est de produire la solution générale d'un
problème. Un algorithme se distingue d'une succession de calculs par l'aspect
général de la méthode de résolution qu'il permet : ainsi, quelque soient les
données, la résolution pourra être obtenue.
Résolution des équations du premier degré
Problème : étant donnée une équation de type ax + b = 0, en trouver les solutions.
Ici, les données sont les réels a et b,
Et la sortie doit être les solutions de l'équation associée ax + b = 0.
A nous de trouver la seconde étape : la suite des instructions qui permet de passer
des entrées à la sortie. Attention de bien prévoir tous les cas possibles (ne pas
s'occuper que du cas général !) sinon l'algorithme n'en est plus un.
Il existe plusieurs façons de présenter un algorithme : dans l'exemple qui nous
intéresse, l'arbre est approprie.
Entrée : l'équation ou plutôt les réels a et b
Groupe d'instructions à faire
Sortie: affichage des solutions.
3
Serie TD N1
Exercice 1
Ecrire un algorithme en langage naturel pour préparer une omelette
Exercice 2
Ecrire un algorithme en langage naturel pour résoudre une équation de type
ax + b = 0,
Exercice 3
Problème : étant donnée une équation de type ax2 + bx + c = 0,
Ecrire un algorithme pour résoudre et trouver les solutions de cette
équation
Adopter une démarche analogue pour obtenir un algorithme sous forme
d'arbre.
Serie TD N1
Exercice 1
Ecrire un algorithme en langage naturel pour préparer une omelette
Exercice 2
Ecrire un algorithme en langage naturel pour résoudre une équation de
type ax + b = 0,
Exercice 3
Problème : étant donnée une équation de type ax2 + bx + c = 0,
Ecrire un algorithme pour résoudre et trouver les solutions de cette
équation
Adopter une démarche analogue pour obtenir un algorithme sous forme
d'arbre.
Serie TD N1
Exercice 1
Ecrire un algorithme en langage naturel pour préparer une omelette
Exercice 2
Ecrire un algorithme en langage naturel pour résoudre une équation de
type ax + b = 0,
Exercice 3
Problème : étant donnée une équation de type ax2 + bx + c = 0,
Ecrire un algorithme pour résoudre et trouver les solutions de cette
équation
Adopter une démarche analogue pour obtenir un algorithme sous forme
d'arbre.
4
Téléchargement