Isabelle Morel 1 1 Qu est-ce qu un algorithme? Débuter en algorithmique Définition Un alogorithme 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 des résultats. Écrire un algorithme consiste à donner une méthode détaillée décrivant toutes les étapes d une tâche à ccomplir. Exemples : une notice de montage, une recette de cuisine, un chemin indiqué par un GPS, une division à la main, trier des cartes à jouer 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 sur ces éléments : le traitement; 3. les résultats obtenus : les sorties. Exercice On considère le programme de calcul suivant : 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. 2 et affectation Pour commencer un algorithme, il faut des éléments sur lesquels on souhaite travailler (dans l exemple précédent, il nous faut un nombre). Ces éléments sontles 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 ) 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 à réserver 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é : c est l affectation. Une affectation est l attribution d une valeur à la variable. Si la variable s appelle A, l affectation peut s écrire de différentes manières : Affecter à A la valeur 3; A prend la valeur 3; A 3 Exemples 1. Considérons l algorithme suivant : Déclaration de la variable V Affectation V 4 Nouvelle affectation V V +7 Instruction de sortie Afficher V Que lit-on à la fin de l algorithme? 2. Considérons à présent l algorithme suivant :
Isabelle Morel 2 Déclaration des variables a ; b ; c Affectation a 3 Affectation a a 2 2a+1 Affectation b 7 Affectation b b 2 4b+4 Affectation c a+b 9 Instruction de sortie Afficher c Que lit-on à la fin de l algorithme? 3. Considérons à présent un algorithme plus général : Déclaration de la variable a Affectation a x Affectation a 2a+1 Affectation a a 2 Affectation a a 4 Instruction de sortie Afficher a Développer et réduire l expression obtenue (on obtient une fonction!). 4. Écrire l algorithme donnant la fonction f(x) = (2x+3)2 1. 5. Considérons un algorithme programmé avec le logiciel Algobox : a est du type nombre b est du type nombre c est du type nombre n est du type nombre Lire a Lire b n prend la valeur 10 a+b Afficher n c prend la valeur a a prend la valeur b b prend la valeur de c n prend la valeur 10 a+b Afficher n (a) Tester cet algorithme ave a = 2 et b = 3. (b) Expliquer l importance de la variable c. 3 Les instructions conditionnelles On souhaite écrire un algorithme testant si un triangle est rectangle ou non en A. Pour cela, il faut calculer BC 2 d une part et AB 2 +AC 2 d autre part, puis comparer les deux valeurs. Cela fait intervenir un test, aussi appelé instruction conditionnelle. 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-à-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 : Exemples : Si condition alors traitement 1 sinon traitement 2
Isabelle Morel 3 1. On considère l algorithme suivant : x du type nombre y du type nombre demander un nombre x Si x < 0 Afficher y Alors affecter à y le nombre 1 x Sinon affecter à y le nombre x 2. (a) Tester cet algorithme pour x = 1 ; 2 ; 4 ; 1 ; 0. (b) Écrire la fonction obtenue sur R. Écrire l algorithme testant si un triangle est rectangle en A ou non. 4 La boucle itérative On souhaite calculer le nombre 2 10. Pour cela, on considère le nombre 2 puis on le multiplie par 2. On multiplie ensuite le résultat obtenu par 2 et ainsi de suite. On répète donc 9 fois l opération : multiplier par 2. Répéter plusieurs fois de duite une même tâche s appelle en algorithme exécuter une boucle (à compteur). La boucle à compteur consiste à répéter une tâche fixe n fois, n étant fixé à l avance. On la rédige de la manière suivante : Exemples : 1. On considère l algorithme suivant : Pour i allant de 1 à n Fin boucle pour S du type nombre i du type nombre 0 S Pour i allant de 1 jusqu à N faire S +i S Afficher S (a) Compléter le tableau ci-dessous en prenant comme valeur initiale de N : N = 5. Numéro de passage dans la boucle Valeur de S avant le passage dans la boucle Valeur de S après le passage dans la boucle 1 2 3 4 5 (b) À quoi sert cet algorithme?
Isabelle Morel 4 2. Considérons à présent l algorithme suivant : A du type nombre B du type nombre 2 A 1 B Pour i allant de 0 jusqu à N faire B +A B Afficher B (a) Utilisez cet algorithme pour compléter le tableau suivant : N 0 1 2 3 4 5 B 3 (b) Placez les points de coordonnées (N ; B). Que constatez-vous? (c) Donnez une expression de la fonction f qui, au nombre N saisi, associe le nombre B en sortie. 3. Complétez l algorithme suivant pour qu il affiche la table de multiplication (de 0 à 12) d un nombre entier naturel N saisi par l ordinateur : i du type nombre R du type nombre Pour i allant de 0 jusqu à... faire... R Afficher...... =... 5 La boucle conditionnelle Considérons l algorithme suivant : C du type nombre N reçoit un nombre au hasard entre 10 et 20 C reçoit 0 Tant que N C faire Afficher Entrez un nombre entier entre 10 et 20 Saisir C Si N = C Alors Afficher Vous avez gagné Sinon Afficher vous avez perdu 1. Testez cet algorithme. 2. À quoi sert cet algorithme? Dans cet algorithme, on voit répète une opération tant qu une condition est vérifiée. On parle alors de boucle conditionnelle.
Isabelle Morel 5 La boucle conditionnelle (ou boucle tant que) consiste à répéter plusieurs fois les mêmes instructions tant qu une certaine condition est remplie : la boucle s arrête quand la condition n est plus remplie. On utilise pour cela les instructions suivantes : Exemple : Considérons l algorithme suivant : Début algorithme x du type nombre Saisir x 0 N Tant que N +1 x faire N +1 N Afficher N Fin algorithme Tant que Condition Faire Tâche 1. On choisit pour valeur initiale x = 5,2. Complétez le tableau ci-dessous : Numéro de passage de la boucle Valeur de N avant le passage dans la boucle Valeur de N après le passage dans la boucle Arrêt de la boucle conditionnelle (oui/non) 1 Combien de passages dans la boucle conditionnelle ont été nécessaires pour l arrêt de l algorithme? 2. Recommencer l algorithme pour x = 2. 3. Que donne l algorithme pour x = 3,1? 4. Le nombre N obtenu est appelé la partie entière de x, noté Ent(x). On a donc : Ent(5,2)=... Ent(2)=...et Ent(3,1)=...