Table des matières
AlgoTouch est un logiciel très visuel qui permet la construction progressive d’un programme par manipulation directe des données (variables, tableaux). Il permet de réaliser un algorithme soit manuellement soit automatiquement après enregistrement des actions à effectuer. L’originalité du système réside dans le fait que l’utilisateur n’a pas besoin de connaître un langage de programmation pour réaliser ses premiers programmes. L’apprentissage du langage se fait naturellement puisque les actions de l’utilisateur sont transformées automatiquement en instructions du langage de programmation défini dans AlgoTouch.
AlgoTouch est basé sur des idées très simples :
Le logiciel peut être utilisé de deux manières : en mode direct ou en mode programmation. Le mode direct permet à l’utilisateur de manipuler les éléments de base utilisés par un programme pour exécuter les opérations requises par ce programme : affectation des variables simples ou des variables d’index, opérations arithmétiques, instructions conditionnelles. Le mode de programmation permet à l’utilisateur d’enregistrer chaque partie de la boucle principale d’un programme, puis d’exécuter le programme généré.
Ce manuel est divisé en trois parties. La première partie décrit l’interface utilisateur. La seconde partie est dédiée au mode direct. Enfin, la troisième partie décrit comment créer des programmes (mode programmation).
La fenêtre principale d’AlgoTouch est divisée en 5 zones :
A noter : les zones 2 et 5 (console et programme) peuvent être réduites, augmentées ou cachées suivant le case en utilisant les petites flèches en haut à gauche de ces zones .
Les éléments qui peuvent être manipulés avec AlgoTouch sont : les variables, les constantes, les tableaux, les variables index, les index, les opérateurs arithmétiques, les comparateurs, les macros.
z = x op y ;
if (x>y){est affichée sur la console.
} else { // TODO // x >= y }La balance disparaît.
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.
Macro_1 Do instructions // ... EndDans ce programme, Macro_1 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).
if (condition) { } else { }Le bloc else contiendra à nouveau du code manquant. L’utilisateur devra trouver un nouveau cas de test pour l’enregistrer.
Dans le cas d’une macro boucle, il faut définir la ou les conditions de sortie (bloc Until). Contrairement aux autres blocs, le principe est différent.
Until (i==a.length)
Note :
Il est possible d’enregistrer plusieurs conditions de sortie. La nouvelle condition sera placée soit à la première soit à la dernière place. Les conditions sont évaluées séquentiellement, comme l’opérateur || (ou logique) en langage C. Si la première condition est vraie, la boucle s’arrête, sinon, la seconde condition est évaluée, etc. Les nouvelles conditions peuvent être ajoutées en premier. En effet, dans le cas d’algorithmes sur les tableaux, ces algorithmes itèrent sur le tableau et s’arrêtent soit au milieu du tableau, et de toute manière, quand la fin du tableau est atteinte. Lors de l’enregistrement d’un tel algorithme, l’utilisateur examine d’abord, en général, les conditions de sortie au milieu du tableau (condition sur a[i]), l’utilisateur examinera, ensuite, le cas où le tableau a été entièrement examiné (condition i==a.length). Lors de l’évaluation de la condition de sortie, il est important que la condition sur i soit examinée en premier afin d’éviter une erreur de débordement de tableau sur le test de a[i]!
Read "Question " x
Write "Message " x
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.
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 250.000, 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é. En effet, par exemple, un programme de tri simple de 10.000 valeurs dépasse la limite proposée. 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.
AlgoTouch permet de transformer les programmes réalisés dans différents langages de programmation. Les codes produits sont directement exécutables dans les environnements adaptés.