π
<-
Chat plein-écran
[^]

News 2024
Avril (1)
Mars (1)

News 2023
Août (4)
Juin (3)
Mai (2)
Avril (4)
Mars (2)

News 2022
Août (2)
Juin (4)
Mai (7)
Avril (9)
Mars (10)

News 2021
Août (7)
Juin (2)
Mai (6)
Avril (11)
Mars (10)

News 2020
Août (4)
Juillet (11)
Juin (6)
Mai (4)
Avril (8)
Mars (3)

News 2019
Août (1)
Juin (3)
Mai (5)
Avril (1)
Mars (2)

News 2018
Août (4)
Juin (5)
Mai (9)
Avril (13)
Mars (5)

News 2017
Août (4)

COVID-19 : formations NumWorks individuelles en ligne

Nouveau messagede Admin » 19 Mar 2020, 15:21

Cher enseignant. Les délégués pédagogiques NumWorks avaient pour habitude de se déplacer sur demande dans ton établissement scolaire pour te présenter la calculatrice NumWorks ainsi que ses outils associés.

Les établissements scolaires étant actuellement fermés, NumWorks fait de son mieux pour s'adapter à la situation afin de continuer à t'offrir ses services dans les meilleures conditions possibles.

A la place des formations en établissement, tu peux donc dès maintenant réserver et préciser tes propres besoins sur le lien en fin d'article pour des formations en ligne individuelles sur-mesure, au créneau disponible de ton choix du lundi au vendredi de 8h à 18h ! :bj:


Accessoirement, la formation en ligne Python collective du mercredi 25 mars à 15h est bel et bien maintenue. :)




Lien : https://numworks.simplybook.it/v2/
Lien vers le sujet sur le forum: COVID-19 : formations NumWorks individuelles en ligne (Commentaires: 1)

NumWorks 13.1 : unités + études nombres + touches Python

Nouveau messagede Admin » 28 Mar 2020, 09:35

12312Dans la crise sanitaire actuelle, NumWorks reste à tes côtés. Afin de t'accompagner dans tes apprentissages et devoirs avec un outil toujours plus exceptionnel, la nouvelle version NumWorks 13 est maintenant disponible. :)

Plus précisément il s'agit de la version 13.1.0 et nous allons découvrir ensemble les nouveautés apportées :




1) Clavier et interface

Go to top

Déjà grande nouveauté, dans l'ensemble des applications il t'est enfin possible de sélectionner naturellement du texte dans une zone de saisie. Cela se passe aussi naturellement que sur ordinateur, en maintenant la touche
shift
puis une touche fléchée. :)

La sélection pourra alors être coupée-copiée-collée-effacée à l'aide des raccourcis clavier. :)

C'est particulièrement bienvenu dans le cadre de l'application Python, pour une saisie encore plus rapide et donc agréable de tes scripts lorsqu'ils comporteront plusieurs lignes ou blocs similaires ! :bj:

Notons également que le défilement des tableaux de valeurs présentés par les divers applications a été accéléré.




2) Paramètres et mode examen

Go to top

Afin de cibler les besoin des différents pays et examens, la calculatrice dispose désormais de 2 modes examen au choix :
  1. Standard, qui efface le contenu mémoire sans limitation de fonctionnalités comme exigé en France.
  2. Dutch, ciblant la réglementation plus restrictive des Pays-Bas qui viennent tout juste d'autoriser la calculatrice NumWorks aux examens.
Si tu ne vois rien c'est normal, le choix de ce 2ème mode examen n'est pas proposé lorsque la calculatrice est réglée en langue française. La calculatrice ne parlant pas non plus néerlandais pour le moment, à ce jour tu devras la basculer en anglais pour le faire apparaître.

En plus du contenu mémoire, ce mode examen Dutch désactive comme indiqué l'application Python, car les Pays-Bas interdisent l'accès à tout éditeur de texte pendant les épreuves.

Et bien évidemment, une fois le mode examen néerlandais activé, il n'est plus possible d'altérer ces restrictions sans désactiver le mode examen et donc éteindre la diode. A priori NumWorks a bien codé la chose; changer la langue ou réactiver le mode examen ne permet pas de récupérer l'accès à l'application Python.

Les deux modes examens produiront de plus un signal différent sur la diode :
  • rouge en mode examen Standard
  • jaune en mode examen Dutch
Voilà qui permettra aux surveillant de détecter les candidats qui n'auraient pas activé le bon mode, surtout aux Pays-Bas.

Enfin en ce qui nous concerne, notons qu'une fois le mode examen activé, son écran affiche maintenant les instructions permettant de le désactiver, à savoir la connexion à toute source d'alimentation USB (ordinateur, tablette, smartphone OTG, batterie USB, chargeur USB, ...). :bj:




3) Paramètres et Python

Go to top

L'application Paramètres offre de plus désormais un nouveaux choix, celui de la taille de police qui sera utilisée dans l'application Python :
  • Grande qui correspond à la taille utilisée jusqu'ici et permet d'afficher 12 lignes sur 29 colonnes
  • Petite qui permet quant à elle d'afficher 16 lignes sur 42 colonnes
Notons de plus que ce réglage s'applique aussi bien à l'éditeur qu'à la console Python. De quoi te permettre une bien meilleur vue d'ensemble de tes scripts ainsi que de leur affichage - merci NumWorks ! :bj:
1232912328




4) Python

Go to top

En ce qui concerne maintenant le langage Python nous avons beaucoup d'améliorations et nouveautés, n'ayons pas peur des mots et disons même énormément. :D

Déjà, autre amélioration de saisie mais dans le contexte Python, le catalogue accessible via la boîte à outils inclut désormais les fonctions associées à la classe list : :)
  • list.append(x)
  • list.clear()
  • list.count(x)
  • list.index(x)
  • list.insert(i,x)
  • list.pop(i)
  • list.remove(x)
  • list.reverse()
  • list.sort()

En Python les possibilités d'interactions avec des interfaces, notamment pour des menus ou jeux, étaient très limitées sur la NumWorks.

En effet, il n'y avait pas de fonction permettant de tester la pression d'une touche. Pas d'autre choix donc jusqu'à présent que de passer par la fonction input(), avec donc obligation pour l'utilisateur de valider avec
EXE
à chaque action, ce qui déjà rendait impossibles nombre de types de jeux.

NumWorks s'attaque enfin au problème dans cette dernière version, avec un nouveau module ion à cette fin dont voici l'exploration avec notre script explmod.py :
Code: Tout sélectionner
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,16,  7, 9,11,0,0]
#max chars per line
#(error or CR if exceeded)
pcols =[53,99,509,32,32,0,0]

