
5.5
gratuite prévue pour Mai 2020
, Texas Instruments
va rajouter de formidables possibilités historiques à ta TI-83 Premium CE
:- mise à jour en 5.5de l'applicationSciTools
- mise à jour en 5.5de l'applicationPeriodic
- mise à jour en 5.5de l'applicationPython(TI-83 Premium CE Édition Pythonuniquement)


Python 5.5
offre de nouveaux modules intégrés pour tes scripts Python
:- time, certes déjà présent mais maintenant listé au menu et donc officiel
- , avec diverses possibilités :
- détection des simples pressions de touches clavier, y compris avec un clavier USBexterne !
- affichage dans la console à la ligne que tu veux
- exportation de listes de nombres du contexte Pythonvers l'environnement de la calculatrice
- importation dans le contexte Pythonde listes existant dans l'environnement de la calculatrice vers
- et donc plus généralement un début d'intégration du Pythonà l'environnement mathématique de la calculatrice; plus besoin de traiter les tâches numériques à part, l'applicationPython 5.5va enfin pouvoir servir s'articulier naturellement au sein de la résolution de problèmes et tâches complexes !
- détection des simples pressions de touches clavier, y compris avec un clavier
- , une bibliothèque graphique pour tracer dans un repère othogonal, conformément aux programmes de MathématiquesetPhysique-Chimie, comparable àchezmatplotlou encoreCasio, et gérant ici les diagrammes suivants :matplotlib.pyplot
- nuage de points
- diagramme en ligne brisée
- droite de régression linéaire
- pour contrôler directement les pixels de l'écran, comparable à chezkandinskyou encoreNumWorkscasioplot
- ti_hub, pour les projets d'objects connectés à l'aide de l'interface
- , pour les projets de robotique à l'aide du


Python 5.5
gère également la possibilité inédite de rajouter des modules Python
complémentaires :- , comparable à turtle
- pour les diagrammes en boîte
- pour les histogrammes et aires entre courbes
- pour les diagrammes utilisant des champs de vecteurs
Nous disposons aujourd'hui enfin de ces 4 modules complémentaires et nous proposons de commencer à t'analyser.
Explorons maintenant plus en profondeur
Attention, ces modules ne sont apparemment pas inclus dans la mise à jour et seront à charger séparément.
Attention également selon nos premiers tests, contrairement aux modules intégrés ces modules complémentaires ne seront pas utilisables en mode examen.
Attention également selon nos premiers tests, contrairement aux modules intégrés ces modules complémentaires ne seront pas utilisables en mode examen.

Explorons maintenant plus en profondeur
ce_chart
pour quelques diagrammes complémentaires.Sommaire :
1) importation et taille ce_chart
Go to top

ce_chart.8xv
chargé dans la calculatrice, à première vue aucun changement.ce_chart
n'apparaît pas dans la liste des script Python
, et la calculatrice ne l'identifie d'ailleurs clairement pas comme un script Python
.ce_chart
n'apparaît pas non plus dans la liste des modules disponibles.Mais pas grave, tentons quand même notre première importation de
ce_chart
.
gc
et du script suivant, voyons ce que cette importation consomme sur le tas (heap)
Python
de 17 Ko
et quelques.- Code: Select all
from gc import mem_free as mf
smod = input('Module : ')
mf1, mf2 = 0, 0
scmd = 'from ' + s + ' import *'
mf1 = mf()
exec(scmd)
mf2 = mf()
print(mf1 - mf2)
Comme tu peux voir, la consommation de tas est importante, le module
ce_chart
fait 13,344 Ko
. Il nous reste maintenant moins de 3 Ko
de heap
Python
disponible, on ne va pas pouvoir être bien ambitieux... 
On peut toutefois facilement comprendre cela. Il s'agit d'un module de tracé :
- qui probablement importe lui-même en interne ti_plotlib(7,232 Ko)
- ti_plotlibimporte à son tour le modulesys(224 o)
- ti_plotlibimporte lui-même à son tourti_graphics(2,896 Ko)
- ti_graphicsimporte également le modulesys(224 o)
- ti_graphicsimport aussi le modulemath(336 o)
heap
, tu aurais déjà à ta disposition une bonne partie des modules et de leurs fonctionnalités sans avoir à rien importer d'autre. 
2) menus ce_chart
Go to top


ce_chart
n'est en fait rajouté aux menus qu'à partir du moment où tu édites ou crées un script qui l'importe.En l'absence de menus jusque-là, il te faudra donc saisir toi-même le nom du module pour la commande d'imporation.
Nous avons donc maintenant deux onglets à notre disposition,
ce_chart
et Rectangle
.3) exemples ce_chart
Go to topLe programme de
Physique-Chimie
de Seconde indique d'aborder divers tracés en Python
:- nuages de points
- histogrammes
- positions successives d'un système modélisé par un point
- vecteurs vitesse associés à chacun de ces points

Il manquait donc les histogrammes, et c'est justement l'objet de
ce_chart
.Découvrons cela de suite à travers quelques exemples.
Regardons-en de suite l'utilisation à cette fin :
- Code: Select all
from random import *
from ce_chart import *
n = 5
cx = [randint(0,12) for i in range(n + 1)]
connex = [("Ke", cx[1] / 12), ("Jo", cx[2] / 12), ("Am", cx[3] / 12, ("Pa", cx[4] / 12), ("Ma", cx[5] / 12)]
cht = chart()
cht.data(connex)
cht.title("Temps de connextion")
cht.frequencies(2)
cht.show()

Texas Instruments
a également eu la bonne idée d'exposer la fonction interne de tracé de rectangle servant pour les barres d'histogramme dans un 2nd onglet de menu.Contrairement à la fonction
drawRect()
du module intégré ti_graphics
, ici cela permet de travailler non pas en comptant les pixels, mais directement avec les coordonnées dans le repère du diagramme ! 


draw_fx()
est justement là pour compléter le tracé avec la courbe en question.
- Code: Select all
from ce_chart import *
import ti_plotlib as plt
from math import *
cht = chart()
plt.cls()
plt.window(-pi, pi, -1.1, 1.4)
plt.grid(.6, .40, "solid")
plt.color(0,0,0)
plt.axes()
f = lambda x:sin(x)
def calc_area(n, min, max, fx):
sum = 0
dx = (max - min) / n
for i in range(0, n)
a_rectangle = rectangle(min, 0, dx, fx(min + dx/2), 'b')
sum += a_ractangle.area
a_rectangle.draw()
min += dx
return sum
draw_fx(-pi, pi, f, 40, "g")
the_area = calc_area(50, -pi, pi, f)
plt.title("Somme des Aires = " + str(round(the_area, 4)))
plt.show_plot()
4) exploration ce_chart
Go to topEnfin, terminons par une exploration intégrale du contenu du module
Notons en passant la présence d'une fonction permettant à tes scripts de tester la version
On valide en passant l'hypothèse formulée plus haut, le module
Le module
De quoi mettre à jour notre comparatif de la richesse des différentes solutions
Classement en terme de richesse :
Classement en terme de richesse :
ce_chart
, à l'aide du script suivant :- Code: Select all
#platforms:
#0: MicroPython / TI-Nspire
#1: MicroPython / NumWorks
#2: MicroPython / G90+E / G35+E II
#3: MicroPython / G35+E/USB / G75/85/95
#4: CircuitPython / TI-Python / 83PCE / Trinket M0
#5: Xcas / HP Prime
#6: KhiCAS / Graph 90+E
def getplatform():
id=-1
try:
import sys
try:
if sys.platform=='nspire':id=0
if sys.platform.startswith('TI-Python') or sys.platform=='Atmel SAMD21':id=4
except:id=3
except:
try:
import kandinsky
id=1
except:
try:
if chr(256)==chr(0):id=5+(not ("HP" in version()))
except:
id=2
return id
platform=getplatform()
#lines shown on screen
#plines=[29,12, 7, 9,11,0,0]
plines=[29,16, 7, 9,11,0,0]
#max chars per line
#(error or CR if exceeded)
pcols =[53,99,509,32,32,0,0]
unsafe = ((), (), (), ('sys.argv', 'sys.path'), (), (), ())
if platform>=0:
curline=0
_p = print
nlines=plines[platform]
ncols=pcols[platform]
def print(*ls):
global curline
st=""
for s in ls:
if not(isinstance(s,str)):
s=str(s)
st=st+s
stlines=1+int(len(st)/ncols)
if curline+stlines>=nlines:
input("Input to continue:")
curline=0
_p(st)
curline+=stlines
def sstr(obj):
try:
s=obj.__name__
except:
s=str(obj)
a=s.find("'")
b=s.rfind("'")
if a>=0 and b!=a:
s=s[a+1:b]
return s
def isExplorable(obj):
for k in done:
try:
if isinstance(obj, eval(k)):
t, done[k] = done[k], True
return not t
except: pass
if str(obj).startswith("<module"): return False
l = ()
try: l = dir(obj)
except: pass
return len(l)
done = {'str':False, 'list':False, 'tuple':False, 'dict':False, 'complex':False, 'set':False, 'frozenset': False}
def explmod(pitm, pitmsl=[], reset=True):
global curline
spitm=sstr(pitm)
if(reset):
curline=0
pitmsl=[spitm]
for k in done: done[k] = False
hd="."*(len(pitmsl)-1)
c,c2=0,0
l = sorted(dir(pitm))
for i in range(len(l)):
l[i] = (l[i], getattr(pitm, l[i]))
try:
if not isinstanceof(pitm, str):
for i in range(len(pitm)):
l.append((spitm+'['+str(i)+']',pitm[i]))
except: pass
for itm in l:
c,c2=c+1,c2+1
isUnsafe = platform >= 0 and '.'.join(pitmsl + [itm[0]]) in unsafe[platform]
try:
if isUnsafe: raise Exception
print(hd+itm[0]+"="+str(itm[1]))
except:
print(hd+itm[0])
if not isUnsafe and isExplorable(itm) and itm[1] != pitm and itm[0] not in pitmsl:
pitmsl2=pitmsl.copy()
pitmsl2.append(itm[0])
c2=c2+explmod(itm[1], pitmsl2, False)[1]
if c>0 and reset:
print(hd+"Total: "+str(c)+" 1st level item(s)")
if c2>0 and c2!=c:
print(hd+" "+str(c2)+" item(s)")
return [c,c2]

ce_box
, ici 1.0
.On valide en passant l'hypothèse formulée plus haut, le module
ti_plotlib
est bien inclus dans ce_box
et accessible via ce_box.plt
.Le module
ce_box
offre donc 8 éléments au premier niveau, et jusqu'à 67 en comptant les sous-éléments.De quoi mettre à jour notre comparatif de la richesse des différentes solutions
Python
sur calculatrices :Casio Graph 35+E II 90+E | NumWorks | TI-83PCE Ed. Python | ||
builtins array collections cmath gc math matplotlib matplotlib.pyplot micropython os random sys time turtle uerrno | 84-197 . . . . 25-47 . . . . 8-30 . . . . | 97-1581 3-363 . 13-428 9-404 42-602 . . 10-410 . . 17-977 . . 25-1277 | 89-211 . . 12-34 . 41-63 3-25 11-33 6-28 . 9-31 . 3-25 38-60 . | 92-211 2-24 2-24 . 7-29 28-50 . . . . 8-30 15-93 4-26 . . |
spécifique | casioplot:6-28 | prime:3-368 | ion:48-162 kandinsky:8-30 | ti_graphics:30-75 ti_hub:? ti_plotlib:49-84 ti_system:12-34 ti_rover:66-92 |
Modules | 4 | 9 | 11 | 13 |
Eléments | 123-302 | 219-6042 | 267-701 | 315-772 |
Classement en terme de richesse :
- 315-772éléments :TI-83 Premium CE Edition Python
- 267-701éléments :NumWorks
- 219-6042éléments :HP Prime(version alpha)
- 123-302éléments :Casio Graph 90+E / 35+E II
Casio Graph 35+E II 90+E | MicroPython TI-Nspire | TI-Python | TI-83PCE Ed. Python | |||
builtins array collections cmath gc math matplotlib matplotlib.pyplot micropython os random sys time turtle uerrno | 84-197 . . . . 25-47 . . . . 8-30 . . 69-126 . | 91-230 2-28 . 12-38 7-33 41-67 . . 6-32 . 8-34 12-38 . . 24-108 | 93-218 2-28 . 12-38 7-33 41-67 . . 3-29 . . 15-86 . . . | 92-212 2-24 2-24 . 7-29 28-50 . . . . 8-30 15-93 4-26 . . | 93-214 2-25 2-25 12-35 7-30 41-64 . . 6-29 15-38 8-31 15-99 8-33 . . | 92-211 2-24 2-24 . 7-29 28-50 . . . . 8-30 15-93 4-26 . . |
spécifique | casioplot:6-28 matplotl:25-68 | nsp:3-10 | board:22 storage:7-47 | ce_box:5-32 ce_chart:8-67 ce_quivr:5-41 ce_turtl:? ti_graphics:30-75 ti_hub:? ti_plotlib:49-84 ti_system:12-34 ti_rover:66-92 | ||
Modules | 6 | 9 | 8 | 9 | 13 | 17 |
Eléments | 217-496 | 203-608 | 176-509 | 158-488 | 238-692 | 333-912 |
Classement en terme de richesse :
- 322-912éléments :TI-83 Premium CE Edition Python
- 267-701éléments :NumWorks
- 238-692éléments :TI-83 Premium CE + TI-Python(firmware tiers)
- 219-6042éléments :HP Prime(version alpha)
- 217-496éléments :Casio Graph 90+E / 35+E II / fx-CG50 / fx-9750/9860GIII
- 203-608éléments :Casio Graph 75/85/95 / 35+E/USB / 35+E II / fx-9750GII/GIII / fx-9860G/GII/GIII(appli CasioPython)
- 176-509éléments :TI-Nspire(appli MicroPython)
- 158-488éléments :TI-83 Premium CE + TI-Python
Tuto-vidéos
: