AlgoTouch V4

Cette version conserve les fonctionnalités de la version 3, mais de nombreuses améliorations ont été apportées. Elle est accessible en ligne à la même adresse:

https://algotouch.irisa.fr/agt/

Les nouveautés de la version 4

Refonte de l’interface graphique

La barre d’outils de la version 3 a été découpée en trois parties :

  • Une première partie au-dessus de l’espace de travail qui permet de créer, ouvrir, sauvegarder, générer une URL, exporter le code, de faire ou refaire les dernières actions, d’exécuter la macro en mode animation.
  • Une deuxième partie à gauche de l’espace de travail, qui permet d’ajouter des variables, des constantes, des tableaux, des index, des macros, des opérateurs.
  • Une troisième au-dessus de la partie instruction, pour ajouter, exécuter ou supprimer du code de la macro.

Cette modification vise, d’une part, à mieux répartir les différentes fonctionnalités ou à limiter au strict nécessaire l’utilisation du menu.

Autres modifications

Si le fonctionnement d’AlgoTouch n’a pas fondamentalement changé, certaines modifications ont été apportées de manière à améliorer son utilisation.

 

Ajout d'un zoom sur les zones de texte

Un zoom permet de modifier la taille de la police dans les zones de texte d’AlgoTouch, les instructions, la console et les exportations de code.

Il est également possible d’utiliser le zoom du navigateur pour ajuster la taille de l’ensemble de la fenêtre d’AlgoTouch.

Ajout d'un onglet pour visualiser l'exportation de la macr0 courante

Un nouvel onglet a été ajouté sur le côté droit de la zone d’instructions. Il offre la possibilité de visualiser instantanément le code de la macro actuelle dans différents langages, Python, C++, C et Java, en un seul clic.

Changement du comportement sur l'ajout d'une condition de sortie

L’ajout d’une condition de sortie peut être réalisé de plusieurs manières :

  • Sélectionner “Until” ou une ligne du bloc dans le code, puis passer AlgoTouch en mode enregistrement.
  • Passer ou demeurer en mode enregistrement et sélectionner “Until” ou une ligne du bloc.
  • Sélectionner “Until” ou une ligne du bloc dans le code, puis cliquer sur le comparateur de la barre verticale située à gauche de l’espace de travail. AlgoTouch bascule automatiquement en mode enregistrement.

Après l’ajout d’une condition de sortie, AlgoTouch demeure en mode enregistrement et la sélection dans le code est transférée dans le bloc “Terminate”.

Exportation du code Python

Pour rendre la lecture du code Python plus compréhensible pour les débutants en programmation, l’exportation du code d’une macro a été revue :

  • Dans la zone d’exportation de la macro, un appel à une autre macro est mis en commentaire, par exemple : # -> Swap.
  • Sous l’espace de travail dans la zone d’exportation, les appels des macros sont remplacés par le code des macros appelées.

 

Ancienne version du tri sélection :

# 
# Variables
# 
tmp = 0 # 
# 
t = [ 50,100,80,10,90,60,40,30,20,70 ]
j = 0 # 
i = 0 # 
iFin = 0 # 

# 
# TriSelection : tri par selection du minimum
# 
def  TriSelection():
    global tmp,j,i,iFin
    i = 0 
    iFin = len(t) - 1 
    while (i < iFin) :
      PlacerMin()
      i = i + 1 
    return

# 
# Swap : échange de deux cases du tableau
# 
def Swap():
    global tmp,j,i,iFin
    tmp = t[j] 
    t[j] = t[i] 
    t[i] = tmp 
    return

# 
# PlacerMin : place le minimum après i en i
# 
def  PlacerMin():
    global tmp,j,i,iFin
    j = i + 1 
    while (j < len(t)) :
      if (t[i] > t[j]) :
        Swap()
      j = j + 1 
    return
TriSelection()

Nouvelle version du tri sélection :

# 
# Variables
#
tmp = 0 #
#
t = [ 50,100,80,10,90,60,40,30,20,70 ]j = 0 #
i = 0 #
iFin = 0 #

#
# TriSelection : tri par selection du minimum
#
i = 0
iFin = len(t) - 1
while (i < iFin) :
# -> PlacerMin: PlacerMin : place le minimum après i en i
j = i + 1
while (j < len(t)) :
if (t[i] > t[j]) :
# -> Swap: Swap : échange de deux cases du tableau
tmp = t[j]
t[j] = t[i]
t[i] = tmp
# <- Swap
j = j + 1
# <- PlacerMin
i = i + 1

 

Modifications diverses

  • Refonte du redimensionnement des zones de l’interface d’AlgoTouch.
  • Modification interne du code d’AlgoTouch.