nlines=plines[platform]
ncols=pcols[platform]
curline=0

def mprint(*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
  print(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):
  s=str(obj)
  return s.startswith("<") and s.find(" ")>=0

def explmod(pitm,pitmsl=[],reset=True):
  global curline
  if(reset):
    curline=0
    pitmsl=[sstr(pitm)]
  hd="."*(len(pitmsl)-1)
  spath=".".join(pitmsl)
  c,c2=0,0
  spitm=str(pitm)
  for itms in sorted(dir(pitm)):
    c,c2=c+1,c2+1
    try:
      itm=eval(spath+"."+itms)
      mprint(hd+itms+"="+str(itm))
      if isExplorable(itm) and itm!=pitm:
        pitmsl2=pitmsl.copy()
        pitmsl2.append(itms)
        c2=c2+explmod(itm,pitmsl2,False)[1]
    except:
      mprint(hd+itms)
  if c>0 and reset:
    mprint(hd+"Total: "+str(c)+" 1st level item(s)")
    if c2>0 and c2!=c:
      mprint(hd+"       "+str(c2)+" item(s)")
  return [c,c2]

12373123741237512376

C'est l'occasion pour nous de te fournir une table des codes clavier retenus, où la logique visuelle de numérotation t'aidera peut-être à retenir : :)

0

1

3

6
OK

4

5

2
shift

12
alpha

13
x,n,t

14
var

15
╒╕

16

17
e^x

18
ln

19
log

20
i

21
,

22
x^y

23
sin

24
cos

25
tan

26
π

27

28

29
7

30
8

31
9

32
(

33
)

34
4

36
5

37
6

38
×

39
÷

40
1

42
2

43
3

44
+

45
-

46
0

48
.

49
×10^x

50
Ans

51
EXE

52


12338On peut toutefois remarquer que la seule fonction fournie keydown() par le nouveau module ion ne permet que de savoir si une touche donnée est pressée ou pas.
Des scripts Python implémentant des jeux ou interfaces (pourquoi pas une boîte de saisie texte) vont donc devoir appeler cette fonction autant de fois qu'il y a de touches clavier traitées. On peut donc légitimement s'interroger sur ce que donne le temps d'exécution de la fonction potentiellement multiplié par les 46 touches clavier (ou plutôt 45, la touche d'allumage/exinction n'étant pas gérée par le module).

Et bien testons, voici getkeys.py, notre script où il te suffira d'un simple et unique appel getkeys() pour scanner l'ensemble de la matrice clavier et récupérer la liste des codes des touches actuellement pressées :
Code: Tout sélectionner
from ion import keydown

def keycodes():
  lc = list(range(0,6)) + list(range(12,35))
  for k in range(36,53):
    if (k+1)%6:
      lc.append(k)
  return lc

def getkeys():
  lk = []
  for k in keycodes():
    if keydown(k):
      lk.append(k)
  return lk


12339Nous allons de plus chronométrer l'appel getkeys() à l'aide de notre script timer.py :
Code: Tout sélectionner
from time import monotonic

def timer(f, *par):
  start=monotonic()
  f(*par)
  return monotonic()-start

L'appel maintenant devenu timer(getkeys) nous mesure donc autour 0,08 seconde pour le scan intégral du clavier, aussi bien sur N0100 que N0110.

8 centièmes de seconde ce n'est certes pas rien, mais c'est quand même très loin d'être la catastrophe que nous craignions. NumWorks semble avoir bien fait les choses. :)
Les jeux Python utilisant beaucoup de touches clavier seraient donc en théorie limités au mieux à 25 fps (images par seconde), ce qui est tout de même déjà humainement très acceptable. En pratique il suffira aux jeux en question de ne pas scanner l'intégralité du clavier mais seulement les touches utiles, et de toutes façons la lenteur des fonctions graphiques à ce jour ne pemet pas d'atteindre les 25 fps en Python même sans aucune lecture clavier.

En passant, si toi aussi tu souhaites optimiser tes tests de touches clavier dans le même style que notre fonction getkeys(), n'hésite pas à consulter le tutoriel associé à la nouvelle fonction keydown().

12378De toutes nouvelles interfaces et jeux deviennent envisageables possibles sur ta NumWorks, et cent20 s'est dépêché de te les illustrer ci-contre avec le premier jeu utilisant le module ion, un démineur ! :bj:


Suite à cet ajout majeur, profitons-en pour voir où nous en sommes niveau Python sur calculatrices. Voici déjà l'éventail des modules disponibles :

autorisés aux
examens français
inutilisables aux
examens français
NumWorks
Casio Graph
35+E II
90+E
TI-83PCE
Ed. Python
MicroPython
TI-Nspire
CasioPython
Casio Graph
35+E II
35+E/USB
75/85/95
TI-Python
builtins
array
collections
cmath
gc
math
micropython
os
random
sys
time
turtle
uerrno

.
.

.


.

.


.

.
.
.
.

.
.

.
.
.
.



.


.
.



.
.


.




.
.

.
.


.




.
.

.
.
.


.




.


.
.



.


.
.



.
.











.
.
spécifiquekandinsky
ion
primenspboard
storage
Total938989913

En terme de quantité de modules, la NumWorks arrive ainsi désormais au premier rang des solutions Python utilisables aux examens français, félicitations ! :bj:
Aux examens :
  1. 9 modules :
    NumWorks

    HP Prime (version alpha)
  2. 8 modules :
    TI-83 Premium CE Edition Python
  3. 3 modules :
    Casio Graph 35+E II
    Casio Graph 90+E
Hors examens :
  1. 13 modules :
    TI-Python (firmware tiers)
  2. 9 modules :
    NumWorks

    Casio Graph 35+E II
    Casio Graph 35+E/USB
    Casio Graph 75/85/95
    Casio fx-9750GII
    Casio fx-9860GII
    Casio fx-9860G

    (appli CasioPython)
    HP Prime (version alpha)
  3. 8 modules :
    TI-83 Premium CE Edition Python
    TI-Python
    TI-Nspire (appli MicroPython)
  4. 3 modules :
    Casio Graph 35+E II
    Casio Graph 90+E
    Casio fx-CG50


Et voici maintenant pour le contenu de ces mêmes modules :

autorisés aux
examens français
inutilisables aux
examens français
NumWorks
Casio Graph
35+E II
90+E
TI-83PCE
Ed. Python
MicroPython
TI-Nspire
CasioPython
Casio Graph
35+E II
35+E/USB
75/85/95
TI-Python
builtins
array
collections
cmath
gc
math
micropython
os
random
sys
time
turtle
uerrno
88-188
.
.
12
.
41
6
.
9
.
3
38
.
84-175
.
.
.
.
25
.
.
8
.
.
.
.
92-189
2-4
2
.
7
28
.
.
8
15-42
4
.
.
97-440
3-13
.
13-17
9-13
42-46
10-14
.
.
17-63
.
.
25-29
93-218
2-4
.
12
7
41
3
.
.
15-45
.
.
.
91-204
2-4
.
12
7
41
6
.
8
12
.
.
24
92-189
2-4
2
.
7
28
.
.
8
15-42
4
.
.
93-191
2-4
2
12
7
41
6
15
8
15-45
8-10
.
.
spécifique6(kandinsky)
48(ion)
3-7(prime)3-10(nsp)22(board)
7-21(storage)
Total251-351117-208158-284219-642176-340203-318158-284238-384

En terme de richesse des modules, la NumWorks varie donc entre les 2ème et 3ème rangs ! :bj:
Aux examens :
  1. 219-642 éléments :
    HP Prime (version alpha)
  2. 251-351 éléments :
    NumWorks
  3. 158-284 éléments :
    TI-83 Premium CE Edition Python
  4. 117-208 éléments :
    Casio Graph 35+E II
    Casio Graph 90+E
Hors examens :
  1. 219-642 éléments :
    HP Prime (version alpha)
  2. 238-384 éléments :
    TI-Python (firmware tiers)
  3. 251-351 éléments :
    NumWorks
  4. 176-340 éléments :
    TI-Nspire
    (appli MicroPython)
  5. 203-318 éléments :
    Casio Graph 35+E II
    Casio Graph 35+E/USB
    Casio Graph 75/85/95
    Casio fx-9750GII
    Casio fx-9860GII
    Casio fx-9860G

    (appli CasioPython)
  6. 158-284 éléments :
    TI-83 Premium CE Edition Python
    TI-Python
  7. 117-208 éléments :
    Casio Graph 35+E II
    Casio Graph 90+E


Parlons maintenant mémoire. En Python il y a plus précisément 3 mémoires :
  • la mémoire de stockage qui accueille et conserve tes scripts
  • le stack (pile) qui, à l'exécution, accueille les références vers les objets créés
  • le heap (tas) qui, à l'exécution, accueille les valeurs de ces objets

Avec la dernière version, tu disposais d'une mémoire de stockage pouvant accueillir jusqu'à 16 Kio de scripts Python.
La nouvelle version te double dès maintenant l'espace de stockage, avec pas moins de 32 Kio ! :bj:

Pour le reste, le stack / pile limite donc la quantité d'objets différents utilisables simultanément, alors que le heap / tas en limite le volume.
La NumWorks était très décevante dans les deux cas, se retrouvant sur ces points littéralement à la queue de l'ensemble des solutions Python sur calculatrices graphiques. :mj:


Notre script mem.py permet d'estimer la capacité du heap / tas :
Code: Tout sélectionner
def sizeenv():
  s=0
  import __main__
  for o in dir(__main__):
    try:s+=size(eval(o))
    except:pass
  return s
def size(o):
  s,t=0,type(o)
  if t==str:s=49+len(o)
  if str(t)=="<class 'function'>":s=136
  if t==int:
    s=24
    while o:
      s+=4
      o>>=30
  if t==list:
    s+=64
    for so in o:s+=8+size(so)
  return s
def mem(v=1,r=1):
  try:
    l=[]
    try:
      l+=[r and 793+sizeenv()]
      if v*r:print(" ",l[0])
      l+=[0]
      l+=[""]
      l[2]+="x"
      while 1:
        try:l[2]+=l[2][l[1]:]
        except:
          if l[1]<len(l[2])-1:l[1]=len(l[2])-1
          else:raise(Exception)
    except:
      if v:print("+",size(l))
      try:l[0]+=size(l)
      except:pass
      try:l[0]+=mem(v,0)
      except:pass
      return l[0]
  except:return 0

Celle-ci faisait 16 Kio sur les firmwares officiel, et cela n'a malheureusement pas changé pour la version 13.1.0.

En conséquence, vu les tailles non négligeables prises en mémoire par les objets Python les plus simples, tu seras très rapidement limité(e) dès que tes scripts vont commencer à travailler sur des tuples, listes ou pire listes de listes. :mj:


D'où le classement :
Aux examens :
  1. 1,032942 Mo :
    Casio Graph 90+E
  2. 1,022145 Mo :
    HP Prime (version alpha)
  3. 100,560 Ko :
    Casio Graph 35+E II
  4. 32,339 Ko
    NumWorks (firmware Omega)
  5. 20,200 Ko
    TI-83 Premium CE Edition Python
  6. 16,259 Ko
    NumWorks
Hors examens :
  1. 2,049276 Mo :
    TI-Nspire (application MicroPython)
  2. 1,032942 Mo :
    Casio Graph 90+E
  3. 1,022145 Mo :
    HP Prime (version alpha)
  4. 257,636 Ko :
    Casio Graph 35/75+E (application CasioPython)
  5. 100,560 Ko :
    Casio Graph 35+E II
  6. 32,339 Ko
    NumWorks (firmware Omega)
  7. 31,899 Ko :
    Casio Graph 35+E II (application CasioPython)
  8. 22,605 Ko
    TI-83 Premium CE + TI-Python (firmware tiers)
  9. 20,200 Ko
    TI-83 Premium CE Edition Python
  10. 19,924 Ko
    TI-83 Premium CE + TI-Python
  11. 16,238 Ko
    NumWorks


Par contre, NumWorks annonce avoir quadruplé la taille de la pile / stack pour la version 13.1, voyons cela. Comme déjà expliqué, cette augmentation devrait permettre d'avoir simultanément davantage d'objets en mémoire (mais pas davantage de données, les valeurs de ces objets allant comme déjà dit dans le tas / heap). C'est la même capacité que l'on peut partager entre davantage d'objets différents.

Comment mesurer cela ? Une situation qui permet de créer plein de références dans la pile / stack, c'est la récursivité, soit les fonctions qui se rappellent elles-mêmes. Prenons notre script recur.py :
Code: Tout sélectionner
def sumr(n):return n>0 and n+sumr(n-1)

def maxr(fct):
  n=0
  try:
    while True:
      fct(n)
      n=n+1
  except Exception as e:print(e)
  return n

12341L'appel maxr(sumr) permet en effet de constater un bon quadruplement du nombre maximal d'appels récursifs, passant de 30 à 143 avant le déclenchement de l'erreur maximum recursion depth exceeded, de quoi étudier et exploiter désormais bien plus sérieusement la récursivité ! :bj:

Là encore une nette progression au classement en terme de capacité de pile / stack. Merci NumWorks, la calculatrice est donc dès maintenant le meilleur choix aux examens français sur le critère de la récursivité ! :bj:
Aux examens :
  1. 143 :
    NumWorks
    (nouvelle version)
  2. 82 :
    Casio Graph 90+E
    Casio Graph 35+E II
  3. 77 :
    HP Prime (version alpha)
  4. 30 :
    NumWorks
    (ancienne version)
  5. 23
    TI-83 Premium CE Edition Python
Hors examens :
  1. 5362 :
    Casio Graph 35/75+E (application CasioPython)
  2. 655 :
    Casio Graph 35+E II (application CasioPython)
  3. 143 :
    NumWorks
    (nouvelle version)
  4. 130 :
    TI-Nspire (application MicroPython)
  5. 82 :
    Casio Graph 90+E
    Casio Graph 35+E II
  6. 77 :
    HP Prime (version alpha)
  7. 30 :
    NumWorks
    (ancienne version)
  8. 23
    TI-83 Premium CE Edition Python
  9. 20
    TI-83 Premium CE + TI-Python
  10. 15
    TI-83 Premium CE + TI-Python (firmware tiers)




5) Calculs

