π
<-
Chat plein-écran
[^]

News 2019

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

News 2017
Août (4)

Firmware NumWorks 10.0.0 bêta; module turtle Python !

Nouveau messagede critor » 03 Fév 2019, 15:02

NumWorks
travaille actuellement sur la prochaine mise à jour
10.0.0
de sa calculatrice. Celle-ci est déjà disponible en version bêta, à condition de la compiler à partir du code source officiel.

Mais cette fois-ci, une version compilée de la
10.0.0 bêta
vient d'être diffusée par dans le contexte de son Python amélioré pour les jeux. Profitons-en donc pour découvrir les nouveautés à venir. ;)

10238D'une part, nous notons des améliorations apportées au moteur de calcul.

Il est désormais capable de renvoyer des résultats exacts lorsque l'on passe un argument complexe aux fonctions de module et d'argument ! :bj:

D'autre part, pour la rentrée 2019, selon le nouveau programme de
Physique-Chimie
de la
Seconde Générale et Technologique
, il faudra programmer des tracés en langage
Python
:
  • mouvement plan d'un objet ponctuel
  • nuage de points
  • vecteurs vitesse et variations

La
NumWorks
est certes le seul modèle à ce jour à disposer d'une implémentation
Python
constructeur
(et donc disponible en mode examen)
permettant de dessiner sur l'écran, à l'aide du module
kandinsky
.

Mais le dernier point évoqué, à savoir représenter des vecteurs, c'est-à-dire une direction, un sens et peut-être même la flèche qu'il y a au bout, n'en reste pas moins un problème trigonométrique bien conséquent, qui ne nous semble pas évident à faire résoudre à un niveau Seconde.
A moins bien sûr de distribuer des fonctions Python précodées par l'enseignant, ce qui n'aura alors pas grand intérêt...

10224Une fois de plus, le constructeur
NumWorks
nous prouve sa grande réactivité en n'attendant pas le dernier moment pour apporter une solution, l'inclusion dans son application
Python
du module
turtle
développé par en novembre 2018.

Tracer maintenant un vecteur en coordonnées relatives et non absolues, même avec la flèche au bout, n'a plus du tout la même complexité ! :bj:
C'est doublement une excellente solution à notre problème, puisque c'est également l'occasion de réinvestir les acquis de collège avec le codage de tracés en langage
Scratch
, mais dans le cadre maintenant d'un langage textuel conformément aux programmes du lycée. :bj:

Y sont disponibles des équivalents pour l'ensemble des fonctions
Scratch
du collège :
10237102361023510234
10233102321023110230


10229De quoi tracer facilement des vecteurs ou même encore plus complexe comme des fleurs ! ;)
Code: Tout sélectionner
from turtle import *
import kandinsky

def forbackward(d):
  forward(d)
  backward(d)
 
def pf(d=1,gd=-1,nervure=False):
  n=9
  pos=position()
  for j in range(2):
    for k in range(n):
      forward(d)
      right(gd*90/n)
    right(gd*90)
  if nervure:
    right(gd*40)
    forbackward(5*d)
    right(-gd*40)

def fleur(npetales=8,nfeuilles=2,ltige=160,kfeuille=1,c=kandinsky.color(255,255,0)):
  d=ltige/(nfeuilles+1)
  color(0,191,0)
  for j in range(nfeuilles):
    forward(d)
    pf(kfeuille,2*(j%2)-1,True)
  forward(d)
  color((c>>11)<<3,((c>>5)%64)<<2,(c%32)<<3)
  for j in range(npetales):
    pf(kfeuille,-1)
    left(360/npetales)

#example
from math import *

def hsv2color(h,s=1,v=1):
  c=v*s
  x=c*(1-abs((h%120)/60-1))
  m=v-c
  k=int(h/60)
  r=255*(m+x*(k==1 or k==4)+c*(k==5 or k==0))
  g=255*(m+c*(k==1 or k==2)+x*(k==3 or k==0))
  b=255*(m+x*(k==2 or k==5)+c*(k==3 or k==4))
  return kandinsky.color(round(r),round(g),round(b))

def horiz(y,col):
  for x in range(320):
    kandinsky.set_pixel(x,y,col)

