A la rentrée 2019 comme déjà annoncé le
Plusieurs calculatrices graphiques intègrent déjà une implémentation
Mais à côté de cela nous avons aussi plusieurs implémentations communautaires, bien évidemment inutilisables en mode examen à la différence :
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 :- NumWorksavecMicroPython 1.9.4
- Casio Graph 90+EavecMicroPython 1.9.4
- HP Primeavec l'écriturePythondeXcas
- le module externe TI-PythonpourTI-83 Premium CEavec peut-êtreCircuitPython, mais nous en reparlerons

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
DELne 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, 

Déjà, les nombres flottants sont enfin gérés. Rappelons qu'un nombre flottant s'écrit sous la forme 
Les nombres complexes ainsi que les entiers longs 
Mais puisque l'on parle de

Mais le fonctionnement de notre script de concours prenant déjà pas moins de 2,627Ko avec rien que le chargement en mémoire
Nous obtenons donc
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 ! 


$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. 
- Code: Select all
def prec(b):
k=0
while 1+b**-k-1:
k=k+1
return k
(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 ! 
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...
gc
, quels sont donc les modules Python
intégrés dans l'application CasioPython
? Quelques commandes import
nous apprennent que nous disposons de :- builtinset__main__comme dans toute implémentation qui se respecte
- math(comme surGraph 90+E,NumWorks,TI-Nspireet moduleTI-Python)
- cmath(comme surNumWorksetTI-Nspire)
- random(comme surGraph 90+E,NumWorkset moduleTI-Python)
- array(comme surTI-Nspire)
- sys(comme surTI-Nspire)
- gc(comme surTI-Nspire)
TI-Nspire
tout en étant bien plus à jour ! 
À 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: Select all
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

30,147Ko
de mémoire de travail Python
, ce qui nous permet d'établir le classement suivant :- TI-Nspireavec2,046Mo
- Casio Graph 90+Eavec1,027Mo
- Casio Graph 35+E/75+Eavec30,147Ko
- calculatrice NumWorksavec13,658Ko
- logiciel web NumWorksavec5,946Ko
CasioPython
n'est pas parfait mais a franchi un cap et est désormais utilisable dans une contexte scolaire. 
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
: