Omega permet en effet d'améliorer grandement les possibilités de ta NumWorks et ce même en mode examen. Citons entre autres :
- la réactivation du moteur de calcul littéral que NumWorks avait introduit dans sa version 1.2 pour le supprimer dans sa version 11
- une application Atom avec un tableau périodique des éléments
- une bibliothèque de constantes physiques
- une mémoire de travail étendue de 16K à 32K pour l'exécution de scripts Python plus conséquents notamment dans le cadre de projets
- une application avec une calculatrice RPN
- le support pour le rajout d'applications externes
- Nofrendo, émulateur de console de jeux Nintendo NES
- mais également KhiCAS par parisse.
Basée sur Xcas, son logiciel intégré de mathématiques, cette application étend les capacités mathématiques de ta NumWorks au niveau d'une HP Prime, bénéficiant du moteur de calcul formel GIAC avec notamment la possibilité de construire automatiquement des tableaux d'étude de fonction avec indications d'éléments de démarche !
Elle est de plus programmable sous deux syntaxes au choix, Xcas ou Python. Et en prime, le langage de programmation inclut des commandes de tracé à la Scratch/Logo pour réinvestir les acquis de collège !
Nombre de fonctionnalités parfaitement légitimes puisque disponibles en mode examen pour les candidats ayant choisi des modèles concurrents, un nivellement par le haut pour l'égalité entre candidats !



Nous allons donc voir ensemble quelles sont les nouveautés apportées à la fois par NumWorks pour la version 13 et par l'équipe Omega pour la version 1.19, en te précisant bien à chaque fois de qui elles proviennent.


1) Clavier et interface
Go to top
shiftpuis 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 - merci NumWorks !

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 globaux
Go to top






Note que tu pourras même y choisir le symbole de multiplication de ton choix, une exclusivité Omega à ce jour !





- Standard, qui efface le contenu mémoire comme exigé en France
- Sans symbolique, ciblant les pays interdisant les fonctionnalités de calcul formel ou même littéral (Italie, Pays-Bas, Portugal, Royaume-Uni...).
En plus du contenu mémoire, il désactive en prime le mode de calcul littéral de l'application Calculs ainsi que l'accès aux applications externes, ce qui interdit donc KhiCAS par la même occasion. - Sans symbolique ni texte, ciblant les pays dont la réglementation interdit l'accès à tout éditeur de texte pendant les épreuves (Pays-Bas, ...).
En plus des points précédents, il désactive l'application Python.


- mauve
- orange




3) Paramètres et applications
Go to top

- 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





L'affichage des résultats sera alors effectué sur la même ligne lorsqu'il y aura suffisamment de place, et t'offrira donc une bien meilleure vue d'ensemble de ton historique de calculs !


4) Python
Go to top



Autre amélioration de saisie effectuée par NumWorks 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()



Et bien NumWorks semble avoir apprécié l'idée puisque la reprenant mais en mieux, augmentant l'espace de stockage de façon encore plus significative à 32 Kio !

En effet, il n'y avait pas de fonction permettant de tester la pression d'une touche.


- Code: Tout sélectionner
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,c2=0,0
spitm=str(pitm)
for itms in sorted(dir(pitm)):
c,c2=c+1,c2+1
try:
itm=eval(spath+"."+itms)
print(hd+itms+"="+str(itm))
if isExplorable(itm) and itm!=pitm:
pitmsl2=pitmsl.copy()
pitmsl2.append(itms)
c2=c2+explmod(itm,pitmsl2,False)[1]
except:
print(hd+itms)
if c>0 and reset:
print(hd+"Total: "+str(c)+" 1st level item(s)")
if c2>0 and c2!=c:
print(hd+" "+str(c2)+" item(s)")
return [c,c2]
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 | x² 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 |
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
Nous 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
4 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().
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écifique | kandinsky ion | prime | nsp | board storage | ||||
Total | 9 | 3 | 8 | 9 | 8 | 9 | 9 | 13 |
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 !

- 9 modules :
NumWorks
HP Prime (version alpha) - 8 modules :
TI-83 Premium CE Edition Python - 3 modules :
Casio Graph 35+E II
Casio Graph 90+E
- 13 modules :
TI-Python (firmware tiers) - 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) - 8 modules :
TI-83 Premium CE Edition Python
TI-Python
TI-Nspire (appli MicroPython) - 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 . 8 . 3 38 . | 84-175 . . . . 25 . . 8 . . . . | 91-190 4 2 . 7 28 . . 8 15 4 . . | 97-428 3-13 . 13-17 9-13 42-46 10-14 . . 17-21 . . 25-29 | 93-218 4 . 12 7 41 3 . . 15 . . . | 91-204 4 . 12 7 41 6 . 8 12 . . 24 | 91-190 4 2 . 7 28 . . 8 15 4 . . | 93-191 4 2 12 7 41 6 15 8 15 10 . . |
spécifique | 6(kandinsky) 48(ion) | 3-7(prime) | 10(nsp) | 22(board) 21(storage) | ||||
Total | 250-350 | 117-208 | 159-258 | 219-588 | 185-310 | 205-318 | 159-258 | 213-354 |
En terme de richesse des modules, la NumWorks varie donc entre les 2ème et 3ème rangs !

