π
<-
Chat plein-écran
[^]

Maj majeure CasioPython Graph 35/75+E: flottants+longs+30K!

Maj majeure CasioPython Graph 35/75+E: flottants+longs+30K!

Message non lude critor » 19 Nov 2018, 21:37

A la rentrée 2019 comme déjà annoncé le
Python
sera le seul langage de programmation préconisé pour l'enseignement de l'algorithmique au lycée en Seconde et Première.

Plusieurs calculatrices graphiques intègrent déjà une implémentation
Python
officielle dans leur dernière mise à jour, plus ou moins complète, fidèle et réussie selon le cas :
  • NumWorks
    avec
    MicroPython 1.9.4
  • Casio Graph 90+E
    avec
    MicroPython 1.9.4
  • HP Prime
    avec l'écriture
    Python
    de
    Xcas
  • le module externe
    TI-Python
    pour
    TI-83 Premium CE
    avec peut-être
    CircuitPython
    , mais nous en reparlerons
9795Mais à côté de cela nous avons aussi plusieurs implémentations communautaires, bien évidemment inutilisables en mode examen à la différence :

CasioPython
, l'application communautaire portant
MicroPython 1.9.4
pour les
Graph 35+E/75+E
est sortie pour la rentrée 2018.

Toutefois l'application n'était pas encore au point, n'étant que fort peu utilisable, si bien que nous n'avons pas pu à la différence la mettre en avant pour la catégorie
Python
de notre concours de rentrée malgré notre bonne volonté.

En effet l'application ne gérait pas les entiers longs et échouait donc dès la première ligne de notre script sur le paramètre du moteur aléatoire intégré.

Même si ce n'était pas gênant pour ce concours ça le restait pour bien d'autres choses : l'application ne gérant pas non plus les nombres flottants ni complexes.

L'opérateur : de découpage
(slicing)
d'objets composés n'était pas géré non plus.

La touche
DEL
ne fonctionnait pas dans la console
Python
, pas plus que les flèches, et toute erreur de saisie impliquait donc de recommencer entièrement.

Et enfin l'application était extrêmement limitée en mémoire de travail, quelques lignes de définition de fonctions suffisaient à déclencher une erreur.

Malgré son emploi du temps d'étudiant fort bien rempli,
Zezombye
de
Planète Casio
nous sort cette semaine une mise à jour majeure de
CasioPython
transfigurant complètement cette application. Comme tu vas pouvoir en juger, nous passons enfin à quelque chose d'utilisable ! :D

Déjà, les nombres flottants sont enfin gérés. Rappelons qu'un nombre flottant s'écrit sous la forme
$mathjax$M\times 10^E$mathjax$
avec
M
la mantisse et
E
l'exposant. Et
Zezombye
n'a visiblement pas fait les choses à moitié, puisque d'après le script ci-dessous les mantisses sont codées sur 53-bits
(permettant au mieux 16 chiffres significatifs)
. Il s'agit donc d'une gestion des flottants dite en double précision
(sur 64-bits avec les bits restants codant le signe et l'exposant, au lieu de 32-bits)
, augmentant significativement la fiabilité des résultats. :bj:
Code: Tout sélectionner
def prec(b):
  k=0
  while 1+b**-k-1:
    k=k+1
  return k


10026Les nombres complexes ainsi que les entiers longs
(au-delà de 32-bits)
sont maintenant gérés et la compatibilité est excellente comme le prouve notre script de concours qui marche sans la moindre altération ! :bj:
Notons par contre que le défilement de l'historique de la console semble avoir quelques problèmes, ne permettant pas de remonter au-delà de quelques lignes. Et quand ce n'est pas ça, nous avons de temps en temps des lignes parasites du module mémoire
gc
venant écraser les affichages consoles...


Mais puisque l'on parle de
gc
, quels sont donc les modules
Python
intégrés dans l'application
CasioPython
? Quelques commandes import nous apprennent que nous disposons de :
  • builtins
    et
    __main__
    comme dans toute implémentation qui se respecte
  • math
    (comme sur
    Graph 90+E
    ,
    NumWorks
    ,
    TI-Nspire
    et module
    TI-Python
    )
  • cmath
    (comme sur
    NumWorks
    et
    TI-Nspire
    )
  • random
    (comme sur
    Graph 90+E
    ,
    NumWorks
    et module
    TI-Python
    )
  • array
    (comme sur
    TI-Nspire
    )
  • sys
    (comme sur
    TI-Nspire
    )
  • gc
    (comme sur
    TI-Nspire
    )
Même si il manquerait un module graphique pour les nouveaux programmes 2019, nous n'en avons pas moins quelque chose de très complet niveau modules, comparable en fonctionnalités à la version
TI-Nspire
tout en étant bien plus à jour ! :bj:
À la différence les implémentations officielles ont jusqu'à présent extrêmement limité le nombre de modules intégrés, peut-être pour des raisons sécuritaires ou de délais de validation, ces modules se comptant à ce jour dans tous les cas officiels sur les doigts d'une seule main.


Mais le fonctionnement de notre script de concours prenant déjà pas moins de 2,627Ko avec rien que le chargement en mémoire
(avant même son exécution et donc la création des grosses listes)
prouve également que la mémoire de travail de l'application a été nettement améliorée. Tentons de déterminer cet espace de travail avec un script remplissant la mémoire. L'application n'offre pas la fonction sys.getsizeof(), donc nous allons nous baser sur les tailles constatées sur ordinateur pour le script suivant :
  • 64 octets pour une liste vide
  • 8 octets par élement de liste supplémentaire
  • 24 octets pour un entier nul
  • 28 octets pour un entier court non nul
  • 49 octets pour une chaîne vide
  • 1 octet par caractère de chaîne supplémentaire
Code: Tout sélectionner
def mem():
  try:
    l=[]
    try:
      l+=[0]
      l+=[""]
      l[1]+="x"
      while True:
        try:
          l[1]+=l[1][l[0]:]
        except:
          if l[0]<len(l[1])-1:
            l[0]=len(l[1])-1
          else:
            raise(Exception)
    except:
      print("+",len(l)>1 and len(l[1]))
      return 64+8*len(l)+(len(l) and 24+4*(l[0]>0)+(len(l)>1 and 49+len(l[1])))+mem()
  except:
    return 0


Nous obtenons donc
30,147Ko
de mémoire de travail
Python
, ce qui nous permet d'établir le classement suivant :
  1. TI-Nspire
    avec
    2,046Mo
  2. Casio Graph 90+E
    avec
    1,027Mo
  3. Casio Graph 35+E/75+E
    avec
    30,147Ko
  4. calculatrice
    NumWorks
    avec
    13,658Ko
  5. logiciel web
    NumWorks
    avec
    5,946Ko
10028

CasioPython
n'est pas parfait mais a franchi un cap et est désormais utilisable dans une contexte scolaire. :bj:

Il conviendra aussi bien aux
Graph 35+E/75+E
conformes 2019/2020 qu'aux anciens modèles
Graph 35+USB
et
Graph 75/85/95
. :)

