La version 2 d’Algotouch est disponible sur https://algotouch.irisa.fr/agt/. Cette nouvelle version conserve les fonctionnalités de la version 1, mais de nombreuses améliorations ont été apportées. Cette page récapitule ces nouveautés.
N’hésitez pas à nous contacter si vous vous découvrez des erreurs, si vous avez besoin de fonctionnalités, ou si vous voulez participer au projet AlgoTouch.
Table des matières
Cette nouvelle version ne nécessite aucune installation. Elle fonctionne entièrement sur un navigateur internet. Elle a été testée sur les principaux navigateurs. Par contre, elle n’est pas entièrement opérationnelle sur Safari.
Dans le menu Fichier, on trouve l’item « Générer l’URL ». Une URL est produite avec l’adresse de la page du logiciel AlgoTouch et pour paramètre le programme en cours. Avec cette URL, on lance directement AlgoTouch dans un nouvel onglet du navigateur avec le programme en cours. C’est un mécanisme emprunté à Python Tutor.
Il est possible de passer un paramètre contenant uniquement les données ou les données et le programme AlgoTouch. Exemples :
https://algotouch.irisa.fr/agt/?json=[["macroDo",0,0,"Main","Macro Principale",{}],["var",225,201,"max","","int",83],["array",338,112,"t","","int",[34,46,14,17,64,83,9,47,6,7]],["index",342,337,"i","","int",10,"t"],["macroLoop",121,1,"Max","Recherche du maximum d'un tableau\n",{}]]
https://algotouch.irisa.fr/agt/?json=[["macroDo",0,0,"Main","Macro Principale",{}],["var",225,201,"max","","int",83],["array",338,112,"t","","int",[34,46,14,17,64,83,9,47,6,7]],["index",342,337,"i","","int",10,"t"],["macroLoop",121,1,"Max","Recherche du maximum d'un tableau\n",{"from":["max = t[0] ;","i = 1 ;"],"until":["i >= t.length"],"loop":[{"if":"t[i] > max","then":["max = t[i] ;"]},"i = i %2b 1 ;"],"terminate":["Write \"Plus grande valeur de t : \" max ;"]}]]
L’URL comporte :
Attention, la taille de l’URL est limitée à 2048 caractères.
Par exemple on peut tester le tri par sélection en initialisant l’exécution par un clic sur puis son déroulement automatique en cliquant sur . Cette fonctionnalité permet depuis un site web de lancer des exemples de programmes AlgoTouch par un simple clic.
Dans la version 3, certains icônes ont été modifiés.
remplace
et remplace
Le fonctionnement des opérateurs, addition, soustraction, multiplication, division, reste, est le suivant :
Un clavier et un écran ont été ajoutés sur l’espace de travail.
A noter que ces opérations fonctionnent dans les deux sens.
Une corbeille a été ajoutée sur l’espace de travail.
La suppression d’un des éléments de l’espace de travail s’effectue en le glissant sur la corbeille ou en faisant glisser la corbeille sur l’élément.
Il est maintenant possible de défaire les dernières actions effectuées et éventuellement de les refaire.
Cette opération est disponible dans le menu « Edition » ou dans la barre d’outils.
Cette possibilité est très utile pour pouvoir revenir en arrière et corriger des erreurs sans repartir du début. Elle peut être utilisée également pour revenir sur les pas d’exécution d’une animation.
Il est possible avec AlgoTouch d’exporter les programmes en Python, C, C++ et Java.
Cette fonctionnalité est accessible de trois manières :
Dans les deux premières zones d’exportation, le code est généré au fur et à mesure de la création de variables, constantes et tableaux et de la génération de code. Il est ainsi possible à un utilisateur de visualiser la construction de son programme dans le langage de son choix.
Dans la clause
Par contre, une condition impliquant un index est automatiquement ajoutée en tête. Ainsi il est impossible d’obtenir la suite de conditions :
Until t[i] == v i >= t.length
La nouvelle version d’Algotouch génère automatiquement :
Until i >= t.length t[i] == v
Pour un débutant en programmation, cet ordre évite des erreurs lors de l’exécution. Avant de tester une valeur d’un tableau, il faut vérifier que cette valeur existe.
L’explication complète de ce cas est donnée sur https://algotouch.irisa.fr/ordre-des-conditions-de-sortie-dune-boucle/
Avec AlgoTouch il est possible de produire le code suivant :
if (v == 0) { } else { // v != 0 v = v - 1 ; }
Ce résultat est obtenu car le cas a été produit en commençant par le cas v == 0 pour lequel aucune action n’était requise. Evidemment un programmeur évite cette écriture d’une alternative. Avec la version 2 d’AlgoTouch, il est possible de transformer l’alternative qui devient :
if (v != 0) {
v = v - 1 ;
}
Cette opération s’effectue dans le menu « Macro/Restructurer les alternatives ».
Cette fonctionnalité permet de commencer la construction des alternatives sans se soucier de l’ordre des cas à traiter.