Go to top

NumWorks n'a également pas chômé avec l'application Calculs et nous apporte ici encore pléthore de nouveautés.

Déjà petite mise en bouche, NumWorks améliore l'intelligence de sa saisie. Lorsque par exemple on note f(5), sans connaître le contexte il y a ambiguité. Selon le contexte, cela peut être :
  • si f est une fonction, la fonction f appliquée à 5
  • sinon, le produit de f par 5
Jusqu'à la dernière version, la NumWorks considérait systématiquement que c'était un appel de fonction, même si f n'en était pas une, et ne te donnait donc aucun résultat. :(

Désormais ta NumWorks tiens compte du contexte, et t'interprétera automatiquement cette saisie en tant que produit si f n'a pas été définie en tant que fonction. :)


La NumWorks te permet désormais de calculer avec des nombres écrits en base non décimale : :bj:
  • base binaire en préfixant le nombre saisi par 0b
  • base hexadécimale en préfixant le nombre saisi par 0x

Le résultat reste certes affiché en base décimale, et il n'y a pas d'option pour changer cela.
Toutefois, NumWorks a prévu autre chose pour tes conversions dans l'autre sens. Si tu remontes dans l'historique de calculs avec la touche
, chaque résultat entier sélectionné se verra adjoindre un bouton qu'il te suffira de valider pour obtenir automatiquement des résultats additionnels :
  • la conversion en base hexadécimale :bj:
  • la conversion en base binaire :bj:
  • la décomposition en facteurs premiers :)
