Qu est-ce qu un algorithme ALGORITHMIQUE Définition Un algorithme est une suite d opérations élémentaires, à appliquer dans un ordre déterminé à des données. Un algorithme est donc une liste d instructions élémentaires à suivre. Ces instructions fournissent en un nombre fini d étapes un ou des résultats. Ecrire un algorithme consiste à donner une méthode détaillée décrivant toutes les étapes d une tâche à accomplir. Exemples : une notice de montage, une recette de cuisine, un chemin indiqué par un GPS, une division à la main,..sont des algorithmes. On peut considérer un algorithme comme une machine fonctionnant en trois étapes : 1. les éléments dont on part : les entrées ; 2. les instructions à effectuer séquentiellement sur ces éléments : le traitement ; 3. les résultats obtenus : les sorties. Des exemples d algorithmes 1. Une recette de cuisine Voici une recette tirée d'un livre de cuisine : Se procurer 250 g de chocolat noir, 250 g de beurre, 4 œufs, 250 g de sucre et 75 g de farine. a. Faire fondre le chocolat au bain-marie ; ajouter le beurre, mélanger; ajouter la farine. b. Battre les œufs en omelette ; ajouter le sucre et tourner le mélange. c. Mélanger les deux préparations. d. Verser dans un moule et faire cuire 45 minutes au four à 220 C. Servir le gâteau froid. 2. Une construction géométrique On se donne deux points A et B du plan. a. Tracer le cercle de centre A passant par B. b. Tracer le cercle de centre B passant par A. c. Nommer C et D les points d'intersection de ces cercles. Construire le polygone ADBC. 3. Un algorithme de calcul Soit deux nombres A et B. a. Calculer A + B et remplacer A par cette valeur. b. Calculer A B et remplacer B par cette valeur. Afficher les nombres A et B. Ce texte décrit les opérations à effectuer successivement pour faire un moelleux au chocolat. Il est formé de trois parties distinctes : - les entrées : ce sont les ingrédients de la recette, avec les quantités requises. - le traitement de la recette : il s'agit des phases a, b, c et d qui s'enchaînent séquentiellement ; - la sortie : c'est le gâteau fini, que l'on doit servir froid. Cet algorithme décrit la construction d'un losange dont une diagonale est [AB]. Les entrées sont les points A et B. Le traitement de la construction est décrit dans les phases a, b, c. La sortie est le polygone ADBC. Cette suite d'instructions est du même type que les précédentes : les entrées sont les nombres A et B, le traitement est fait dans les phases a et b et les sorties sont les nombres A et B. Nous allons faire fonctionner cet algorithme : si les entrées sont A = 5 et B = 2, alors à l'étape a, A + B = 7 et A prend la valeur 7 ; à l'étape b, A - B = 7-2 = 5, donc B prend la valeur 5. Les nombres affichés seront donc : A = 7 et B = 5. À partir de deux nombres A et B, cet algorithme affiche leur somme A + B et A. Patrick CHATEL 1/9 2012-09-11 Exercice 1 : 1) Choisir un nombre. 2) Lui ajouter 1. 3) Multiplier le résultat par 2. 4) Soustraire 3 au résultat. 5) Afficher le résultat. 1. Appliquer cet algorithme à 3, à -4, à 0 et à 1/3. 2. Identifier les trois étapes de cet algorithme. Exercice 2 : Algorithme & Construction géométrique Placer deux points distincts A et B ; Construire le cercle C 1 de centre A, passant par B ; Construire le cercle C 2 de centre B, passant par A ; C 1 et C 2 se coupent en C et D ; Repasser au crayon bille les points A, B, C et D et effacer tout le reste ; Construire le quadrilatère ACBD. 1. Exécuter cet algorithme ; Que donne-t-il en sortie? 2. Identifier la phase «entrées», la phase «traitement et la phase «sortie». Comment écrire un algorithme On peut écrire un algorithme grâce : au langage courant ; aux organigrammes ; à un langage de programmation (celui de votre calculatrice ou le logiciel Algobox par exemple). Cette dernière possibilité exige l apprentissage du langage de programmation en question mais permet en revanche l exécution automatique de l algorithme par la calculatrice ou l ordinateur. Exemple : On veut déterminer l image d un nombre par une fonction connaissant la fonction et ce nombre : Soit la fonction f définie par f(x) = x 2 2x ; Construire un algorithme permettant de calculer l image f(x) d un nombre quelconque x. En langage courant Ou encore : Variables : x : nombre (le nombre dont on cherche l image) y : nombre (l image de ce nombre) Initialisation, entrées : Saisir la valeur de x ( valeur de x) Traitement : y reçoit la valeur x 2 2x (calcul de f(x)) Sortie : Afficher la valeur de y (affichage de f(x)) Variables x,y : nombres Saisir x: y x 2 2x Afficher y Patrick CHATEL 2/9 2012-09-11
Organigramme Saisir x y x 2 2x Afficher y Instructions élémentaires 1. Variables et affectation Pour commencer un algorithme, il faut des éléments sur lesquels on souhaite travailler (dans l exemple précédent, il nous fallait un nombre). Ces éléments sont les données d entrée qui seront utilisées lors des étapes du traitement. Les données d entrée sont stockées dans la mémoire de la calculatrice ou de l ordinateur, à un emplacement appelé variable et repéré par un nom. On peut donc considérer une variable comme une boîte. - Le nom de la variable est son étiquette ; - La variable peut contenir une valeur (un nombre, un mot, une liste de nombres, etc qu on appelle son type). Langage de programmation d une calculatrice Voici ce que donne cet algorithme avec vos calculatrices : TI-82 Stats.fr Casio Graph 35 Préparation Appuyer sur "Menu" MENU Sélectionner "Programme" PRGM Sélectionner "nouveau" NOUV Sélectionner "nouveau" NEW Donner un nom au programme : FCT par exemple Donner un nom au programme : FCT par exemple Saisie :Input X =,X X :? X :X ^ 2 2X Y X ^ 2 2X Y :Disp F(X) =,Y F(X) = : Y Exécution Sélectionner "Exécuter" EXEC Sélectionner le programme Sélectionner le programme Entrer la valeur de x et la valeur de f(x) devrait s afficher! Entrer la valeur de x et la valeur de f(x) devrait s afficher! Langage de programmation Algobox VARIABLES x EST_DU_TYPE NOMBRE y EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE x y PREND_LA_VALEUR pow(x,2)-2*x AFFICHER y FIN_ALGORITHME Lorsque les variables sont déclarées, nous n avons fait que réserver un espace dans la mémoire de l ordinateur ou de la calculatrice. Cela revient à poser une affiche RESERVE sur une place de parking. Pour autant, la place n est pas occupée. Occuper cette place, c est donner une valeur à l espace mémoire réservé ; il y a deux façons pour le faire : - la lecture, - l affectation. La lecture consiste à demander "à l extérieur" la valeur à donner à la variable alors que l affectation est l attribution d une valeur à la variable par l algorithme. A contrario, renvoyer la valeur de la variable est l opération d écriture. Si la variable s appelle A, - la lecture s écrira : Lire A ou Saisir A ; A? ; - l affectation s écrira : Affecter à A la valeur 3 ou A prend la valeur 3 ; A 3 ; - l écriture peut s écrire de différentes manières : Ecrire A ou Afficher A ; Exemple : algorithme «Double» A : nombre B : nombre de l algorithme Lire A ; B 2*A ; Ecrire B de l algorithme Exercice 3 : Affectation - Vrai ou faux? On donne l'algorithme suivant : N, A, B : Nombres Lire (N) ; A 3N ; B A + 2 ; Ecrire (B). Exercice 4 : Organigramme Vrai ou faux? Le nombre obtenu avec l'entrée 2 est 8 ; Le nombre obtenu avec l'entrée 4 est 14 ; Si on veut obtenir 11, il faut entrer 3 ; Si on veut obtenir 5, il faut entrer 1. Faire tourner l algorithme suivant (donné en langage naturel et sous forme d organigramme) avec A = 2 et B = 5 : Patrick CHATEL 3/9 2012-09-11 Patrick CHATEL 4/9 2012-09-11
A, B, C : Nombres Saisir (A) Saisir (B) C A A B B C Afficher (A) Afficher (B) 1. Que réalise-t-il de manière générale? 2. Les instructions conditionnelles La résolution de certains problèmes nécessite la mise en place d un test pour effectuer une tâche : si le test est positif, on effectue la tâche ; sinon, c est-`a-dire si le test est négatif, on effectue une autre tâche. On parle d instruction conditionnelle (ou test ou structure alternative). En algorithmique, cette instruction conditionnelle se rédige ainsi : Si condition Alors traitement 1 Sinon traitement 2 Si Exemple : algorithme «Racine-carrée» x : nombre Si x 0 Alors Ecrire x," a pour racine-carrée",sqrt(x) Sinon Ecrire x," n a pas de racine-carrée" ; Ecrire B Exercice 5 : Instruction conditionnelle Soit l algorithme suivant : x, y : Nombres Si x 0 Alors y -x Sinon y 1/x ; Ecrire y. Faire tourner cet algorithme avec x = -9, x = 0 et x = 4 ; Exercice 6 : Instruction conditionnelle Soit l algorithme suivant : DEBUT Saisir (A) Saisir (B) C A A B B C Afficher (A) Afficher (B) Patrick CHATEL 5/9 2012-09-11 FIN entrées traitement sorties x, y : Nombres Saisir x ; Saisir y ; Si x y Alors z x Sinon z y ; Afficher z. Faire tourner cet algorithme avec x = 9 et y = 11 ; Que réalise-t-il de manière générale? Exercice 7 : Instruction conditionnelle QCM On donne l'algorithme suivant : N, A: Nombres Entrer (N) ; Si N < 5 Alors A N 2 Sinon A 2N Si ; Afficher (A). Exercice 8 : Donner toutes les bonnes réponses : 1. Le nombre obtenu avec l'entrée 3 est : 3 6 9 2. Le nombre obtenu avec l'entrée 7 est : 14 49 7 3. Si on veut obtenir 36, on peut entrer : 6 18 autre 4. Si on veut obtenir 25, on peut entrer : 5 12,5 pas possible Un site internet de photos propose le développement au tarif de 0,15 l unité mais pour une commande d au moins 100 tirages, le tarif est ramené à 0,12 l unité. Ecrire un algorithme calculant le montant de la facture en fonction du nombre de photos à développer. 3. Les boucles (inconditionnelles) La résolution de certains problèmes nécessite de répéter un certain nombre de fois de suite une même tâche ; Un tel traitement s appelle en algorithme exécuter une boucle (à compteur). La boucle inconditionnelle (ou à compteur) consiste à répéter une tâche fixe n fois, n étant fixé à l avance. Il existe un autre type de boucle : la boucle conditionnelle ; elle sera vue les années suivantes! On rédige de la manière suivante la boucle à compteur : Pour i de 1 à n Faire Traitement boucle pour Exemple : algorithme «Puissance» x,y,n : nombres Lire n ; y 1 ; Pour i de 1 à n Faire y y * x ; Pour ; Ecrire x,"^",n," = ",y Patrick CHATEL 6/9 2012-09-11
Exercice 9 : N : nombre S : nombre Lire N S 0 Pour i de 1à N Faire S S + i Pour Ecrire S 1. Compléter le tableau ci-dessous en prenant N = 5 : Valeur du compteur i 1 2 3 4 5 2. De manière générale, que réalise cet algorithme? Valeur de S avant le passage dans la boucle après le passage dans la boucle Calculatrices TI (Texas Instruments) TI-82, TI-82 Stats.fr, TU-83 Plus, TI-84 Plus, etc Exercice 10 : Variables N, P : nombre Saisir N ; P 0 ; Pour i de 0 à 9 faire P i * N ; Afficher P Pour ; De manière générale, que réalise cet algorithme? Exercice 11 : Ecrire un algorithme qui demande un nombre de départ et qui affiche les dix nombres suivants. Patrick CHATEL 7/9 2012-09-11 Patrick CHATEL 8/9 2012-09-11
Calculatrices CASIO GRAPH 35+, GRAPH 65+, GRAPH 85, etc Patrick CHATEL 9/9 2012-09-11