Академический Документы
Профессиональный Документы
Культура Документы
Construire un algorithme
Un programme est crit avec lintention de rsoudre une problmatique telle que stocker des informations relatives un client, imprimer une facture ou encore calculer des statistiques an de prvoir le temps quil fera dans 2, 3 ou 5 jours. Un ordinateur sait calculer, compter, trier ou rechercher linformation dans la mesure o un programmeur lui a donn les ordres excuter et la marche suivre pour arriver au rsultat. Cette dmarche sappelle un algorithme . Dterminer un algorithme, cest trouver un cheminement de tches fournir lordinateur pour quil les excute. Voyons comment sy prendre pour le construire.
Chaque mot a son importance. Ainsi, la coque est aussi important que uf . Le terme la coque implique que lon doit pouvoir mesurer le temps avec prcision. Notons que tous les ingrdients et ustensiles ncessaires ne sont pas cits dans lnonc. En particulier, nous ne savons pas si nous disposons dune plaque de feu au gaz ou llectricit. Pour rsoudre notre problme, nous devons prendre certaines dcisions. Ces dernires vont avoir une inuence sur lallure gnrale de notre algorithme. Supposons que pour cuire notre uf nous soyons en possession des ustensiles et ingrdients suivants :
casserole plaque lectrique
Introduction
En xant la liste des ingrdients et des ustensiles, nous dnissons un environnement, une base de travail. Nous sommes ainsi en mesure dtablir une liste de toutes les actions mener pour rsoudre le problme, et de construire la marche suivre permettant de cuire notre uf.
Liste des oprations
Verser leau dans la casserole, faire bouillir leau. Prendre la casserole, luf, de leau, le minuteur, le coquetier, la cuillre. Allumer ou teindre la plaque lectrique. Attendre que le minuteur sonne. Mettre le minuteur sur 3 minutes. Poser la casserole sur la plaque, le coquetier, le minuteur sur la table, luf dans la casserole, luf dans le coquetier.
Cette numration est une description de toutes les actions ncessaires la cuisson dun uf. Chaque action est un fragment du problme donn et ne peut plus tre dcoupe. Chaque action est lmentaire par rapport lenvironnement que nous nous sommes donn. En dnissant lensemble des actions possibles, nous crons un langage minimal qui nous permet de cuire luf. Ce langage est compos de verbes (Prendre, Poser, Verser, Faire, Attendre) et dobjets (uf, Eau, Casserole, Coquetier). La taille du langage, cest--dire le nombre de mots quil renferme, est dtermine par lenvironnement. Pour cet exemple, nous avons, en prcisant les hypothses, volontairement choisi un environnement restreint. Nous aurions pu dcrire des tches comme prendre un contrat daccs lnergie lectrique ou lever une poule pondeuse , mais elles ne sont pas utiles notre objectif pdagogique.
Question Quelle serait la liste des oprations si lon dcidait de faire un uf poch ? Rponse Les oprations seraient :
Prendre du sel, du vinaigre, une assiette. Verser le sel, le vinaigre dans leau. Casser luf et le verser dans leau. Retirer luf avec la cuillre.
Il est inutile de prendre un coquetier.
Telle que nous lavons dcrite, la liste des oprations ne nous permet pas encore de faire cuire notre uf. En suivant cette liste, tout y est, mais dans le dsordre. Pour raliser cette fameuse recette, nous devons ordonner la liste.
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Prendre une casserole. Verser leau du robinet dans la casserole. Poser la casserole sur la plaque lectrique. Allumer la plaque lectrique. Faire bouillir leau. Prendre luf. Placer luf dans la casserole. Prendre le minuteur. Mettre le minuteur sur 3 minutes. Prendre un coquetier. Poser le coquetier sur la table. Attendre que le minuteur sonne. teindre la plaque lectrique. Prendre une cuillre. Retirer luf de la casserole laide de la cuillre. Poser luf dans le coquetier.
Lexcution de lensemble ordonn de ces tches nous permet maintenant dobtenir un uf la coque.
Remarque Lordre dexcution de cette marche suivre est important. En effet, si lutilisateur ralise lopration 12 (Attendre que le minuteur sonne) avant lopration 9 (Mettre le minuteur sur 3 minutes), le rsultat est sensiblement diffrent. La marche suivre ainsi dsordonne risque dempcher la bonne cuisson de notre uf.
Cet exemple tir de la vie courante montre que pour rsoudre un problme, il est essentiel de dnir les objets utiliss, puis de trouver la suite logique de tous les ordres ncessaires la rsolution dudit problme.
Question O placer les oprations supplmentaires, dans la liste ordonne, pour faire un uf poch ? Rponse Les oprations sinsrent dans la liste prcdente de la faon suivante : Entre les lignes 3 et 4,
Prendre le sel et le verser dans leau. Prendre le vinaigre et le verser dans leau.
Introduction
Reprenons par exemple le minuteur dans la liste des objets utiliss pour cuire notre uf la coque. En programmation objet, la liste des oprations concernant le minuteur peut scrire :
Minuteur_prendre Minuteur_initialiser Minuteur_sonner
Les termes prendre, initialiser et sonner reprsentent des blocs dinstructions qui dcrivent comment raliser laction demande. Ces actions sont accomplies uniquement si elles sont appliques lobjet minuteur. Ainsi, par exemple, linstruction uf_sonner ne peut tre une instruction valide, car laction sonner nest pas dnie pour lobjet uf. Grce ce principe, associer des actions des objets, la programmation objet garantit lexactitude du rsultat fourni, en ralisant des traitements adapts aux objets.
Introduction
En ce sens, nous pouvons voir lordinateur comme un robot qui sait agir en fonction des ordres qui lui sont fournis. Ces actions, en nombre limit, sont dcrites ci-dessous.
Dposer ou lire une information dans une case mmoire
La mmoire est forme dlments, ou cases, qui possdent chacune un numro (une adresse). Chaque case mmoire est en quelque sorte une bote aux lettres pouvant contenir une information (une lettre). Pour y dposer cette information, lordinateur (le facteur) doit connatre ladresse de la bote. Lorsque le robot place une information dans une case mmoire, il mmorise ladresse o celle-ci se situe an de retrouver linformation le moment venu.
Figure I-1
La mmoire de lordinateur est compose de cases possdant une adresse et pouvant contenir tout moment une valeur.
Le robot sait dposer une information dans une case, mais il ne sait pas la retirer (au sens de prendre un courrier dpos dans une bote aux lettres). Lorsque le robot prend linformation dpose dans une case mmoire, il ne fait que la lire. En aucun cas il ne la retire ni ne lefface. Linformation lue reste toujours dans la case mmoire.
Remarque Pour effacer une information dune case mmoire, il est ncessaire de placer une nouvelle information dans cette mme case. Ainsi, la nouvelle donne remplace lancienne et linformation prcdente est dtruite.
Le robot lit et excute les oprations dans lordre o elles lui sont fournies. Pour faire une addition, il va chercher les valeurs additionner dans les cases mmoire appropries (stockes, par exemple, aux adresses a et b) et ralise ensuite lopration demande. Il enregistre alors le rsultat de cette opration dans une case dadresse c. De telles oprations sont dcrites laide dordres, appels aussi instructions .
Figure I-2
Le robot est capable de comparer deux valeurs entre elles pour dterminer si lune est plus grande, plus petite, gale ou diffrente de lautre valeur. Grce la comparaison, le robot est capable de tester une condition et dexcuter un ordre plutt quun autre, en fonction du rsultat du test. La ralisation dune comparaison ou dun test fait que le robot ne peut plus excuter les instructions dans leur ordre dapparition. En effet, suivant le rsultat du test, il doit rompre lordre de la marche suivre, en sautant une ou plusieurs instructions. Cest pourquoi il existe des instructions particulires dites de branchement . Grce ce type dinstructions, le robot est mme non seulement de sauter des ordres, mais aussi de revenir un ensemble doprations an de les rpter.
Figure I-3
Suivant le rsultat du test, lordinateur excute lune ou lautre des instructions en sautant celle quil ne doit pas excuter.