Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Actualités


Index du Forum » Actualités » Le nouvel OS 3.20 pour la Graph 90+E
Shadow15510 Hors ligne Administrateur Points: 5504 Défis: 18 Message

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)







1, 2 Suivante
Dark storm En ligne Labélisateur Points: 11641 Défis: 176 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
Massena Hors ligne Ancien rédacteur Points: 2244 Défis: 11 Message

Citer : Posté le 30/08/2018 18:06 | #


Wooow joli
Dommage, je possède une vieille 35+ tweakée...
Dark storm En ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 30/08/2018 18:08 | #


Il te reste Casio Python
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Shadow15510 Hors ligne Administrateur Points: 5504 Défis: 18 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

Lephenixnoir En ligne Administrateur Points: 24632 Défis: 170 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 ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Massena Hors ligne Ancien rédacteur Points: 2244 Défis: 11 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é.
Critor Hors ligne Administrateur Points: 2683 Défis: 18 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 En ligne Labélisateur Points: 11641 Défis: 176 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
Critor Hors ligne Administrateur Points: 2683 Défis: 18 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 En ligne Labélisateur Points: 11641 Défis: 176 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
Critor Hors ligne Administrateur Points: 2683 Défis: 18 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 En ligne Labélisateur Points: 11641 Défis: 176 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
Lephenixnoir En ligne Administrateur Points: 24632 Défis: 170 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 ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Critor Hors ligne Administrateur Points: 2683 Défis: 18 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 En ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 30/08/2018 22:22 | #


Bien vu ! o/
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Lephenixnoir En ligne Administrateur Points: 24632 Défis: 170 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.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Zezombye Hors ligne Rédacteur Points: 1756 Défis: 13 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 En ligne Administrateur Points: 24632 Défis: 170 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 ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Zezombye Hors ligne Rédacteur Points: 1756 Défis: 13 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 En ligne Administrateur Points: 24632 Défis: 170 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() ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
1, 2 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 76 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd