Algorithmique et boucle POUR : fonction FOR Programmation de boucles à nombre d itérations fixé Résumé : La calculatrice Graph 35+ dispose d un mode de programmation très utile pour aider les élèves à transposer et à simuler le fonctionnement d un algorithme donnée en langage naturel. Ce document expose la marche à suivre pour programmer un algorithme faisant intervenir une boucle à nombre d itérations connu a priori, appelée boucle POUR en algorithmique. Il est proposé un exemple simple de programmation, puis la résolution complète d un exercice d algorithmique de type bac faisant intervenir une boucle POUR. 1 Utilisation du mode Programmation Le mode programmation permet de saisir et stocker du texte et des formules, et surtout de créer et d exécuter des programmes. Instructions Affichage Pour entrer dans le mode de programmation (écriture d algorithmes) Taper p pour ouvrir le menu du choix de mode Taper 9 pour choisir le mode PRGM ; si vous avez déjà créé des programmes, ils s afficheront dans la liste déroulante. 1
Pour créer un nouveau programme Taper e (NEW) pour créer un nouveau programme. Saisir un nom de programme de 8 caractères maximum puis taper l. Le mode d édition du programme nouvellement créé est alors activé : les instructions de l algorithme peuvent être saisies. Pour exécuter un programme Taper d pour sortir du mode d édition du programme, sélectionner au moyen des flèches le programme à exécuter puis taper q (EXE) : le programme se lancera. En cas d échec de la compilation (erreur de programmation ou de syntaxe), un message d erreur s affichera. Taper d pour corriger l erreur : le curseur se mettra automatiquement à l endroit où le problème est apparu. Pour interrompre l exécution d un programme (en cas par exemple de boucle sans fin à cause d un test d arrêt erroné), taper O puis d (BREAK) : la calculatrice retournera en mode édition du programme en cours d exécution. 2
2 Exemple pour le Bac [ ]«On considère l'algorithme suivant : Entrées : Deux nombres entiers S et N Traitement : Donner à S la valeur S 1,005 Sorties : Afficher S Faire fonctionner cet algorithme pour S = 1 000 et N = 4. Dans l'affichage final arrondir le résultat au millième.» [ ] Extrait du Bac Série L Spécialité Métropole La Réunion 2010 Commençons par traduire ligne par ligne l algorithme précédent dans le langage de programmation de la calculatrice : Langage algorithmique naturel Entrées : Deux nombres entiers S et N Traitement : Donner à S la valeur S 1,005 Ligne de commande du programme Séquence de touches correspondante azamazlo rbamlaza 8azrba8l quq1ba,wa 8lamm1.00 5bamlrl Sorties : Afficher S amdy On obtient alors le programme suivant : 3
Il reste à exécuter le programme avec S = 1 000 et N = 4 : Pour exécuter le programme Taper d pour sortir du mode d édition du programme, sélectionner au moyen des flèches le programme à exécuter puis taper q (EXE) : le programme se lancera. Taper 1000l4l Il reste à conclure : L affichage final obtenu est d environ 1020,151. 3 Pour aller plus loin [ ] «Voici un algorithme écrit en langage naturel qui, pour toute valeur de l entier naturel N donnée, affiche la liste de ses diviseurs positifs : Saisir l entier N Si K divise N Alors Afficher K Fin Si Fin Pour a) Programmer cet algorithme sur votre calculatrice. b) Modifier l algorithme pour qu il affiche le nombre des diviseurs de N. c) Calculer ainsi le nombre de diviseurs de 1728.» [ ] Exercice de type Bac Terminale S Spécialité 4
a) Commençons par traduire ligne par ligne l algorithme précédent dans le langage de programmation de la calculatrice : Langage algorithmique naturel Saisir l entier N Ligne de commande du programme Séquence de touches correspondante aza8az Lorba8l quq1ba, wa8l Si K divise N Alors Afficher K uuqiure ja8ma,k Loueq0l duuqwa, dy Fin Si qrl Fin Pour ur On obtient alors le programme suivant : 5
b) Les modifications à apporter à l algorithme sont les suivantes : L algorithme doit comporter une nouvelle variable de comptage des diviseurs, que l on appellera S : cette variable doit être initialisée à 0 au début de l algorithme, puis incrémentée à chaque nouveau diviseur détecté dans la boucle POUR, puis affichée à la fin de l algorithme. En résumé, l algorithme devient : Saisir l entier N Affecter à S la valeur 0 Si K divise N Alors Affecter à S la valeur S+1 Fin Si Fin Pour Afficher S 6
c) Traduisons ligne par ligne le nouvel algorithme dans le langage de programmation de la calculatrice : Langage algorithmique naturel Saisir l entier N Ligne de commande du programme Séquence de touches correspondante aza8az Lorba8l Affecter à S la valeur 0 0baml quq1ba, wa8l Si K divise N Alors Affecter à S la valeur S+1 uuqiure ja8ma,k Loueq0l duuqwam +1baml Fin Si qrl Fin Pour url Afficher S am 7
On obtient alors le programme suivant : Il reste à exécuter le programme avec N = 1728 : Pour exécuter le programme Taper d pour sortir du mode d édition du programme, sélectionner au moyen des flèches le programme à exécuter puis taper q (EXE) : le programme se lancera. Taper 1728l Il reste à conclure : Le nombre 1728 possède 28 diviseurs entiers positifs. 8