Macros v01

Aller plus loin avec AlgoTouch

Habituellement un programme peut compter plusieurs milliers, voire plusieurs millions de lignes de code ! Pour réussir à gérer cette complexité, un programme est décomposé en unités de quelques dizaines de lignes de codes réalisant chacune une fonction particulière.

Dans les langages de programmation, ces unités s’appellent fonction, procédure, ou méthodes. Chacune est identifiée par un nom unique (comme une variable), et peut être “appelée” dans une autre unité.

A cet instant, ses instructions sont exécutées comme une seule instruction. Une unité appelée peut elle-même appeler l’exécution d’une autre unité et ainsi de suite (il n’y a pas de limite a priori).

AlgoTouch propose également un mécanisme similaire, simplifié, avec la notion de macro (pour macro-instruction). Une macro est une unité de programme soit de type simple (Do…End) soit de type boucle (From…End).

Dans ce tutoriel nous montrons comment définir une nouvelle macro, puis comment l’utiliser dans une autre macro. Dans un tutoriel suivant, nous montrerons comment, grâce à ce mécanisme, il est possible de réaliser des programmes complexes.

Création d’une macro

L’utilisateur crée une nouvelle macro en précisant s’il s’agit d’une macro simple ou d’une boucle. Cette macro sera identifiée par un nom unique et l’utilisateur pourra préciser son rôle.

Ensuite, l’utilisateur construira le code de la macro comme vu précédemment. Cependant, une nouvelle possibilité est offerte. Lors de l’enregistrement des actions, l’utilisateur peut exécuter directement le programme d’une macro par un simple clic. 

Si, par exemple, il incrémente i puis j et ensuite, il exécute la macro FaireCela, le code produit sera :
   i = i + 1 ;
   j = j + 1 ;
   FaireCela ;
FaireCela est devenue une “nouvelle” instruction, d’où le nom de “macro-instruction”

Exemple d’utilisation de macro

Le problème à résoudre consiste à :
  • saisir une note positive (supérieure à 0),
  • saisir une autre note positive (supérieure à 0),
  • effectuer la somme des deux valeurs,
  • afficher le résultat.

Code de la macro SaisirNote

Define SaisirNote
  From
    Read "Saisir une note supérieure à 0" note ;
  Until
    (note >= 0)
  Loop
    Read "Saisir une note supérieure à 0" note ;
  Terminate
End

Utilisation de la macro SaisirNote

  • Résoudre un problème revient à résoudre des sous problèmes du problème initial
  • Chacun de ces sous problèmes devient un nouveau problème à résoudre (qui lui-même peut éventuellement se décomposer en sous problèmes!)
  • Pour résoudre un sous problème, on définit un sous programme
    • il possède un nom
    • il devient une nouvelle instruction (macro instruction) utilisable dans d’autres programmes ou sous programmes
Define SommeNote
  Do
    SaisirNote ;
    somme = note ;
    SaisirNote ;
    somme = somme + note ;
    Write "La valeur de somme" somme ;
End

Exercice