- 219-588 éléments :
HP Prime (version alpha) - 250-350 éléments :
NumWorks - 159-258 éléments :
TI-83 Premium CE Edition Python - 117-208 éléments :
Casio Graph 35+E II
Casio Graph 90+E
- 219-588 éléments :
HP Prime (version alpha) - 213-354 éléments :
TI-Python (firmware tiers) - 250-350 éléments :
NumWorks - 205-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) - 185-310 éléments :
TI-Nspire
(appli MicroPython) - 159-258 éléments :
TI-83 Premium CE Edition Python
TI-Python - 117-208 éléments :
Casio Graph 35+E II
Casio Graph 90+E
La mémoire utilisée pour exécuter les scripts Python est consituée de 2 zones :
- le stack (pile) qui accueille les références vers les objets créés
- le heap (tas - appelé vugairement chez nous mémoire de travail jusqu'à présent) qui accueille les valeurs de ces objets

Notre script mem.py permet d'estimer la capacité du tas (mémoire de travail) :
- 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

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.


Omega permet ainsi à ta NumWorks de ganger de 2 à 5 places au classement en terme de capacité de tas / stack et ainsi de ne plus être dernière, loin de là !

- 1,032942 Mo :
Casio Graph 90+E - 1,022145 Mo :
HP Prime (version alpha) - 100,560 Ko :
Casio Graph 35+E II - 32,339 Ko
NumWorks (firmware Omega) - 20,200 Ko
TI-83 Premium CE Edition Python - 16,259 Ko
NumWorks (firmware officiel)
- 2,049276 Mo :
TI-Nspire (application MicroPython) - 1,032942 Mo :
Casio Graph 90+E - 1,022145 Mo :
HP Prime (version alpha) - 257,636 Ko :
Casio Graph 35/75+E (application CasioPython) - 100,560 Ko :
Casio Graph 35+E II - 32,339 Ko
NumWorks (firmware Omega) - 31,899 Ko :
Casio Graph 35+E II (application CasioPython) - 22,605 Ko
TI-83 Premium CE + TI-Python (firmware tiers) - 20,200 Ko
TI-83 Premium CE Edition Python - 19,924 Ko
TI-83 Premium CE + TI-Python - 16,238 Ko
NumWorks (firmware officiel)
Par contre, NumWorks annonce avoir quadruplé la taille de la pile / stack pour la version 13, 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


Là encore une nette progression au classement en terme de capacité de pile / stack. Merci cette fois-ci NumWorks, la calculatrice est donc dès maintenant le meilleur choix aux examens français sur le critère de la récursivité !

- 143 :
NumWorks (nouvelle version) - 82 :
Casio Graph 90+E
Casio Graph 35+E II - 77 :
HP Prime (version alpha) 30 :(ancienne version)
NumWorks- 23
TI-83 Premium CE Edition Python
- 5362 :
Casio Graph 35/75+E (application CasioPython) - 655 :
Casio Graph 35+E II (application CasioPython) - 143 :
NumWorks (nouvelle version) - 130 :
TI-Nspire (application MicroPython) - 82 :
Casio Graph 90+E
Casio Graph 35+E II - 77 :
HP Prime (version alpha) 30 :(ancienne version)
NumWorks- 23
TI-83 Premium CE Edition Python - 20
TI-83 Premium CE + TI-Python - 15
TI-83 Premium CE + TI-Python (firmware tiers)

5) Calculs
Go to top

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




- base binaire en préfixant le nombre saisi par 0b
- base hexadécimale en préfixant le nombre saisi par 0x



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
- la conversion en base binaire
- la décomposition en facteurs premiers



- 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



- représentation automatique et légendée du point associé sur le cercle trigonométrique
- cosinus associé sous forme exacte et décimale
- sinus associé sous forme exacte et décimale



- la représentation automatique et légendée du point associé dans le plan complexe
- le module sous forme exacte et décimale
- l'argument sous forme exacte et décimale
- la partie réelle sous forme exacte et décimale
- la partie imaginaire sous forme exacte et décimale

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 !

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 !



- 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


shift
,. Le menu se donne même la peine de les légender dans ta langue une fois de plus !

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) !



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

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 !

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!



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 !




6) Probabilités
Go to top



7) Équations
Go to top


8) Fonctions
Go to top
9) Régressions
Go to top







10) Atom
Go to top


11) RPN
Go to top



12) External
Go to topElle n'est d'une part plus affichée sur le modèle NumWorks N0100 où elle était totalement inutile, puisqu'il n'y a pas de possibilité d'y rajouter des applications externes à ce jour.
D'autre part, de façon fort utile elle affiche maintenant l'adresse à laquelle l'on peut s'installer des applications additionnelles.

13) Conclusion
Go to top
Toutes nos félicitations à NumWorks ainsi qu'à l'ensemble de l'équipe Omega !

Et au plaisir de découvrir vos prochaines versions !

14) Installation Omega et KhiCAS
Go to top

- epsilon_light
- epsilon_dark
- omega_light (par défaut)
- omega_dark
Les applications externes KhiCAS et autres sont pour leur part à installer séparément avec leur propre installateur en ligne dédié, également lié en fin d'article.
Liens :
- installateur Omega en ligne
- installateur applications externes en ligne (dont KhiCAS - pour NumWorks N0110 uniquement)
- tutoriel d'installation Omega avancée
- tutoriel Python ion.keydown()
- site web d'Omega
- code source d'Omega
- code source officiel
Téléchargements :
- simulateur Omega pour navigateur / Android
- firmware Omega pour NumWorks N0100 / N0110