for j in range(112):
  horiz(111-j,hsv2color(210,0+1*j/111,1))
  horiz(111+j,hsv2color(30,.1+.9*j/111,.7))

sw=320
sh=222
ymax=sh/2
ymin=ymax-sh+1
xmin=-sw/2
xmax=xmin+sw-1
penup()
goto(0,ymin)
setheading(90)
pendown()
fleur(12,9,ymax-ymin+1-26,3,kandinsky.color(255,255,0))

Creusons un petit peu la chose, et explorons ce que renferme ce module à l'aide du script suivant :
Code: Tout sélectionner
#platforms:
#0: MicroPython / TI-Nspire
#1: MicroPython / NumWorks
#2: MicroPython / G90+E
#3: MicroPython / G35+E/USB / G75/85/95
#4: CircuitPython / TI-Python / 83PCE
#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=='TI-Python Adapter':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]
#max chars per line
#(error or new line 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("<module '") or s.startswith("<class '")

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

10225102261022710228

38
éléments donc, soit de quoi chambouler notre classement de la richesse des implémentations de
pythonnettes
dès la sortie de cette mise à jour ! :bj:
NumWorks
Casio
Graph 90+E
module externe
TI-Python
pour
TI-83 Premium CE
builtins218188175204190
array444
collections2
cmath121212
gc777
math4141254128
random8888
sys151215
time34
turtle38
spécifique
10
(nsp)
5
(kandinsky)
4
(handshake)
Modules
7
7
3
7
9
Éléments
307
295
208
288
262


D'où le classement suivant :
  1. avec
    7
    modules et
    307
    entrées
  2. NumWorks
    avec
    7
    modules et
    295
    entrées
  3. avec
    7
    modules et
    288
    entrées
  4. module externe
    TI-Python
    pour
    TI-83 Premium CE
    avec
    9
    modules et
    262
    entrées
  5. Casio Graph 90+E
    avec
    3
    modules et
    208
    entrées

Attention le firmware
10.0.0
téléchargeable ci-dessous est donc en version bêta non finale. Des problèmes peuvent apparaître même en dehors des points évoqués; il t'est déconseillé de l'installer si tu as de prochains rendez-vous importants
(DS, examens, concours...)
. :#non#:

Téléchargement
:
firmware
10.0.0 bêta
(installable facilement via webdfu_numworks )
Lien vers le sujet sur le forum: Firmware NumWorks 10.0.0 bêta; module turtle Python ! (Commentaires: 2)

Firmware 10.0.0 tiers orienté jeux Python (get_keys)

Nouveau messagede critor » 02 Fév 2019, 21:31

avait déjà travaillé à une modification du
firmware
NumWorks
afin d'étendre les possibilités graphiques du module
Python kandinsky
, lui rajoutant les fonctions :
  • draw_line(x1,y1,x2,y2,color) pour le tracer de lignes
  • fill_rect(x,y,w,h,color) pour le tracer de rectangles pleins
Dans les deux cas ces fonctions n'étaient pas connectées à la fonction Python setpixel(x,y,color) mais à du code C permettant donc des tracés optimaux, notamment pour le rafraichissement de
sprites
dans des jeux.

Aujourd'hui poursuit son chemin dans le but de nous permettre enfin de coder en
Python
des jeux graphiques jouables, en nous diffusant une nouvelle version de son
firmware
amélioré.

Voyons donc ensemble les dernières nouveautés


9895A première vue, bizarrement,pas de nouveauté
kandinsky
.

L'on note toujours comme seuls et uniques ajouts :
  • draw_line(x1,y1,x2,y2,color)
  • fill_rect(x,y,w,h,color)

Mais histoire d'être sûr, explorons le module
kandinsky
à l'aide du script suivant :
Code: Tout sélectionner
#platforms:
#0: MicroPython / TI-Nspire
#1: MicroPython / NumWorks
#2: MicroPython / G90+E
#3: MicroPython / G35+E/USB / G75/85/95
#4: CircuitPython / TI-Python / 83PCE
#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=='TI-Python Adapter':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]
#max chars per line
#(error or new line 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("<module '") or s.startswith("<class '")

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

Et bingo, oh que oui il y a des choses, simplement elles ne sont pas listées dans la boîte à outils.

10220Déjà après les sorties graphiques, Jean-Baptise s'attaque maintenant aux entrées clavier en définissant des codes pour l'ensemble des touches du clavier et rajoutant la fonction get_keys() pour connaître la ou les touches pressées ! :bj:
10216102171021810219


10221Mais ce n'est pas tout, nous avons également de nouvelles fonctions de sorties graphiques :
  • get_pixels(x,y,width,data)
  • set_pixels(x,y,width,data)
  • wait_vblank()

10222
Alors, mission remplie ou pas avec tout ça ? Peut-on enfin coder un
Mario
pour la calculatrice
NumWorks
?

Nous te proposons d'aller juger par toi-même en testant la fluidité du jeu
PONG
codé par Jean-Baptiste en exploitant ces nouvelles fonctionnalités, premier jeu
Python
contrôlable au clavier ! :bj:

Attention au fait que le firmware diffusé par Jean-Baptiste dans ce contexte est basé sur l'état actuel du code source public de la calculatrice
NumWorks
, et que celui-ci est actuellement en phase bêta de la future version
10.0.0
. Des problèmes peuvent donc apparaître même en dehors des points évoqués; il t'est déconseillé de l'installer si tu as de prochains rendez-vous importants
(DS, examens, concours...)
. :#non#:


Téléchargement
:
firmware
1.10.0 bêta
précompilé avec ces améliorations
(installable facilement via webdfu_numworks )

Code
:
https://github.com/numworks/epsilon/pull/746
Source
:
viewtopic.php?t=22284&p=239388#p239388
Lien vers le sujet sur le forum: Firmware 10.0.0 tiers orienté jeux Python (get_keys) (Commentaires: 4)

Maj NumWorks 9.2.0: partage+libre nommage vars + module time

Nouveau messagede critor » 09 Jan 2019, 17:13

La nouvelle version
9.2.0
pour ta calculatrice
NumWorks
est maintenant disponible.

Il y a donc un changement de numérotation, puisque nous sommes passés de
1.8.1
à
1.9.0
et
1.9.1
en bêta, et puis maintenant à
9.2.0
. On pourrait donc qualifier cette version de
1.9.2.0
, mais il va falloir se faire à cette nouvelle numérotation.

Commençons déjà par les améliorations transversales puisque cette version
(1.)9.2.0
introduit de grands changements internes.

Partage des variables entre applications
:

Mise à part l’application
Python
qui pour l’instant reste dans son coin comme chez la concurrence ainsi que l’application
Paramètres
non concernée, toutes les autres applications deviennent enfin capables de partager des données autrement que par une opération de copier/coller. :bj:
On accède à ces données via la touche
var
qui listera maintenant, à chaque fois avec un aperçu de leurs valeurs :
  • les expressions
    (variables numériques et matricielles)
    mais désormais seulement celles définies
    (par ordre d’affectation)
    et non tout l’alphabet comme avant
  • les fonctions et ça c’est nouveau
Oui grâce à cela il devient enfin possible d’utiliser dans l’application
Calculs
des fonctions définies dans l’application
Fonctions
, et même d’y définir directement des fonctions via une simple opération d'affectation ! :bj:

La solution mathématique
NumWorks
franchit ainsi un cap historique. On ne peut plus parler d'un simple agrégat d'applications comme chacun peut s'en faire sur son smartphone; il s'agit désormais d'une suite mathématique intégrée ! :bj:


Libre nommage des variables
:

Mais ce n’est pas tout… les noms de variables et de fonctions peuvent désormais être choisis librement sur 7 caractères au maximum, peu importe qu’il s’agisse de nombres, matrices ou fonctions ! :bj:
Ils acceptent :
  • les lettres majuscules A à Z
  • les lettres minuscules a à z
  • les chiffres, mais uniquement après une lettre
  • le caractère tiret-bas
    (_)
    , mais uniquement après une lettre

De formidables possibilités d’avoir des noms de fonctions beaucoup plus intelligibles et même collant davantage aux notations imposées par les énoncés ! :bj:


Rajoutons que selon le même esprit, les fonctions de dérivation, intégration, somme et produit acceptent désormais un argument supplémentaire pour préciser librement le choix de la variable.


Maintenant voici ce qui concerne plus spécifiquement chacune des applications, mais non moins important pour autant :
ImageImageImageImage


Application Calculs
:
Go to top

Pour alléger/clarifier l’affichage, les
undef
ne sont plus affichés inutilement dans les résultats. Notamment lorsqu’un résultat exact/littéral a été trouvé.


Application Fonctions
:
Go to top

Dans le cas des définitions effectuées dans l’application
Fonctions
, il suffit maintenant de faire
OK
après avoir sélectionné le nom d’une fonction pour se voir proposer la possibilité de la renommer. :bj:

Plus de limite, l'on peut désormais définir plus de 4 fonctions depuis cette application ! :)

Il devient même enfin possible de définir une fonction en fonction d’une autre ! :bj:


Application Python
:
Go to top

Plusieurs fonctions du module
builtins
étaient parfaitement utilisables mais non listées au catalogue; elles devaient donc être saisies à la main. Les fonctions eval() et float() sont maintenant rajoutées au catalogue. :)

Plus de limite ici non plus, on peut maintenant créer plus de 8 scripts depuis la calculatrice. :)

Le
Python
bénéficie lui aussi d’une énorme nouveauté, l’ajout du module
time
bien que non listé au catalogue, et qu’il faudra donc importer à la main en tapant import time. Une exclusivité à ce jour parmi les implémentations de
Python
sur calculatrices ! :bj:

En l’absence donc de catalogue, on peut par exemple l’explorer avec notre script
explmod
.

Outre le nom du module et donc les sous-fonctions de chaîne qui en découlent, on peut noter les deux fonctions time.monotonic() et time.sleep().

Enfin sur le simulateur en ligne, les dessins via le module
kandinsky
sont désormais affichés progressivement au fur et à mesure de leur réalisation, et non brutalement en fin d’exécution.
De quoi bien mieux comprendre ce qui se passe et éventuellement corriger, surtout dans le contexte du nouveau programme de Physique-Chimie de Seconde à la rentrée 2019. :bj:


Application Régressions
:
Go to top

Dans l’onglet
Stats
présentant les différents paramètres de notre ou nos séries statistiques à deux variables, l’on note la réservation d’un espace bien plus grand pour les colonnes associées à chaque variable.




Par rapport à la dernière version sortie
(1.8.1)
, le microgiciel de la calculatrice a pris dans les 33Kio, ce qui est relativement peu par rapport à l'importance des nouveautés apportées. Il occupe désormais
688,7Kio
soit 67,2% de la Flash de
1024Kio
de la calculatrice.



Liens
:
Lien vers le sujet sur le forum: Maj NumWorks 9.2.0: partage+libre nommage vars + module time (Commentaires: 32)

Vote signe de multiplication prochaines versions NumWorks

Nouveau messagede critor » 13 Déc 2018, 22:02

L'ASCII est un standard informatique de codage des caractères. Selon cette norme un caractère est codé sur 7 bits, ce qui autorise 27=128 caractères différents. La version que nous utilisons encore aujourd'hui date de 1967.

Or comme tu peux aisément t'en rendre compte à l'aide d'un simple script
Python
, le signe de multiplication (×) n'en fait pas partie.
Code: Tout sélectionner
def dig2hex(n):
  return n<10 and str(n) or chr(ord("A")+n-10)

def ascii(n=128):
  ncol,nlgn,slgn=16,n/16,'  |'
  for col in range(ncol):
    slgn+=dig2hex(col)
  print(slgn+'\n--+'+'-'*ncol)
  for lgn in range(nlgn):
    slgn=dig2hex(lgn)+'_|'
    for col in range(ncol):
      n=lgn*16+col
      car=chr(n)
      slgn+=(n==0 or car=='\t' or car=='\n') and " " or chr(n)
    print(slgn)


Pour représenter une multiplication aux débuts de l'informatique ont donc été popularisés l'usage de la lettre x
(mathématiquement faux, et impossible à conserver lorsque l'on passe à du calcul symbolique)
et du symbole étoile (*).

Les constructeurs américains de calculatrices graphiques
Texas Instruments
et
Hewlett Packard
ont fait dès le siècle dernier le choix de s'en tenir à la norme, et voilà pourquoi aujourd'hui quand tu tapes
×
ta machine te sort encore un * possiblement déroutant et mathématiquement incorrect.
Précisons que sur le haut de gamme
TI-Nspire
Texas Instruments
a enfin changé d'idée, en utilisant pour la multiplication non pas l'étoile mais le point médian (·).


Mais le japonais
Casio
a fait dès 1985 avec la première calculatrice graphique, la
fx-7000G
, le choix de ne pas suivre aveuglément la norme mais de l'adapter au contexte scolaire ciblé, et donc d'inclure le signe de multiplication dans la table des caractères de la machine. Choix éclairé dont tu bénéficies encore aujourd'hui sur ta
Graph 35+E
ou
Graph 90+E
. :bj:
C'est également le cas pour la saisie sur le haut de gamme
Classpad/fx-CP400
, à la seule différence près que dans l'affichage des résultats c'est le point médian qui est utilisé pour représenter un produit. En effet comme l'utilisation de multiplications dans un résultat relève du calcul symbolique, un mélange de signes de multiplication et de lettres x serait visuellement très gênant.


Qu'en est-il du français
NumWorks
? Jusqu'à présent c'était le point médian qui était utilisé, aussi bien pour la saisie que pour les résultats.
Mais
NumWorks
se propose pour une prochaine version revoir l'affichage des résultats.
Déjà, la valeur inutile
undef
lorsque l'on utilise des variables non affectées sera omise. :)
Mais le constructeur va plus loin en souhaitant lui aussi traiter différemment les affichages de la saisie en cours et des résultats.
Pour les résultats symboliques utilisant une multiplication, le signe sera tout simplement omis.
Et pour la saisie, comme il l'avait déjà fait pour le nouveau clavier de rentrée 2018, le constructeur organise un vote pour te laisser une fois de plus le choix de ce qui sera affiché lorsque tu taperas
×
: :bj:
  • conserver le point médian (·) comme sur
    TI-Nspire
  • passer au signe de multiplication (×) comme sur
    Casio
  • passer au caractère étoile (*) comme sur
    TI-82/83/84



Tu peux dès maintenant voter et motiver ton choix après inscription/connexion sur le lien ci-dessous.
Penses-y bien, ce choix super important
aura des conséquences
... ;)



Lien
:
https://workshop.numworks.com/surveys/s ... iplication

Crédits images
:
Casio fx-7000G
Lien vers le sujet sur le forum: Vote signe de multiplication prochaines versions NumWorks (Commentaires: 32)

Mise à jour NumWorks 1.8.1 : 16K stockage scripts Python !

Nouveau messagede critor » 21 Nov 2018, 18:16

10033
La nouvelle version
1.8.1
pour ta calculatrice
NumWorks
est maintenant disponible. Découvrons ensemble les améliorations :
ImageImageImage


Application Python
:
Go to top

Une première nouveauté concerne ce qui avait déjà été annoncé dans le contexte de la diffusion de la version
bêta
1.8.0
.
Un défaut de la calculatrice
NumWorks
était son espace de stockage ridicule pour les scripts
Python
,
2.946Ko
, extensible jusqu'à
4,094Ko
en supprimant les scripts d'exemple préchargés.

Déjà insuffisant rien que pour faire tenir simultanément en mémoire les deux scripts
Python
de notre concours de rentrée.


Avec la version
1.8.1
tu n’es plus à l'étroit, l'espace de stockage passe à
15.234Ko
extensible jusqu'à
16.382Ko
; un quadruplement donnant quelque chose d’enfin comparable à la concurrence d'entrée de gamme ! :bj:

Notons que l’espace disponible sur la calculatrice se consulte à ce jour exclusivement en ligne sur https://workshop.numworks.com/python/calculator.

Autre chose de très bien sur
NumWorks
, c’est que lors de l’exécution d’un script
Python
la liste
Fonctions et variables
accessible avec la touche
var
était automatiquement préremplie avec l’ensemble des fonctions et variables globales définies par le script.

Cela pouvait toutefois être embêtant avec certains scripts, donnant une liste surchargée avec plusieurs entrées peu utiles.

Désormais, plutôt que de s’embêter avec des artifices alphabétiques peu confortables pour les renvoyer en fin de liste, il suffira tout simplement au développeur de préfixer les noms des variables globales dont il juge l’ajout à la liste peu utile avec le caractère tiret-bas
( _ )
. :bj:
Code: Tout sélectionner
#public global variables
n=3
platform=”numworks”
#hidden global variables
_key=3.24
_implementation=”micropython”


Application Calculs
:
Go to top

Le moteur de calcul a été entièrement réécrit avec en interne une meilleur gestion des éventuelles erreurs de mémoire, et en ce qui nous concerne pour la partie visible de nouvelles possibilités.

Déjà, comme sur les modèles formels haut de gamme il y a désormais la possibilité de faire des calculs avec l’infini notamment dans le contexte d’un travail sur les limites, le nombre infini étant à écrire inf. :bj:

Mais ce n’est pas tout, les fonctions logarithmes, trigonométriques inverses et hyperboliques inverses sont maintenant étendues aux nombres complexes ! :bj:

La simplification des logarithmes pouvait être problématique lorsque le paramètre était un nombre puissance de la base.
$mathjax$log_b(a)$mathjax$
avec
$mathjax$a=b^k$mathjax$
k
est un entier positif. Dans ce cas la
‘simplification’
effectuée par la machine consistait à factoriser le nombre
a
sans tenir compte de la base du logarithme, ce qui pouvait conduire à des formes mal simplifiées, et dont l’écriture décimale pourtant exacte était de plus adjointe avec un symbole environ. Dorénavant, la simplification tiendra compte de la base. :)

Autre chose de remarquable sur la
NumWorks
dans le cadre des sciences expérimentales
(Physique-Chimie notamment)
, c’est la possibilité de choisir un format de résultats selon la règle des chiffres significatifs. Mais la règle en question n’était pas toujours respectée, notamment pour les nombres dont l’écriture commençait par un ou plusieurs chiffres zéro, zéro étant dans ce cas comptabilisé à tort comme un chiffre significatif. Cette erreur est maintenant corrigée. :)

Un autre avantage exceptionnel sur la
NumWorks
c’est, lorsque approprié, la présentation des résultats sous deux formes, exacte et décimale, liées selon le cas par un symbole de relation adéquat, égale ou environ. Un problème arrivait par contre au changement d’applications, où toutes les relations dans l’historique de calcul étaient alors réaffichées systématiquement avec le symbole environ. Ce problème est dès à présent corrigé. :)


Application Paramètres
:
Go to top

Enfin dans l’application
Paramètres
les choix offerts pour la personnalisation des formats d’angles, nombres réels, saisies et nombres complexes sont à présent illustrés et de façon intuitive. :)


Notons également comme déjà remarqué dans la bêta qu'il s'agit de la toute première mise à jour firmware où l'on ne fonce plus dans le mur des
1024Kio
de la mémoire
Flash
. Des optimisations ont permis d'en diminuer nettement la taille, libérant ainsi pas moins de
89Ko
d'espace en mémoire
Flash
pour coder de futures améliorations - peut-être un module tortue pour
Python
? ;)


Liens
:
Lien vers le sujet sur le forum: Mise à jour NumWorks 1.8.1 : 16K stockage scripts Python ! (Commentaires: 24)

Firmware NumWorks 1.8.0 bêta; 16K de stockage !

Nouveau messagede critor » 10 Nov 2018, 17:09

NumWorks
travaille actuellement sur la prochaine mise à jour
1.8.0
de sa calculatrice. Celle-ci est déjà disponible en version bêta, à condition de la compiler à partir du code source officiel.

Mais cette fois-ci, une version compilée de la
1.8.0 bêta
vient d'être diffusée par dans le contexte de son module
Python turtle
. Profitons-en donc pour découvrir les nouveautés à venir. ;)