Et nul besoin de les noter sur ton brouillon, les différents résultats peuvent de plus être sélectionnés puis directement copiés-collés à des fins de réutilisation immédiate ! :bj:

Mais ce n'est pas tout, NumWorks te propose également des résultats additionnels de façon similaire en cas de résultat rationnel (écriture exacte en fraction), avec :
  • la conversion en fraction mixte (entier suivi d'une fraction propre, soit avec son numérateur inférieur au dénominateur) :)
  • le détail de la division euclidienne du numérateur par le dénominateur :)

Lorsque le résultat écrit sous forme exacte est un cosinus ou sinus de quelque chose, là NumWorks s'est déchaîné pour les résultats additionnels, avec :
  • représentation automatique et légendée du point associé sur le cercle trigonométrique :#tritop#:
  • cosinus associé sous forme exacte et décimale :bj:
  • sinus associé sous forme exacte et décimale :bj:

Et alors attends tu n'as pas vu les nombres complexes, ici c'est de la folie avec comme résultats additionnels proposés :
  • la représentation automatique et légendée du point associé dans le plan complexe :#tritop#:
  • le module sous forme exacte et décimale :bj:
  • l'argument sous forme exacte et décimale :bj:
  • la partie réelle sous forme exacte et décimale :bj:
  • la partie imaginaire sous forme exacte et décimale :bj:

Et non, ce n'est pas fini. Grâce au formidable travail de NumWorks, l'application Calculs gère désormais les unités, avec une toute nouvelle entrée pour t'en facilité la saisie dans la boîte à outils. De très nombreuses catégories d'unités sont présentes, de quoi couvrir l'ensemble de tes problèmes de Géométrie, Physique ou Chimie : :bj:
  • Temps
  • Distance
  • Masse
  • Intensité du courant électrique
  • Température
  • Quantité de matière
  • Intensité lumineuse
  • Fréquence
  • Force
  • Pression
  • Energie
  • Puissance
  • Charge électrique
  • Tension électrique
  • Capacité électrique
  • Résistance électrique
  • Conductance électrique
  • Induction électrique
  • Inductance
  • Superficie
  • Volume

Les unités sont notées avec le caractère tiret bas comme préfixe, que tu pourras une fois habitué saisir directement au clavier avec
shift
,
. Le menu se donne même la peine de les légender dans ta langue une fois de plus ! :bj:
Bien que toutes les combinaisons ne soient pas au menu, précisons que la calculatrice reconnaît bien l'ensemble des préfixes du système international de 1012 (Tera) à 10-12 (pico) ! :bj:

Rien à voir avec les unités proposée sur la concurrence de milieu de gamme où si c'est pas au menu c'est foutu. Ici les unités sont de véritables éléments gérés au niveau du moteur de calcul et que tu peux donc librement intégrer à ces derniers.

Tu peux notamment sommer différentes unités compatibles, avec un résultat automatiquement converti dans l'unité jugée la plus pertinente ! :bj:

Tu as peut-être remarqué qu'il n'y avait pas de catégorie vitesse au menu, ces unités étant obtenues par un simple quotient. Les possibilités de combinaison sont infinies et permettront de gérer les unités les plus complexes ! :bj:

Si jamais l'unité déterminée automatiquement pour le résultat ne te convient pas, tu pourras parfaitement la convertir dans toute unité compatible à l'aide de l'opérateur d'affectation obtenu via
shift
x^y
! :bj:

Les unités sont tellement bien intégrées et gérées, qu'elles peuvent même accompagner les valeurs que tu stockes dans des variables. En Physique-Chimie notamment, si tu te donnes la peine de saisir chaque constante ou donnée d'une formule avec son unité, tu pourras obtenir automatiquement le résultat accompagné de son unité la plus pertinente pour rafler un maximum de points à tes exercices ! :bj:

C'est fantastique, les équivalences d'unités sont même connues de la machine, comme ici le kilogramme mètre par seconde carrée automatiquement remplacé par le Newton ! :bj:

Inversement, si l'énoncé de Physique-Chimie tente de te piéger en ne précisant de façon générique que SI (Système International) comme unité pour les constantes qu'il te rappelle, les formidables possibilités de combinaisons infinies de la NumWorks te permettront de retrouver la bonne unité ! :bj:




6) Probabilités

Go to top

L'application Probabilités n'est pas en reste, NumWorks se donne la peine d'y rajouter une nouvelle loi, la loi de Fisher. :)




7) Équations

Go to top

La NumWorks te permettait déjà de résoudre des équations paramétrées, c'est-à-dire faisant intervenir des variables qui ne sont pas des inconnues mais ont bien été définies avec une valeur.
Il était donc dommage à l'écran des solutions de ne pas savoir à quelle(s) valeur(s) de paramètre(s) celles-ci correspondaient.

Dans la droite lignée de sa volonté de proposer des écrans aussi complets et compréhensibles que possible, NumWorks te rajoute à cet écran la liste des éventuels paramètres utilisés ainsi que leurs valeurs associées. :)




8) Fonctions

Go to top

NumWorks te permet désormais de parcourir plus rapidement tes courbes de fonctions, le déplacement du curseur s'accélérant par augmentation du pas si tu maintenant la touche fléchée enfoncée.




9) Régressions

Go to top

NumWorks s'est également occupé de l'application Régressions.

Le modèle de calcul utilisé pour les régressions Puissance et Trigonométrique n'était en effet pas celui majoritairement choisi par les logiciels de Mathématiques. Si bien que la concurrence était unanime à contredire à l'unisson les résultats de la NumWorks dans ces cas-là :

Désormais, le nouveau modèle utilisé est bien cohérent avec la concurrence. :)




10) Conclusion

Go to top

Les bonnes choses prennent du temps et franchement cela valait le coup d'attendre; nous ne sommes absolument pas déçus aujourd'hui avec cette dernière version absolument exceptionnelle pour ta NumWorks, riche de fonctionnalités innovantes ou jamais vu sur un modèle à ce prix-là ! :D

Entiers, rationnels, fonctions trigonométriques et nombres complexes... à chaque fois, ce sont littéralement de mini-études que te réalise désormais NumWorks dans l'application Calculs ! :bj:
Des représentations différentes qui t'amèneront à mieux comprendre chacun de ces résultats, ainsi qu'à développer ta compétence Représenter et passer à l'avenir plus naturellement d'une forme à l'autre. Une fonctionnalité donc d'une haute pertinence ! :bj:
On peut de plus rajouter qu'il s'agit de fonctionnalités exclusives à ce jour, ou plus précisément dans le contexte particulier de cette année 2020 avec le mode examen.
Il n'y a en effet rien d'équivalent sur les modèles concurrents, il faut y comprendre/retenir plusieurs commandes spécifiques et encore pour obtenir à chaque fois un seul des éléments de la série de résultats additionnels présentés.
De telles choses n'y étaient possibles qu'en y chargeant des programmes que nous te proposions gratuitement les années précédentes, programmes hélas bloqués par le mode examen cette année.
NumWorks se met donc ainsi à te recréer gratuitement dans son propre mode examen des fonctionnalités équivalentes aux programmes les plus pertinents produits par la communauté pour la concurrence ces dernières années. N'oubliant pas les besoins des élèves, NumWorks semble ainsi être le constructeur ayant le mieux compris l'ensemble des conséquences de la réforme du mode examen ! :bj:

On apprécie également la gestion des unités directement intégrée au niveau du moteur de calcul et donc sans contrainte, avec des possibilités infinies qui ne feront que faciliter la bonne compréhension des unités ! :bj:

Et une fois encore, bravo pour le nouveau module importable ion pour Python, avec des possibilités débordant du cadre des Mathématiques qui seront appréciées en Physique-Chimie, SNT et NSI ! :bj:

Toutes nos félicitations à NumWorks, cette version 13.1 c'est du grand art ! :bj:
Et au plaisir de la prochaine version ! ;)

Toutes ces superbes nouveautés ont toutefois un coût, la taille du firmware bondissant dans les 933 Kio avec la version 13.1.0.

Certes, aucune inquiétude à avoir pour le modèle de rentrée 2019 NumWorks N0110 avec ses 8 Mio de Flash.

Mais il n'en va pas de même pour le modèle initial NumWorks N0100 de rentrée 2017 avec seulement 1 Mio de Flash. A moins de possibilités d'optimisation encore inexploitées la NumWorks N0100 semble arriver en bout de course; elle ne pourra bientôt plus bénéficier de l'ensemble des ajouts des mises à jour à venir. :'(


Liens :
Lien vers le sujet sur le forum: NumWorks 13.1 : unités + études nombres + touches Python (Commentaires: 1)

NumWorks Python 13.2 : matplotlib.pyplot + tas/heap 32K !

Nouveau messagede Admin » 31 Mar 2020, 22:02

12384NumWorks continue à se démener pour t'apporter à domicile le meilleur outil possible en ces temps difficiles. La nouvelle version NumWorks 13.2 est déjà disponible, et malgré la numérotation les avancées en sont majeures ! :D





1) Python et mémoires

Go to top

Parlons maintenant mémoire. En Python il y a plus précisément 3 mémoires :
  • la mémoire de stockage qui accueille et conserve tes scripts
  • le stack (pile) qui, à l'exécution, accueille les références vers les objets créés
  • le heap (tas) qui, à l'exécution, accueille les valeurs de ces objets

En gros le stack / pile limite donc le nombre d'objets différents pouvant exister simultanément en mémoire, alors que le heap / tas limite la taille globale occupé par ces objets.

Dans la dernière version NumWorks avait déjà fortement amélioré la mémoire Python :
  • en doublant la mémoire de stockage :)
  • en quadruplant le stack / pile :D
Il restait donc encore à s'occuper du heap / tas. ;)
En pratique, le heap / tas était selon nous de taille insuffisante sur NumWorks quand on considère les tailles énormes occupées en mémoire par les objets Python les plus simples.

Si les algorithmes de calculs mathématiques passaient certes nickel, il n'en allait pas de même pour ceux qui sortaient des sentiers battus.

Utilisation de chaînes ou fonctions graphiques pour créer des interfaces, utilisation de listes ou pire listes de listes, projets de SNT ou NSI, ... l'utilisateur un peu plus intéressé que la moyenne par la programmation en Python de sa NumWorks était condamné à rencontrer très rapidement des erreurs de mémoire et des problèmes d'optimisation de l'utilisation du tas / heap de plus en plus insolubles... :'(

L'appel mem() avec le script mem.py suivant permet d'estimer la capacité du heap / tas, et retournait jusqu'à présent autour de 16K sur NumWorks.

Code: Tout sélectionner
def sizeenv():
  s=0
  import __main__
  for o in dir(__main__):
    try:s+=size(eval(o))
    except:pass
  return s
def size(o):
  s,t=0,type(o)
  if t==str:s=49+len(o)
  if str(t)=="<class 'function'>":s=136
  if t==int:
    s=24
    while o:
      s+=4
      o>>=30
  if t==list:
    s+=64
    for so in o:s+=8+size(so)
  return s
def mem(v=1,r=1):
  try:
    l=[]
    try:
      l+=[r and 793+sizeenv()]
      if v*r:print(" ",l[0])
      l+=[0]
      l+=[""]
      l[2]+="x"
      while 1:
        try:l[2]+=l[2][l[1]:]
        except:
          if l[1]<len(l[2])-1:l[1]=len(l[2])-1
          else:raise(Exception)
    except:
      if v:print("+",size(l))
      try:l[0]+=size(l)
      except:pass
      try:l[0]+=mem(v,0)
      except:pass
      return l[0]
  except:return 0

12385Et bien NumWorks n'a pas manqué le rendez-vous et s'est bien occupé du heap / tas pour cette version. :)

La capacité en est doublée, passant de 16K à 32K, enfin ! :bj:

Une véritable bouffée d'oxygène qui devrait booster ta créativité, te permettant de poursuivre tes projets bien plus loin avant de ressentir le moindre besoin d'optimisation ! :D

D'où le classement :
Aux examens :
  1. 1,032942 Mo :
    Casio Graph 90+E
  2. 1,022145 Mo :
    HP Prime (version alpha)
  3. 100,560 Ko :
    Casio Graph 35+E II
  4. 32,339 Ko
    NumWorks (firmware Omega)
  5. 31,624 Ko
    NumWorks
  6. 20,200 Ko
    TI-83 Premium CE Edition Python
  7. 16,259 Ko
    NumWorks
    (ancienne version)
Hors examens :
  1. 2,049276 Mo :
    TI-Nspire (application MicroPython)
  2. 1,032942 Mo :
    Casio Graph 90+E
  3. 1,022145 Mo :
    HP Prime (version alpha)
  4. 257,636 Ko :
    Casio Graph 35/75+E (application CasioPython)
  5. 100,560 Ko :
    Casio Graph 35+E II
  6. 31,899 Ko :
    Casio Graph 35+E II (application CasioPython)
  7. 32,339 Ko
    NumWorks (firmware Omega)
  8. 31,624 Ko
    NumWorks
  9. 22,605 Ko
    TI-83 Premium CE + TI-Python (firmware tiers)
  10. 20,200 Ko
    TI-83 Premium CE Edition Python
  11. 19,924 Ko
    TI-83 Premium CE + TI-Python
  12. 16,238 Ko
    NumWorks
    (ancienne version)




2) Python et module matplotlib

Go to top

Accroche-toi bien à ta chaise, le module Python de tracé dans un repère tant teasé par la concurrence depuis des mois sort enfin là où on ne l'attendait pas, c'est-à-dire sur ta NumWorks et même en exclusivité à ce jour ! :D

Il prend le nom de matplotlib.pyplot, avec les fonctions listées et documentées ci-dessous :


Réalisons en une fouille un peu plus approfondie à l'aide du script explmod.py, à la recherche d'éventuels éléments cachés :
Code: Tout sélectionner
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,16,  7, 9,11,0,0]
#max chars per line
#(error or CR if exceeded)
pcols =[53,99,509,32,32,0,0]

nlines=plines[platform]
ncols=pcols[platform]
curline=0

def mprint(*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
  print(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):
  s=str(obj)
  return s.startswith("<") and s.find(" ")>=0

def explmod(pitm,pitmsl=[],reset=True):
  global curline
  if(reset):
    curline=0
    pitmsl=[sstr(pitm)]
  hd="."*(len(pitmsl)-1)
  spath=".".join(pitmsl)
  c,c2=0,0
  spitm=str(pitm)
  for itms in sorted(dir(pitm)):
    c,c2=c+1,c2+1
    try:
      itm=eval(spath+"."+itms)
      mprint(hd+itms+"="+str(itm))
      if isExplorable(itm) and itm!=pitm:
        pitmsl2=pitmsl.copy()
        pitmsl2.append(itms)
        c2=c2+explmod(itm,pitmsl2,False)[1]
    except:
      mprint(hd+itms)
  if c>0 and reset:
    mprint(hd+"Total: "+str(c)+" 1st level item(s)")
    if c2>0 and c2!=c:
      mprint(hd+"       "+str(c2)+" item(s)")
  return [c,c2]

1238612387

Rien de bien extraordinaire ici, mais on découvre quand même que matplotlib.pyplot est lui-même un sous-module de matplotlib, ce que le nommage suggérait déjà.

Suite à cet ajout majeur, profitons-en pour voir où nous en sommes niveau richesse du Python sur calculatrices:

autorisés aux
examens français
inutilisables aux
examens français
NumWorks
Casio Graph
35+E II
90+E
TI-83PCE
Ed. Python
MicroPython
TI-Nspire
CasioPython
Casio Graph
35+E II
35+E/USB
75/85/95
TI-Python
builtins
array
collections
cmath
gc
math
matplotlib
matplotlib.pyplot
micropython
os
random
sys
time
turtle
uerrno
88-188
.
.
12
.
41
3
11
6
.
9
.
3
38
.
84-175
.
.
.
.
25
.
.
.
.
8
.
.
.
.
92-189
2-4
2
.
7
28
.
.
.
.
8
15-42
4
.
.
97-440
3-13
.
13-17
9-13
42-46
.
.
10-14
.
.
17-63
.
.
25-29
93-218
2-4
.
12
7
41
.
.
3
.
.
15-45
.
.
.
91-204
2-4
.
12
7
41
.
.
6
.
8
12
.
.
24
92-189
2-4
2
.
7
28
.
.
.
.
8
15-42
4
.
.
93-191
2-4
2
12
7
41
.
.
6
15
8
15-45
8-10
.
.
spécifiqueion:48
kandinsky:6
ti_graphics:?
ti_hub:?
ti_plotlib:?
ti_system:12
ti_rover:?
prime:3-7nsp:3-10board:22
storage:7-21
Modules11313989913
Eléments265-365117-208170-296219-642176-340203-318158-284238-384

En terme de diversité des modules, la NumWorks se fixe donc au 2ème rang, un excellent choix ! :bj:
Aux examens :
  1. 13 modules :
    TI-83 Premium CE Edition Python
  2. 11 modules :
    NumWorks
  3. 9 modules :
    HP Prime (version alpha)
  4. 3 modules :
    Casio Graph 35+E II
    Casio Graph 90+E
Hors examens :
  1. 13 modules :
    TI-Python (firmware tiers)
    TI-83 Premium CE Edition Python
  2. 11 modules :
    NumWorks
  3. 9 modules :
    HP Prime (version alpha)
    Casio Graph 35+E II
    Casio Graph 35+E/USB
    Casio Graph 75/85/95
    Casio fx-9750GII
    Casio fx-9860GII
    Casio fx-9860G

    (appli CasioPython)
  4. 8 modules :
    TI-Nspire
    (appli MicroPython)
    TI-Python
  5. 3 éléments :
    Casio Graph 35+E II
    Casio Graph 90+E

En terme de richesse des modules, la NumWorks varie également entre les 2ème et 3ème rangs, toujours de loin un des meilleurs choix ! :bj:
Aux examens :
  1. 219-642 éléments :
    HP Prime (version alpha)
  2. 265-365 éléments :
    NumWorks
  3. 170-296 éléments :
    TI-83 Premium CE Edition Python
  4. 117-208 éléments :
    Casio Graph 35+E II
    Casio Graph 90+E
Hors examens :
  1. 219-642 éléments :
    HP Prime (version alpha)
  2. 238-384 éléments :
    TI-Python (firmware tiers)
  3. 265-365 éléments :
    NumWorks
  4. 176-340 éléments :
    TI-Nspire
    (appli MicroPython)
  5. 203-318 éléments :
    Casio Graph 35+E II
    Casio Graph 35+E/USB
    Casio Graph 75/85/95
    Casio fx-9750GII
    Casio fx-9860GII
    Casio fx-9860G

    (appli CasioPython)
  6. 170-296 éléments :
    TI-83 Premium CE Edition Python
  7. 158-284 éléments :
    TI-Python
  8. 117-208 éléments :
    Casio Graph 35+E II
    Casio Graph 90+E




3) Mon premier script matplotlib

