AlgoTouch V2

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.

Version web

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.

 

Lancement d’un programme depuis un site

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 :

  • AlgoTouch avec les données : les données pour une recherche du maximum d’un tableau
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",{}]]
  • AlgoTouch avec les données et le code : programme de recherche du maximum d’un tableau
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 :

  • l’adresse du d’AlgoTouch : https://algotouch.irisa.fr/agt/>
  • le paramètre json suivi du programme AlgoTouch au format JSON.

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 Start puis son déroulement automatique en cliquant sur Animation. Cette fonctionnalité permet depuis un site web de lancer des exemples de programmes AlgoTouch par un simple clic.

Format de fichiers

Les fichiers AlgoTouch ont le format json. Ce format est un format texte.
  • Les utilisateurs les plus avertis pourront effectuer des modifications directement sur les fichiers sauvegardés. Attention, si le format n’est pas correct, AlgoTouch ne pourra recharger correctement le programme AlgoTouch.
  • Les utilisateurs ayant déjà des programmes développés avec la version 1 d’AlgoTouch peuvent utiliser la toute dernière version d’AlgoTouch V1 AlgoTouch-1-1-3.jar. Il est possible de charger les fichiers au format .alg et de les exporter au format json. Attention, cette possibilité peut ne pas fonctionner pour des programmes réalisés avec les premières versions d’AlgoTouch.

Fonctionnement des opérateurs

Le fonctionnement des opérateurs, addition, soustraction, multiplication, division, reste, est le suivant :

  1. Sélectionner l’opérateur dans le menu
  2. Déposer les opérandes sur les deux cases de l’opérateur
  3. Déposer le résultat sur une variable pour produire l’affectation

Lecture et Écriture

Un clavier et un écran ont été ajoutés sur l’espace de travail.

  • L’affichage du contenu d’une variable à l’écran s’effectue en déplaçant la variable sur l’écran.
  • La saisie d’une valeur s’effectue en déposant le clavier sur la variable dont le contenu est à saisir.

A noter que ces opérations fonctionnent dans les deux sens.

Suppression

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.

Défaire & refaire

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.

Exportation

Il est possible avec AlgoTouch d’exporter les programmes en Python, C, C++ et Java.

Cette fonctionnalité est accessible de trois manières :

  • Dans la zone Console, des onglets sont disponibles pour visualiser le code dans les différents langages. L’exportation contient toutes les données, la macro courante et toutes les macros appelées par celle-ci. La macro courante est le point d’entrée du programme. Le code peut être copié dans le presse-papier
  • Il est possible d’afficher une zone d’exportation de la macro courante par le menu “Affichage/Afficher la zone d’exportation”. Seul le code de la macro courante est affiché
  • Dans le menu, l’entrée “Fichier/Exporter” permet d’exporter dans un fichier le code complet à partir de la macro courante dans le ou les langages de son choix.

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.

Ordre des conditions de sortie

Dans la clause Until d’un macro boucle, les conditions de sortie sont automatiquement ajoutées dans l’ordre de leur création. Dans la version 1, AlgoTouch demandait à l’utilisateur s’il désirait l’ajouter en premier ou en dernier.

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/

Restructuration des alternatives

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.