La mise à jour de la calculatrice
NumWorks
était jusqu'à présent assez contraignante :
  • il fallait mettre la calculatrice en mode mise à jour à l'aide du bouton reset
    (et donc avoir un critérium sous la main)
  • le processus prenait pas mal de temps, par exemple
    1min37
    pour la version
    1.7.1
    dont
    15.03s
    pour l'effacement de la mémoire
    Flash
  • et en plus si l'on changeait d'onglet dans le navigateur le processus était suspendu
Une plaie pour les enseignants souhaitant mettre à jour les machines de leurs élèves...

Et bien fini les ennuis,
NumWorks
déploie un nouveau protocole de mise à jour énormément plus rapide. L'installation de la version
1.7.1
ne met plus que
14.4s
, dont
6.86s
pour l'effacement de la mémoire
Flash
! :bj:

Un autre défaut de la calculatrice
NumWorks
, c'était son espace de stockage ridicule pour les scripts
Python
,
2.946Ko
, extensible jusqu'à
4,094Ko
en supprimant les scripts d'exemple préchargés.

Déjà insuffisant rien que pour faire tenir simultanément en mémoire les deux scripts
Python
de notre concours de rentrée.


Avec la version
1.8.0
tu ne seras plus à l'étroit, l'espace de stockage passe à
15.234Ko
extensible jusqu'à
16.382Ko
; enfin quelque chose de comparable à la concurrence d'entrée de gamme ! :bj:

Notons également qu'il s'agit de la toute première version firmware où l'on ne fonce plus dans le mur des
1024Kio
de la mémoire
Flash
. Des optimisations ont enfin permis d'en diminuer la taille, libérant ainsi pas moins de
82Kio
d'espace en mémoire
Flash
pour coder de futures améliorations ! :bj:

Attention le firmware
1.8.0
téléchargeable ci-dessous est donc en version bêta non finale. Des problèmes peuvent apparaître même en dehors des points évoqués; il t'est déconseillé de l'installer si tu as de prochains rendez-vous importants
(DS, examens, concours...)
. :#non#:


Téléchargement
:
firmware
1.8.0 bêta
(installable facilement via web-dfu-util )
Lien vers le sujet sur le forum: Firmware NumWorks 1.8.0 bêta; 16K de stockage ! (Commentaires: 7)

Firmware 1.8 tiers améliorant Python (turtle/time/kandinsky)

Nouveau messagede critor » 10 Nov 2018, 14:39

Pour la rentrée 2019, selon le nouveau programme de
Physique-Chimie
de la
Seconde Générale et Technologique
, il faudra programmer des tracés en langage
Python
:
  • mouvement plan d'un objet ponctuel
  • nuage de points
  • vecteurs vitesse et variations

9889Afin de mieux répondre à la problématique du tracé de vecteurs dans la continuité des acquis de collège,
a sorti un module
Python turtle
pour ta calculatrice.

diffuse aujourd'hui une deuxième version de son module
Python turtle
pour calculatrice
NumWorks
.

Dans la première version, le module avait été implémenté en
C++
. Cette fois-ci, Jean-Baptise implémente la tortue directement en
Python
.

98949893Amélioration fort appréciable, cette nouvelle version permet à la différence d'interrompre à tout moment le tracé avec la touche d'annulation.
Finis les resets te faisant perdre le contenu mémoire face à une boucle qui ne se terminait pas !
:bj:

Mais ce qu'il y a de bien avec cette nouvelle version, c'est que les améliorations ne se limitent pas à la sphère
turtle
. ;)
Cette dernière fonctionnalité justement a nécessité l'inclusion du module
time
par , et que tu es donc parfaitement libre de réutiliser pour autre chose ! :bj:

9895Enfin, notons également une amélioration du module graphique
kandinsky
, avec l'ajout des fonctions draw_line(x1,y1,x2,y2,color) et fill_rect(x,y,w,h,color) pour faciliter grandement les tracés de lignes surtout dans les cas non horizontaux/verticaux et tracés de rectangles pleins sans avoir à se taper de boucles à chaque fois ! :bj:

Attention au fait que le firmware diffusé par Jean-Baptiste dans ce contexte est basé sur l'état actuel du code source public de la calculatrice
NumWorks
, et que celui-ci est actuellement en phase bêta de la future version
1.8.0
. Des problèmes peuvent donc apparaître même en dehors des points évoqués; il t'est déconseillé de l'installer si tu as de prochains rendez-vous importants
(DS, examens, concours...)
. :#non#:


Téléchargement
:
firmware
1.8.0 bêta
précompilé avec ces améliorations
(installable facilement via web-dfu-util )
Lien vers le sujet sur le forum: Firmware 1.8 tiers améliorant Python (turtle/time/kandinsky) (Commentaires: 17)

Le module Python Turtle porté pour ta NumWorks !

Nouveau messagede critor » 05 Nov 2018, 20:30

Pour la rentrée 2019, selon le nouveau programme de
Physique-Chimie
de la
Seconde Générale et Technologique
, il faudra programmer des tracés en langage
Python
:
  • mouvement plan d'un objet ponctuel
  • nuage de points
  • vecteurs vitesse et variations
C'est bien, puisque ta
NumWorks
est la seule calculatrice à permettre tout ça, et depuis bien longtemps grâce à son module graphique
kandinsky
. :bj:

Mais le tracé de la flèche d'un vecteur avec des instructions graphiques absolues est algorithmiquement tout sauf trivial à un niveau Seconde.

Une solution peut être l'utilisation d'un module
Python
offrant des instructions graphiques relatives, que les élèves ont été habitués à utiliser pendant toute leur scolarité au collège avec le langage
Scratch
, comme par exemple le module
turtle
.

Et bien ça tombe bien, puisque vient tout juste de porter le module
turtle
sur ta calculatrice
NumWorks
pendant ces vacances ! :bj:

Un portage d'excellente facture puisque Jean-Baptiste est même aller jusqu'à l'intégrer à la perfection, en listant et décrivant correctement le module et ses nouvelles fonctions apportées dans la boîte à outils ! :)

La liste très complète de fonctions permet même de contrôler la taille et la couleur du stylo de la tortues, pour de très larges possibilités de tracés : :bj:
Code: Tout sélectionner
from turtle import *
def spiral(N_iteration):
  N_iteration *= 25
  for i in range(N_iteration):
# Change pen color
    gray=255-(i*255/N_iteration)
    pencolor(int(gray),int(gray*0.75),int(gray*0.25))
# Draw a segment of the spiral
    forward(i*0.1)
    left(10)

9889Il est parfaitement possible de rajouter ce module à une vraie calculatrice : :)
Code: Tout sélectionner
from kandinsky import *
from turtle import *
pensize(1)
def starx(a,s,d):
  h0=0
  h=h0
  a0=a
  while a==a0 or (h-h0)%360 or (a-a0)%360:
    forward(d)
    left(a)
    h+=a
    a+=s

Toutefois, cela implique à ce jour la programmation d'un
firmware
non officiel, ce qui bien que relativement simple n'est absolument pas une solution pérenne. :#non#:
Espérons donc que ce module ou un équivalent sera bientôt intégré au
firmware
officiel.


Téléchargement
:
firmware
1.8.0 bêta
précompilé avec ce module
(installable facilement via https://devanlai.github.io/webdfu/dfu-util/ )


Liens
:
soumission au firmware officiel avec code source

Source
:
viewtopic.php?f=102&t=21922
Lien vers le sujet sur le forum: Le module Python Turtle porté pour ta NumWorks ! (Commentaires: 19)

Campagne de dons
Pour nous aider à financer nos déplacements sur les salons/congrès qui vous donnent du contenu exclusif

Vous aurez droit aux avantages VIP et des goodies !
4.7%
-
Rechercher
-
Sujets à la une
Avantages VIP et goodies pour les donateurs !
Offre TI-Planet/Jarrety pour avoir la TI-83 Premium CE avec son chargeur pour 79,79€ port inclus !
Offre TI-Planet/Jarrety pour avoir la TI-Nspire CX CAS à seulement 130€ TTC port inclus!
Jailbreake ta TI-Nspire avec Ndless et profite des meilleurs jeux et applications !
1234
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...

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 
-
Stats.
363 utilisateurs:
>338 invités
>20 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)