MAM 3 / 2016-2017
H. RENARD-FERRY, E. CORNILLON
K. BLANC, M. DUCOFFE
MAM3 2016-2017 IPA
1
1
1
1
Introduction à la Programmation et à l'Algorithmique
Feuille 1
Qu'est-ce qu'un algorithme ?
Un algorithme est une méthode générale pour résoudre un ensemble de problèmes. Il est dit correct lorsque, pour chaque
instance du problème, il se termine en produisant la bonne sortie, c'est-à-dire qu'il résout le problème posé. On mesure
l'efficacité d'un algorithme notamment par sa durée de calcul, par la précision des résultats etc. Un algorithme sera
performant s'il utilise avec parcimonie les ressources dont il dispose. L’analyse de la complexité algorithmique permet
de prédire l'évolution en temps calcul nécessaire pour amener un algorithme à son terme, en fonction de la quantité de
données à traiter.
1 Construire un algorithme
Un ordinateur muni de l’application adéquate traite une information. Il sait calculer, compter, trier ou rechercher
l’information, dans la mesure où le programmeur lui a donné les ordres à exécuter et la marche à suivre pour arriver
au résultat.
Cette marche à suivre s’appelle un algorithme.
Déterminer l’algorithme, c’est trouver un cheminement de ches à fournir à l’ordinateur pour qu’il les exécute.
Voyons comment s’y prendre pour construire cette marche à suivre.
1.1 Exemple : faire des crêpes
Construire un algorithme, c’est avant tout analyser l’énoncé du problème afin de définir l’ensemble des objets à
manipuler pour obtenir un résultat.
1.1.1 Définition des objets manipulés
Analysons l’énoncé suivant :
Comment faire des crêpes sucrées ?
Chaque mot a son importance.
Notons que tous les ingrédients et ustensiles nécessaires ne sont pas cités dans l’énoncé. Pour résoudre ce pro-
blème, nous devons prendre des décisions, et es dernières vont avoir une allure générale de notre algorithme.
Supposons que, pour réaliser des crêpes, nous soyons en possession des ustensiles et ingrédients suivants :
Lait
Beurre
Sucre
Farine
Œufs
Grand saladier
Spatule
Cuillère à café
Cuillère en bois
Tasse
MAM 3 / 2016-2017
H. RENARD-FERRY, E. CORNILLON
K. BLANC, M. DUCOFFE
MAM3 2016-2017 IPA
2
2
2
2
En fixant la liste des ingrédients et des ustensiles, nous définissons un environnement, une base de travail. Nous
sommes ainsi en mesure d’établir une liste de toutes les actions à mener pour résoudre le problème et construire la
marche à suivre permettant d’obtenir des crêpes.
Des ingrédients aux crêpes, images honteusement chipées sur le blog de hoptoys
1.1.2 Ordonner la liste des opérations
Pour faire des crêpes, il suffit de suivre les instructions dans l'ordre. Les recettes sont des algorithmes destinés aux
humains et sont donc écrites dans un langage compréhensible par des humains. Comme on suppose que les humains
sont raisonnablement intelligents, il y a plein de choses qu'on n'a pas besoin de préciser dans la recette, par exemple
qu'il faut retirer la coquille des œufs ou ne pas utiliser du lait de raton-laveur. En plus, l'algorithme de la recette des
crêpes est très simple car il n'y a qu'un seul choix possible à chaque étape. Pour aborder cette notion de choix, nous
allons considérer un autre algorithme : celui qui permet de déterminer si on peut faire des crêpes ou non, en fonction
de ce qu'il y a dans le frigo et les placards.
MAM 3 / 2016-2017
H. RENARD-FERRY, E. CORNILLON
K. BLANC, M. DUCOFFE
MAM3 2016-2017 IPA
3
3
3
3
1.1.3 Les conditions dans les algorithmes
Les questions qu'il doit se poser sont affichées dans des losanges et les instructions dans des rectangles. À chaque
étape, en fonction des réponses, les instructions peuvent changer :
De manière générale, un algorithme sert à traiter ce qu'on appelle des "entrées" (dans notre cas, les ingrédients et le
matériel de cuisine) pour donner un résultat (les crêpes). Les instructions décrites dans l'algorithme doivent être très
simples et ne pas porter à confusion. Pour obtenir le même résultat, il existe une infinité d'algorithmes possibles.
Dans la recette des crêpes, on pourrait rajouter une étape consistant à faire tourner la bouteille de lait cinq fois sur
elle-même avant de s'en servir. Cela ne changerait rien au résultat : c'est donc une étape inutile. Un bon algorithme
est une recette facile à suivre, qui ne fait pas perdre de temps inutilement et qui ne provoque pas d'erreurs. Un bon
algorithme doit aussi avoir un début et surtout une fin ! Tous les informaticiens du monde se sont un jour retrouvés
confrontés à l'horreur absolue d'une boucle infinie, condamnés à faire des crêpes ad vitam æternam.
1.2 Les algorithmes en langage informatique
Aujourd'hui, toutes les machines avec des composants électroniques ont recours à des algorithmes, qui peuvent être
plus ou moins compliqués. Ces algorithmes sont généralement conçus par des humains, qui réalisent des schémas
qui ressemblent à ceux que nous avons vus précédemment. Pour être compris par des machines, ces schémas doivent
être traduits en langage informatique. Considérons par exemple un algorithme très simple, toujours dans la cuisine :
celui qui permet au four de maintenir la bonne température. Voici à quoi il pourrait ressembler (dans une version
très simple) :
MAM 3 / 2016-2017
H. RENARD-FERRY, E. CORNILLON
K. BLANC, M. DUCOFFE
MAM3 2016-2017 IPA
4
4
4
4
Pour transcrire cet algorithme an langage informatique, il faut d'abord identifier ce qu'on appelle les variables du
problème. Ici les variables sont la température demandée par l'utilisateur du four (que l'on peut noter Tu) et la
température du four (que l'on peut noter Tf). Dans le schéma, on fait aussi intervenir un laps de temps, auquel on
peut associer une variable t. On peut alors réécrire une suite d'instructions un peu plus codifiées. L'algorithme de-
vient :
étape 1 : Lire et Mémoriser Tu
étape 2 : Mesurer Tf
Si Tf est inférieure à Tu : chauffer fortement le four pendant un temps
t = 60 secondes puis revenir à l'étape 2
Si Tf est égale à Tu : chauffer modérément le four pendant un temps t = 60
secondes puis revenir à l'étape 2
Si Tf est supérieure à Tu : interrompre le chauffage pendant un temps t = 60
secondes puis revenir à l'étape 2
Enfin, pour traduire cela en langage informatique, on simplifie au maximum les phrases en utilisant un vocabulaire
très basique qui correspond à des opérations élémentaires déjà connues par la machine. Les mots en verts sont des
fonctions : des instructions qui lancent une action ou un autre algorithme, défini ailleurs. Dans l'algorithme ci-des-
sous par exemple, la fonction compteur effectue un compte à rebours à partir de la valeur t.
Algorithme bonne température
Début
étape 1 Lire Tu
étape 2 Lire Tf
t = 60
Si Tf inférieur à Tu
Alors
exécuter compteur (t)
tant que t supérieur à 0
exécuter chauffage fort
MAM 3 / 2016-2017
H. RENARD-FERRY, E. CORNILLON
K. BLANC, M. DUCOFFE
MAM3 2016-2017 IPA
5
5
5
5
fin tant que
aller à étape 2
Fin Si
Si Tf = Tu
Alors
exécuter compteur (t)
tant que t supérieur à 0
exécuter chauffage doux
fin tant que
aller à étape 2
Fin Si
Sinon
exécuter compteur (t)
tant que t supérieur à 0
exécuter chauffage stop
fin tant que
aller à étape 2
Fin Si
Fin
1.3 Les algorithmes dans la vie quotidienne
La grande majorité des algorithmes sont beaucoup plus compliqués que cela ! Mais ce qui est cool, pour les gens qui
les inventent, c'est qu'ils sont tous écrits avec un vocabulaire simple et restreint, me lorsqu'ils sont dérivés de
théories mathématiques assez pointues. C'est le cas par exemple de l'algorithme de Dijkstra, qui sert à trouver
un chemin optimal dans les applications GPS. On retrouve les algorithmes, avec leur double mathématique malé-
fique, un peu partout aujourd'hui. Tous les programmes installés sur votre ordinateur utilisent des algorithmes. Les
moteurs de recherche, la confidentialité des transactions en ligne, la gestion des bonus dans Candy Crush et celle
des stocks d'Ikea dépendent d'algorithmes. Leur qualité dépend essentiellement du temps qu'ils mettent pour ré-
soudre un problème et fournir un résultat correct ainsi que des ressources qu'ils vont utiliser sur les ordinateurs. Des
gens sont payés très chers pour trouver les algorithmes les plus performants, ceux qui iront le plus vite et qui néces-
siteront le moins de mémoire. On arrive alors à des sultats spectaculaires, comme l'algorithme ci-dessous, qui
permet de savoir si oui ou non vous êtes un cheval.
1 / 9 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 !