Nous invitons justement les lycéens et enseignants concernés à l'utiliser et à faire des retours afin qu'il soit parfait pour la rentrée 2019. ;)
Attention, pour une utilisation sur
Graph 35+E / 35+USB
, il faudra commencer par installer un système
Graph 75
en suivant notre tutoriel.

Téléchargements
:
Source
:
https://www.planet-casio.com/Fr/forums/ ... ast#152951
Image
Avatar de l’utilisateur
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Prochain niv.: 78.6%
 
Messages: 30941
Images: 7324
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
Classe: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Maj majeure CasioPython Graph 35/75+E: flottants+longs+3

Message non lude Zezombye » 20 Nov 2018, 06:52

Merci beaucoup pour cet article critor :)

Notons par contre que le défilement de l'historique de la console semble avoir quelques problèmes, ne permettant pas de remonter au-delà de quelques lignes. Et quand ce n'est pas ça, nous avons de temps en temps des lignes parasites du module mémoire gc
venant écraser les affichages consoles...


Ca en fait ça vient de la limitation que j'ai imposée à la console : avec 200 octets, la console ne peut pas contenir beaucoup de lignes (mais c'est fait exprès, c'est pour trouver d'éventuels bugs lors de la rotation de la mémoire qui se passe quand la console n'a plus de mémoire disponible).
S'il n'y a pas de bugs, je passerai à 2048 octets, et là il y aura amplement la place pour remonter dans l'historique :p
Avatar de l’utilisateur
ZezombyePremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 44.7%
 
Messages: 82
Inscription: 30 Sep 2016, 15:14
Genre: Non spécifié

Re: Maj majeure CasioPython Graph 35/75+E: flottants+longs+3

Message non lude parisse » 20 Nov 2018, 08:05

Tout d'abord felicitations a Zezombye! D'autant que developper pour calculatrices Casio n'est pas trivial:-)
Je voudrais juste signaler un oubli dans les implementations communautaires : a savoir KhiCAS pour Casio Graph 90+e. La compatibilite Python est d'ailleurs un peu meilleure que sur la HP Prime.
Avatar de l’utilisateur
parissePremium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 44.6%
 
Messages: 1447
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié

Re: Maj majeure CasioPython Graph 35/75+E: flottants+longs+3

Message non lude ptitjoz » 20 Nov 2018, 09:25

Casio tient la corde, suivi de HP et Numworks est loin derrière si je comprends bien ?
et TI va sans doute intégrer son module externer dans une machine.
c'est bien cela ?
Avatar de l’utilisateur
ptitjoz
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 6.3%
 
Messages: 45
Inscription: 17 Oct 2018, 15:38
Localisation: France Loir et Cher
Genre: Non spécifié
Calculatrice(s):
Twitter: @PtitJoz

Re: Maj majeure CasioPython Graph 35/75+E: flottants+longs+3

Message non lude critor » 20 Nov 2018, 11:03

@parisse
Bonjour. Désolé pour l'oubli bien involontaire puisque j'avais cité Xcas, cela va être corrigé correctement dès que j'ai l'occasion de me poser quelque part.

Par contre je ne peux pas rajouter la HP Prime et Khicas au classement des mémoires de travail, surtout maintenant qu'il contient 5 éléments avec un large éventail, puisque je n'ai à ce jour pas de script de test compatible avec ces solutions.
Image
Avatar de l’utilisateur
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Prochain niv.: 78.6%
 
Messages: 30941
Images: 7324
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
Classe: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Maj majeure CasioPython Graph 35/75+E: flottants+longs+3

Message non lude critor » 20 Nov 2018, 11:14

ptitjoz a écrit:Casio tient la corde, suivi de HP et Numworks est loin derrière si je comprends bien ?
et TI va sans doute intégrer son module externer dans une machine.
c'est bien cela ?

C'est ce qu'ils devraient logiquement faire. Inclure le module
TI-Python
externe dans l'emballage
TI-83 Premium CE
de rentrée 2019, ou encore mieux l'intégrer directement dans la calculatrice ce qui donnerait une nouvelle révision matérielle
TI-83 Premium CE
voir même un nouveau modèle, même si un changement de nom de modèle ne serait pas anodin vu la popularité.

Mais après, j'ignore
(sincèrement)
ce qu'ils vont faire et quand.
Image
Avatar de l’utilisateur
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Prochain niv.: 78.6%
 
Messages: 30941
Images: 7324
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
Classe: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Maj majeure CasioPython Graph 35/75+E: flottants+longs+3

Message non lude parisse » 20 Nov 2018, 13:03

critor a écrit:Par contre je ne peux pas rajouter la HP Prime et Khicas au classement des mémoires de travail, surtout maintenant qu'il contient 5 éléments avec un large éventail, puisque je n'ai à ce jour pas de script de test compatible avec ces solutions.

La memoire disponible pour KhiCAS sur Casio graph 90+e doit etre un peu inferieure a 60K, on peut par exemple executer evalf(ranm(60,60)):; i.e. calculer une matrice 60x60 a coefficients entiers et l'evaluer en flottants, or chaque matrice necessite un peu plus de 60*60*8 octets (un peu moins de 30K).
Sur la Prime, il n'y a pas de limite autre que la RAM disponible, donc ca doit etre 3 a 4 ordres de grandeur au-dessus, autant dire qu'il n'y aura pas de contraintes a ce niveau.
Les chiffres donnes pour MicroPython sont peut-etre surestimes, ca m'etonnerait qu'un entier nul necessite a lui seul 24 octets comme sur PC. Il faudrait regarder le code source.
Avatar de l’utilisateur
parissePremium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 44.6%
 
Messages: 1447
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié

Re: Maj majeure CasioPython Graph 35/75+E: flottants+longs+3

Message non lude parisse » 21 Nov 2018, 07:10

@critor, merci pour la correction!
Avatar de l’utilisateur
parissePremium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 44.6%
 
Messages: 1447
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié

Re: Maj majeure CasioPython Graph 35/75+E: flottants+longs+3

Message non lude critor » 21 Nov 2018, 12:07

Bravo,
CasioPython
est apparemment le portage avec le module
builtins
le plus complet ! :bj:
viewtopic.php?p=237007#p237007
Image
Avatar de l’utilisateur
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Prochain niv.: 78.6%
 
Messages: 30941
Images: 7324
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
Classe: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Maj majeure CasioPython Graph 35/75+E: flottants+longs+3

Message non lude critor » 25 Nov 2018, 10:14

Version 1.4 maintenant disponible :
https://www.planet-casio.com/Fr/program ... howid=3603

Le sélectionner/couper/copier/coller via
SHIFT
+
8
9
marche maintenant dans l'éditeur, mais pas dans la console.

Source : https://www.planet-casio.com/Fr/program ... e=10#58571
Image
Avatar de l’utilisateur
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Prochain niv.: 78.6%
 
Messages: 30941
Images: 7324
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
Classe: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti


Retourner vers News Casio

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités

-
Rechercher
-
Sujets à la une
"NumWorks++": Challenge de modification matérielle pour rajouter une puce de mémoire Flash !
Offre TI-Planet/Jarrety pour avoir la TI-83 Premium CE avec son chargeur pour 79,79€ port inclus !
Offre TI-Planet/Jarrety pour avoir la TI-Nspire CX CAS à seulement 130€ TTC port inclus!
Jailbreake ta TI-Nspire avec Ndless et profite des meilleurs jeux et applications !
Transforme ta TI-Nspire CX en console Game Boy Advance!
12345
-
Donations/Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
PayPal : paiement en ligne sécurisé - secure online payments
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety 
-
Stats.
450 utilisateurs:
>413 invités
>31 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)