Table des matières
Lorsqu’on sait quelles opérations effectuer pour mettre en oeuvre un algorithme, on doit envisager d’automatiser ce processus en créant un programme. Avec AlgoTouch, le principe est d’enregistrer la séquence d’opérations de l’algorithme, le logiciel se chargeant de créer le programme associé automatiquement. Avec AlgoTouch, un programme ne sera pas une longue séquence d’instructions mais sera constitué d’un ensemble de séquences courtes appelées macros.
Une macro est donc une séquence d’instructions à laquelle on donne un nomRègle de nommageSuite de lettres, chiffres, caractère souligné (_). Cela devient une nouvelle instruction, d’où le nom de macro instruction. Donc au lieu de répéter cette séquence d’instructions, on peut exécuter directement la macro. Dans ce cas, toutes les instructions qu’elle contient sont exécutées comme une seule opération. Cette façon de faire permet, d’une part, de simplifier la conception d’un programme et d’autre part, de faciliter la compréhension d’un programme à condition que les macros portent des noms significatifs (Echange, Tri, Calcul, etc…).
Avec AlgoTouch, on distingue deux sortes de macros : les macros simples et les macro boucles. Les macros simples sont une suite d’instructions qui s’exécutent en séquence. Ce sont des affectations, des opérations, des conditionnelles (éventuellement imbriquées), des appels de macro. Les macros boucles contiennent une structure pour répéter une séquence d’instructions avec des conditions d’arrêt.
Un algorithme peut être construit avec plusieurs macros. Une macro peut aussi contenir un appel à une autre macro. Par contre, avec AlgoTouch, une macro ne peut pas s’appeler elle-même, et un message d’erreur est affiché à l’utilisateur. A noter que ce mécanisme (appelé récursivité) existe dans les langages de programmation moderne.
MyMacro Do instructions // ... EndDans ce programme, MyMacro désigne le nom du programme. Ce nomRègle de nommageSuite de lettres, chiffres, caractère souligné (_) pourra être modifié pour être plus parlant. Le bloc Do contient une ou plusieurs instructions associées aux manipulations effectuées par l’utilisateur : affectations, opérations, lectures ou écritures, conditions, appel de macro (voir plus loin).
L’utilisateur peut enregistrer les blocs Do, From, Loop, Terminate. Une liste de choix sur la barre d’outils permet à l’utilisateur de sélectionner le bloc courant.
if (condition) { } else { }Le bloc else contiendra à nouveau du code manquant. L’utilisateur devra trouver un nouveau cas de test pour l’enregistrer.
Until (i==a.length)
Read "Question " x
Write "Message " x
Notes :
Comme les variables, les constantes, les variables index et les tableaux, les macros peuvent être renommées pour définir un identificateur plus explicite. Le rôle de l’élément peut également être redéfini.
Note : la macro est renommée mais son nom est remplacé également dans les macros où elle est appelée.
Pour exécuter entièrement une macro en mode manuel ou en mode enregistrement :
Raccourci : effectuer un clic gauche sur l’icône au centre de la macro.
Le code entier de la macro est exécuté en une fois, puis l’affichage est mis à jour. Dans le cas de l’enregistrement d’une séquence, le nom de la macro apparaît dans le programme (c’est un appel).
Note sur le code manquant : lors de l’appel d’une macro, si celle-ci doit exécuter du code manquant, soit dans son code, soit dans le code d’une macro appelée, le programme s’arrête et produit le message “Bloc de code manquant”. L’utilisateur doit alors :
Le programme s’arrêtera pour enregistrer les instructions du bloc manquant.
Lorsqu’on s’aperçoit qu’une macro boucle ne contient pas de condition de sortie, ce n’est donc pas une boucle. On peut alors la transformer en macro simple. Il suffit de choisir le menu Macro → Simplifier. Le logiciel vérifie qu’il n’y a pas de conditions de sortie sinon il ne fait rien. Ensuite, toutes les instructions des blocs From, Loop, Terminate sont placées en séquence dans le bloc Do d’une macro simple.
Pour voir le code de la macro en cours dans différents langages, choisir le menu Affichage → Afficher la zone d’exportation
Une nouvelle zone apparaît dans la partie droite. Choisir l’onglet associé au langage à afficher (Python, C, Java, C/C++). Le code de la macro est affiché dans le langage choisi.
Un mauvais choix dans le critère d’arrêt d’une boucle peut entraîner une répétition infinie du corps. On parle de boucle infinie. Afin d’éviter que le programme AlgoTouch soit bloqué en attente de terminaison d’une telle boucle, l’exécution s’arrête automatiquement au bout d’un certain temps. En fait, si le nombre de blocs exécuté dépasse une certaine valeur (quelques milliers), ce qui correspond à quelques secondes d’attente. Le message suivant s’affiche : “Probable boucle infinie”. Ceci ne signifie pas forcément que le programme est erroné. Cependant, ne pas oublier qu’AlgoTouch est un outil à usage pédagogique destiné à mettre en place des algorithmes. Il n’a pas vocation à tester des algorithmes complexes qui nécessitent un temps de calcul important.
https://algotouch.irisa.fr/agt/?json=[["macroDo",0,0,"Main","Ex",{}]]Pour créer cette URL, l’utilisateur doit :