Go to top

L'utilisation de matplotlib.pyplot est extrêmement simple.

Avant de faire appel à matplotlib.pyplot, tes scripts doivent commencer par importer ce module d'une façon ou d'une autre, par exemple avec from matplotlib.pyplot import *.

Les tracés que tu demandes sont donc effectués dans un repère, sur un calque distinct de celui de la console Python. Sans instruction en ce sens, c'est le seul calque de la console qui restera affiché.
A chaque fois que tu souhaites rendre visible le calque du repère avec tes derniers tracés (par exemple avant la fin de ton script, ou avant que l'utilisateur ait à saisir quelque chose), il te faut faire appel à la fonction show().
Cette dernière affiche non seulement le calque du repère avec tes derniers tracés, mais te permet de le faire défiler avec les touches fléchées, et attend l'appui sur la touche d'annulation
pour rendre la main au script.

Tu peux si tu le souhaites activer/désactiver l'affichage d'une grille permettant de mieux lire les coordonnées du repère avec grid().

12392Tu peux également configurer toi-même les bornes de la fenêtre à l'aide de axis([xmin, xmax, ymin, ymax]).
Note toutefois que ce n'est absolument pas obligatoire. Par défaut la fenêtre s'adapte automatiquement pour que soient visibles l'ensemble de tes tracés comme illustré ci-contre par le code ci-dessous ! :bj:
Une petite marge t'est même ménagée. Toutefois, on peut noter ici que l'on n'obtient pas forcément un repère orthonormal (même unité en abscisse et en ordonnée).
Code: Tout sélectionner
from matplotlib.pyplot import *

def sumvec(u, v):
  return [u[0] + v[0], u[1] + v[1]]

def arrowvec(p0, v, s=''):
  arrow(p0[0], p0[1], v[0], v[1])
  text(p0[0] + v[0]/2, p0[1] + v[1]/2, s)

u = [1, 5]
v = [5, 1]
w = sumvec(u, v)
grid()
lp = [[-5, 0], [5, 0]]
arrowvec(lp[0], u, 'u')
print(sumvec(lp[0], u))
arrowvec(sumvec(lp[0], u), v, 'v')
arrowvec(lp[0], w, 'w')
arrowvec(lp[1], u, 'u')
arrowvec(lp[1], v, 'v')
arrowvec(sumvec(lp[1], u), v, 'v')
arrowvec(sumvec(lp[1], v), u, 'u')
arrowvec(lp[1], w, 'w')
text(0, 0, 'w=u+v')

show()




4) matplotlib et possibilités

Go to top

Comme la bibliothèque Python standard matplotlib, le matplotlib de NumWorks dispose d'une fonction bar(x, height) pour le tracé de diagrammes en barres.
La fonction hist(x, bins) sera quant à elle à privilégier pour les histogrammes au sens large (barres de largeurs différentes).

Toujours comme avec matplotlib, la fonction scatter(x, y) permet d'afficher une représentation en nuage de points.
plot(x, y) pour sa part reliera en prime les points, mais attention dans l'ordre avec lequel tu les fournis.

C'est déjà une réponse claire aux besoins du programme de Physique-Chimie de Seconde, même si un usage en Mathématiques n'est pas à exclure, dans la partie Statistiques ou encore pour étudier le fonctionnement d'un grapheur de fonctions et éviter les pièges des lectures graphiques. :bj:

Et puis ce n'est pas tout, arrow(x, y, dx, dy) permettra de tracer des flèches pour représenter des vecteurs, aussi bien en Physique-Chimie (vecteurs force, vecteur vitesse, ...) qu'en Mathématiques ! :bj:
Un petit lancer parabolique avec ça ? ;)
Code: Tout sélectionner
from matplotlib.pyplot import *
from math import *

g=9.81

def x(t,v_0,alpha):
  return v_0*cos(alpha)*t
def y(t,v_0,alpha,h_0):
  return -0.5*g*t**2+v_0*sin(alpha)*t+h_0

def vx(v_0,alpha):
  return v_0*cos(alpha)
def vy(t,v_0,alpha):
  return -g*t+v_0*sin(alpha)

def t_max(v_0,alpha,h_0):
  return (v_0*sin(alpha)+sqrt((v_0**2)*(sin(alpha)**2)+2*g*h_0))/g

def simulation(v_0=15,alpha=pi/4,h_0=2):
  tMax=t_max(v_0,alpha,h_0)
  accuracy=1/10**(floor(log10(tMax))-1)
  T_MAX=floor(tMax*accuracy)+1
  X=[x(t/accuracy,v_0,alpha) for t in range(T_MAX)]
  Y=[y(t/accuracy,v_0,alpha,h_0) for t in range(T_MAX)]
  VX=[vx(v_0,alpha) for t in range(T_MAX)]
  VY=[vy(t/accuracy,v_0,alpha) for t in range(T_MAX)]
  for i in range(T_MAX):
    arrow(X[i],Y[i],VX[i]/accuracy,VY[i]/accuracy)
  grid()
  show()




5) matplotlib et compatibilités

Go to top

Mais ce qu'il y a de fantastique avec la bibliothèque matplotlib.pyplot de NumWorks , c'est que les scripts créés sont compatibles aussi bien avec le Python des calculatrices Casio qu'avec les implémentations Python complètes pour ordinateur ! :bj:
Si si, pour la rentrée 2020 les mêmes scripts graphiques Python seront exécutables à la fois sur NumWorks et sur Casio ! :D

En réalité chez Casio, si nous avons bien compris/deviné il y a :
  • une bibliothèque graphique spécifique du constructeur, casioplot
  • un script préchargé matplotl.py (d'où la limitation historique à 8 caractères en passant), qui joue le rôle d'interface pour cette bibliothèque, une interface fournissant des fonctions d'appel aux spécifications compatibles avec matplotlib.pyplot
  • et de même un script préchargé turtle.py fournissant pour sa part des fonctions d'appel compatibles avec les spécifications de la bibliothèque turtle standard
Les scripts Casio seront donc compatibles à un détail près, la ligne import matplotl.pyplot étant à remplacer par import matplotl ou inversement.

On peut d'ailleurs même avoir du code compatible absolument identique avec la petite astuce d'importation suivante :
Code: Tout sélectionner
try:
  from matplotlib.pyplot import *
except:
  from matplotl import *


Traitons quelques exemples à la fois sur NumWorks, Casio et ordinateur pour voir jusqu'où va cette compatibilité.
Ne disposant pas encore de la prochaine mise à jour de Casio rajoutant ces fonctionnalités, nous reprendrons des exemples déjà fournis et illustrés par ce constructeur.

Un petit diagramme en barres avec fenêtre automatique :
NumWorksCasioordi
12389
Code: Tout sélectionner
try:
  from matplotlib.pyplot import *
except:
  from matplotl import *

x = [119.1, 119.3, 119.5, 119.6, 119.9, 120.0, 120.1, 120.3, 120.4]
y = [1, 3, 4, 3, 1, 3, 1, 3, 1]

bar(x, y, 0.08)
show()

Des couleurs différentes, des barres qui sont parfois remplies parfois non, mais cela n'en est pas moins parfaitement fonctionnel sans le moindre changement autre que l'importation, c'est fantastique ! :bj:

Un petit nuage de points en précisant la fenêtre et avec un titre :
NumWorksCasioordi
12390
Code: Tout sélectionner
try:
  from matplotlib.pyplot import *
except:
  from matplotl import *

x = [100, 110, 120, 130, 140, 150, 160]
y = [105, 95, 75, 68, 53, 46, 31]

scatter(x, y)
axis([80, 170, 10, 130])
text(110, 125, "Nombre d'acheteurs vs prix de vente")
show()

Casio utilisant ici pour le titre des coordonnées absolues prévues pour son écran, forcément ça passe moins bien sur l'écran NumWorks de géométrie différente et il faut ici faire défiler avec les flèches.

Un diagramme en ligne brisée pour approcher une fonction :

NumWorksCasioordi
12395
Code: Tout sélectionner
try:
  from matplotlib.pyplot import *
except:
  from matplotl import *

def fonction():
    def f(x):
        return x**3-6*x**2+9*x+1
    start = -0.5
    end = 4.5
    steps = 0.1
    x = [start+i*steps for i in range(int((end-start)/steps)+1)]
    y = [f(j) for j in x]
    plot(x, y)
    show()

On remarque mieux ici que NumWorks utilise une graduation sur les axes, alors que les autres utilisent une graduation en bordure de fenêtre.

Et enfin quelques flèches/vecteurs :
NumWorksCasioordi
12391
Code: Tout sélectionner
try:
  from matplotlib.pyplot import *
except:
  from matplotl import *

arrow(0.20, 0.54, 0, -0.15)
arrow(0.30, 0.46, 0, -0.15)
arrow(0.40, 0.59, 0, -0.15)
show()

Personne ne semble tracer les pointes de flèches de la même façon, mais au moins ça marche.




Conclusion

Go to top

Grosse surprise donc de la part de NumWorks que ce soit pour le tas / heap Python de 32K ou pour la bibliothèque de tracés dans un repère matplotlib, nous ne nous y attendions pas.

Bravo pour avoir su écouter les retours et fournir un tas / heap qui devrait permettre d'aborder sereinement certains des projets de SNT / NSI, plus ambitieux que les petits algos de calcul traités en Mathématiques. :bj:
C'est en tous cas un très bon signal envoyé aux enseignants-prescripteurs concernés par ces matières pour la rentrée 2020. ;)

Félicitations pour avoir réussi à incorporer une bibliothèque de tracés dans un repère fonctionnelle, et ce dans un temps apparemment plus court que la concurrence. :bj:
Et surtout, merci d'avoir opté dans ce cadre pour un standard déjà existant, matplotlib.pyplot, en conformité avec ce qui est mis en avant auprès des futurs enseignants de NSI à l'oral de leur concours, et donc pour la compatibilité aussi bien avec Casio qu'avec les implémentations Python complètes ! :D
L'enseignant pourra ainsi gérer des classes disposant de modèles de marques différentes, et librement faire des aller-retours entre calculatrices et ordinateurs ! :D

Et puis petite surprise, visiblement NumWorks tient compte en un temps record de toutes les critiques, même des plus insignifiantes. :p

Malgré les ajouts importants le nouveau firmware 13.2.0 est sensiblement moins gros que le 13.1.0.

Il semble y avoir donc eu quelques optimisations dans ce court laps de temps, et l'ancien modèle NumWorks N0100 malgré sa Flash de seulement 1 Mio devrait donc pouvoir continuer à bénéficier de l'ensemble des nouveautés pendant quelques mises à jour encore. :)

Liens :
Lien vers le sujet sur le forum: NumWorks Python 13.2 : matplotlib.pyplot + tas/heap 32K ! (Commentaires: 9)

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1431 utilisateurs:
>1395 invités
>31 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)