Forums Casio - Actualités

Index du Forum > Actualités > Le nouvel OS 3.20 pour la Graph 90+E
Shadow15510
Hors ligne
Administrateur
Points: 2010
Défis: 15
Message
Posté le 30/08/2018 17:15

Le nouvel OS 3.20 pour la Graph 90+E :

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)








Pages: 1, 2 | Suivante

Dark storm
Hors ligne
Membre d'honneur
Points: 10634
Défis: 174
Message
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
----------------------------------
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Páranÿe quetë Quendya
Massena
Hors ligne
Community Manager
Points: 401
Défis: 3
Message
Citer : Posté le 30/08/2018 18:06 | #
Wooow joli
Dommage, je possède une vieille 35+ tweakée...
----------------------------------
La loi de Murphy a écrit :
La probabilité qu'un événement arrive est inversement proportionnelle à sa désirabilité.
Dark storm
Hors ligne
Membre d'honneur
Points: 10634
Défis: 174
Message
Citer : Posté le 30/08/2018 18:08 | #
Il te reste Casio Python
----------------------------------
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Páranÿe quetë Quendya
Shadow15510
Hors ligne
Administrateur
Points: 2010
Défis: 15
Message
Citer : Posté le 30/08/2018 18:08 | #
Dark-Strom tu m'intéresses : Comment faut faire pour avoir la Graph 90 ?
----------------------------------
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Moral
   90%
Lephenixnoir
Hors ligne
Administrateur
Points: 12796
Défis: 136
Message
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 ?
----------------------------------
Rise.
Massena
Hors ligne
Community Manager
Points: 401
Défis: 3
Message
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é.
----------------------------------
La loi de Murphy a écrit :
La probabilité qu'un événement arrive est inversement proportionnelle à sa désirabilité.
Critor
Hors ligne
Administrateur
Points: 910
Défis: 0
Message
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.

import builtins
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
Dark storm
Hors ligne
Membre d'honneur
Points: 10634
Défis: 174
Message
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é
def r(a):
    try:
        r(a+1)
    except:
        print(a)

>>> r(0)
>>> 62


Mémoire disponible
a = []
while True:
    try:
        a.append(0)
    except:
        print(len(a))
        break

>>> 131072


Module math
import 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
import random
for i in dir(random):
    print(i)

>>> __name__
getrandbits
seed
randrange
randint
random
choice
uniform


Filesystem
f = open('test')
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.
----------------------------------
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Páranÿe quetë Quendya
Critor
Hors ligne
Administrateur
Points: 910
Défis: 0
Message
Citer : Posté le 30/08/2018 21:16 | #
Très bien.

Juste une petite remarque :
Dark storm a écrit :
Mémoire disponible
a = []
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.
Dark storm
Hors ligne
Membre d'honneur
Points: 10634
Défis: 174
Message
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.
----------------------------------
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Páranÿe quetë Quendya
Critor
Hors ligne
Administrateur
Points: 910
Défis: 0
Message
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.
Dark storm
Hors ligne
Membre d'honneur
Points: 10634
Défis: 174
Message
Citer : Posté le 30/08/2018 21:27 | #
Étonnant. Après un restart (au dos), j'obtiens exactement le même résultat…
----------------------------------
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Páranÿe quetë Quendya
Lephenixnoir
Hors ligne
Administrateur
Points: 12796
Défis: 136
Message
Citer : Posté le 30/08/2018 22:06 | #
Mémoire disponible
>>> 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.

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.

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 ?
----------------------------------
Rise.
Critor
Hors ligne
Administrateur
Points: 910
Défis: 0
Message
Citer : Posté le 30/08/2018 22:11 | #
Voici pour mon test. En cas d'exception, on commence à allouer et additionner un nouveau bloc :
def mem():
  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.
Dark storm
Hors ligne
Membre d'honneur
Points: 10634
Défis: 174
Message
Citer : Posté le 30/08/2018 22:22 | #
Bien vu ! o/
----------------------------------
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Páranÿe quetë Quendya
Lephenixnoir
Hors ligne
Administrateur
Points: 12796
Défis: 136
Message
Citer : Posté le 30/08/2018 22:22 | #
Si mon estimation de 4 octets par élément est correcte, on aurait donc autour de 1Mio de mémoire de travail.

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.
----------------------------------
Rise.
Zezombye
En ligne
Rédacteur
Points: 1451
Défis: 12
Message
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.
----------------------------------
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Lephenixnoir
Hors ligne
Administrateur
Points: 12796
Défis: 136
Message
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 ?
----------------------------------
Rise.
Zezombye
En ligne
Rédacteur
Points: 1451
Défis: 12
Message
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.
----------------------------------
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Lephenixnoir
Hors ligne
Administrateur
Points: 12796
Défis: 136
Message
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() ?
----------------------------------
Rise.

Pages: 1, 2 | Suivante

Index du Forum > Actualités > Le nouvel OS 3.20 pour la Graph 90+E

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2018 | Il y a 35 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire indépendant, géré bénévolement et n'est donc pas affilié à Casio | Toute reproduction de Planète Casio, même partielle, est interdite
Les fichiers, programmes et autres publications présents sur Planète Casio restent la propriété de leurs auteurs respectifs et peuvent être soumis à des licences ou des copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd