Évolution du logiciel CaRMetal

CaRMetal est disponible sur ce site depuis le 28 Octobre 2006. Le blog ci-dessous donne un aperçu de l'évolution du logiciel.

mini site CMDans cette version de CaRMetal, on s'est attaché aux figures dans le disque de Poincaré (en géométrie non euclidienne hyperbolique), et en particulier on a implémenté une tortue dynamique dans cet espace.

  • Le rayon par défaut du disque de Poincaré a été fixé à 1 (auparavant il était égal à 4).
  • La distance hyperbolique a été ajustée.
  • De nouvelles CaRCommandes pour la tortue hyperbolique sont apparues :
    • AvancerDP().
      Cette CaRCommande s'utilise comme Avancer(), mais renvoie un tableau JS de type ["P1,P2,...,P10","c1"] alors que Avancer() renvoie un tableau JS de type ["P1","s1"].
    • ViserDP()
  • On a ajouté un opérateur distDP(,) sur les expressions (qui s'utilise comme d(,) en géométrie euclidienne)

Des exemples d'application sont donnés dans cet article MathémaTICE.

  • Amélioration du comportement de l'éditeur en mode pseudo-code : il s'agit en particulier de la traduction automatique en direct du signe de la multiplication (* en \(\times\) et réciproquement).
    Dans la version 4.2.8, le signe * était automatiquement transformé en \(\times\) dans les passages qui n'étaient pas entre guillemets. Ce comportement pouvait poser problème en phase de rédaction, certains passages par nature entre guillemets pouvant temporairement apparaître en dehors des guillemets et subir la transformation. Or, quand on a une multiplication en programmation dynamique (= dans une expression entre guillemets) le signe \(\times\) ne fonctionne pas, il faut impérativement utiliser le signe *.
    Dans la version 4.2.9, on a ajouté un comportement : le signe \(\times\) est automatiquement transformé en * dans les passages entre guillemets. Cela permet d'avoir toujours le bon symbole.
  • Correction d'un bug de l'interpréteur en mode pseudo-code : les fonctions trigonométriques inverses étaient mal interprétées (comme on pouvait le voir avec la CaRCommande getRealScript).
  • Ajout de la CaRCommande AutoriserRentrant (doublon de AngleRentrant qui exprime plus clairement que cette CaRCommande s'applique aussi à des arcs).

Finalisation du mode pseudo-code pour mieux prendre en compte les scripts comportant une erreur.
En particulier, on a traité un bug d'affichage des messages d'erreurs (ce n'était pas toujours la ligne fautive qui était mise en gras).
Par effet collatéral (positif), la CaRCommande getRealScript() se trouve améliorée.

Les nouveautés de cette version sont :

  • la finalisation du générateur de code (assistant de script), qui a été rendu contextuel;
  • le perfectionnement de ExecuteMacro avec modification de l'inspecteur de macro et la création d'une nouvelle CaRCommande.

 

Finalisation du mode pseudo-code.
En particulier, on a traité les guillemets, la traduction des valeurs de vérité et la traduction des éléments manquant.
Ce qui permet d'écrire ce petit programme bien innocent (et d'obtenir exactement le résultat attendu).

Tables de multiplication :

multiplications

Remarque : on peut ajouter des "fin pour" si on le souhaite, cela ne perturbera pas le script.