Le nouvel OS 3.20 pour la Graph 90+E
Posté le 30/08/2018 17:15
Durant l'été certains se font dorer la pilule, d'autre vont à la montagne, mais il n'y en a d'autres encore : il y a ceux qui ne prennent pas de vacances comme l'équipe de Planète Casio. par exemple ! Chez Casio on travaille tous le temps et c'est pour vous proposer le tout dernier OS de la puissante Graph 90+E...
Le nouveau menu principal
Par rapport à la version 3.15, cet OS intègre un IDE Python. Au passage Casio à équipé la 3.20 de la dernière version Python disponible ce qui la met sur un pied d'égalité avec la NumWorks, à savoir le Micropython 1.9.4. La version 3.20 gagne également en ergonomie, notamment du côté du catalogue ([SHIFT]
[4]) de fonctions qui permet une recherche rapide des fonctions de bases du python. Point intéressant les programmes codés en python prennent l'extension *.py comme tous les autres fichiers pythons, et sont stockés dans la mémoire de stockage de votre machine.
L'éditeur aussi à gagné en ergonomie et en simplicité d'utilisation : outre le catalogue, la barre de fonction en bas de l'écran offre de nouvelles possibilités dont une navigation simplifiée même dans les codes les plus gros.
La coloration syntaxique de code en Python
Casio met à profit l'écran couleur de la Graph 90+E en ajoutant une coloration syntaxique et des indentations automatiques ainsi qu'une numérotation des lignes ce qui permet de localiser une éventuelle erreur avec plus de rapidité et de facilité !
Néanmoins, la sauvegarde d'un petit programme prend du temps et il est à craindre que la sauvegarde de gros programmes python soit réellement longue...
Autre point intéressant l'application python faisant désormais parti du kit de base vous avez accès à votre IDE même en mode Exam'
Le menu des programmes en Python
Indépendamment de Python qui est le clou de ce nouvel OS, Casio a revu les app' déjà existantes. L'ergonomie au niveau de la saisie des formules se veux la plus intuitive possible, de nouvelles fonctionnalités au niveau des solveurs de graphes sont plus simples d'utilisation : par exemple pour trouver le point d'intersection de deux courbes une seule touche suffit.
Les Graphes ont été subdivisés en plusieurs catégories de manière à améliorer l'ergonomie on trouve ainsi une icones pour les graphes 3D, une autres pour les fonctions,... etc L'OS a été conçus de manière à ce que tout soit lié : vous donnez une formules dans le soldeur d'équations, vous pouvez voir sa représentation graphique ce qui permet de vérifier la justesse de votre calcul.
Autre amélioration notable : la simplification de l'interface des graphes 3D des petites choses utiles comme faire tourner le graph se trouve simplifiée. On voit la aussi que les graph 3D ont été subdivisé en plusieurs catégories : cylindres, lignes cônes, sphères...
Autre nouveauté de cet OS : E-CON4 qui permet comme le 2 et le 3 de connecter la calculatrice à une sonde externe de manière à effectuer des mesures : températures ,voltages; hygrométrie,... Dans ce dernier OS Casio nous gâte puisque cette application a été rendue plus intuitive et elle permet d'établir des graphes grâces aux mesures.
Je remercie Critor pour les images
Téléchargements :
OS 3.20 pour Graph 90+E (Windows)
OS 3.20 pour Graph 90+E (Mac)
Citer : Posté le 30/08/2018 17:42 | #
Nice, je mets à jour la G90+E de CC qui est en ma possession ce soir, j'en profiterai pour tester plus en profondeur le Python
Au passage, si vous connaissez des profs, Casio offre (stocks limités) des G90+E aux enseignant⋅e⋅s qui le souhaitent. Ça demande juste une adresse mail académique et une postale d'établissement scolaire. Avec un peu de tact et de chance, vous pouvez négocier un modèle avec lui⋅elle.
https://www.casio-education.fr/sample_request/1/sample_request_participation/step1
Citer : Posté le 30/08/2018 18:06 | #
Wooow joli
Dommage, je possède une vieille 35+ tweakée...
Citer : Posté le 30/08/2018 18:08 | #
Il te reste Casio Python
Citer : Posté le 30/08/2018 18:08 | #
Dark-Strom tu m'intéresses : Comment faut faire pour avoir la Graph 90 ?
Citer : Posté le 30/08/2018 18:09 | #
La question est désormais : pourquoi ont-il gâché leur superbe écran 384×216 avec une police si grosse qu'ils peuvent afficher moins de lignes et de colonnes que Casio Python sur une machine de 128×64 ?
Citer : Posté le 30/08/2018 18:12 | #
@DarkS Je pense l'avoir déjà dit, je-ne-sais-pas-programmer-en-python-et-j'ai-pas-envie.
Désolé.
Citer : Posté le 30/08/2018 18:31 | #
Peut-être une piste pour comparer les capacités Python entre les différentes machines concernées :
https://tiplanet.org/forum/viewtopic.php?f=51&t=21798&p=234643#p234643
Vu que le catalogue ne liste pas tout.
def bintr2():
for a in sorted(dir(builtins)):
b=eval(a)
print(a,b)
c=dir(b)
if c:
print(c)
...
On peut comparer avec NumWorks : https://workshop.numworks.com/python/andreanx/bintr2
Citer : Posté le 30/08/2018 20:19 | #
J'ajoute ici aussi quelques tests. Je mettrais à jour ce commentaire au fur et à mesure.
Profondeur de récursivité
try:
r(a+1)
except:
print(a)
>>> r(0)
>>> 62
Mémoire disponible
while True:
try:
a.append(0)
except:
print(len(a))
break
>>> 131072
Module math
for i in dir(math):
print(i)
>>> __name__
acos
asin
atan
atan2
ceil
cos
cosh
e
exp
fabs
floor
fmod
frexp
ldexp
log
log10
modf
pi
pow
sin
sinh
sqrt
tan
tanh
Module random
for i in dir(random):
print(i)
>>> __name__
getrandbits
seed
randrange
randint
random
choice
uniform
Filesystem
print(f)
>>> None
Éditeur
Supporte 300 lignes de code maximum. Si on essaie d'ouvrir un fichier de plus de 300 lignes, ça déclenche l'erreur Taille invalide. Par contre l'exécution se fait sans soucis.
Citer : Posté le 30/08/2018 21:16 | #
Très bien.
Juste une petite remarque :
Mémoire disponible
while True:
try:
a.append(0)
except:
print(len(a))
break
>>> 131072
Ce n'est pas la taille de la mémoire disponible que tu mesures ici, mais celle du plus grand bloc continu de mémoire allouable.
Citer : Posté le 30/08/2018 21:19 | #
Je suis pas sûr que les listes soient continues en mémoire. Justement parce que c'est dynamique comme structure de donnée. Faudrait que je teste sur des arrays.
Citer : Posté le 30/08/2018 21:25 | #
Il me semble qu'elles le sont, vu qu'avec du code qui fait comme si j'arrive à allouer bien davantage, presque deux fois plus que toi.
Citer : Posté le 30/08/2018 21:27 | #
Étonnant. Après un restart (au dos), j'obtiens exactement le même résultat…
Citer : Posté le 30/08/2018 22:06 | #
>>> 131072
Je suis peut-être un peu spécial mais ce qui me saute aux yeux c'est que c'est une puissance de 2. Donc +1 pour Critor, les tableaux sont en effets continus et doublés de taille quand il faut. Donc Darks a obtenu que la taille du bloc maximal est entre 4 * 131072 et 4 * 262144.
Bien sûr grâce à la politique de doubler à chaque fois, on ne sait pas vraiment où est la limite dans cet intervalle. Quel était ton test et son résultat, Critor ?
Citer : Posté le 30/08/2018 22:11 | #
Voici pour mon test. En cas d'exception, on commence à allouer et additionner un nouveau bloc :
try:
l=[0]
while True:
try:
l=l+l[l[0]:]
except:
if l[0]<len(l)-1:
l[0]=len(l)-1
else:
print("+",4*len(l))
l[0]=4*len(l)+mem()
break
except:
return 0
return l[0]
Cela permet d'allouer jusqu'à 256099 éléments.
Si mon estimation de 4 octets par élément est correcte, on aurait donc autour de 1Mio de mémoire de travail.
Citer : Posté le 30/08/2018 22:22 | #
Bien vu ! o/
Citer : Posté le 30/08/2018 22:22 | #
Malheureusement MicroPython n'a pas de sys.getsizeof(), mais cette estimation pourrait bien être fausse. Le stockage du Python original est compliqué, pour être honnête... un entier prend chez moi 24 octets + 4 octets par mot de stockage pur (entiers à taille variable).
En tous cas le tas fait 3 Mo, c'est une certitude.
Citer : Posté le 30/08/2018 22:33 | #
Niveau mémoire, je suis dépassé moi...
Le script de DS donne 128, et le script de critor tourne même pas, ça me fait "MemoryError: memory allocation failed, allocating 640 bytes"
Va falloir que je libère un peu de mémoire quand même
Enfin, le garbage collector me dit qu'il y a quand même 1984 octets de dispo :
Doit sûrement y avoir une limite quelque part dans les options, ça me parait bizarre qu'il n'y ait que 2 ko de dispo.
Ecrivez vos programmes basic sur PC avec BIDE
Citer : Posté le 30/08/2018 22:42 | #
Ben en voilà une bonne idée, on peut demander des infos au GC. Grosso modo gc.mem_alloc() + gc.mem_free() devrait donner une idée raisonnable de la mémoire disponible (tous les objets ne sont peut-être pas gérés par le GC mais c'est déjà pas mal).
L'interface de ce module a-t-elle été compilée, par hasard ?
Citer : Posté le 30/08/2018 22:46 | #
Je viens de la compiler
Donc un total de 2064 octets dispo, ça sent la limite hardcodée ça... (ou alors une étrange coincidence).
Je vais continuer à regarder dans la config.
Ecrivez vos programmes basic sur PC avec BIDE
Citer : Posté le 30/08/2018 22:48 | #
Étrange coïncidence ? Ce n'est pas une puissance de 2... tu as une idée particulière en tête ?
C'est clairement trop petit pour être hardcodé. Regarde plutôt comment il alloue la mémoire ; malloc() ?