π
<-

Appli graphique de RPN (en Python !)

Appli graphique de RPN (en Python !)

Message non lude XanderLeaDaren » 26 Nov 2024, 19:09

Salut à tous,

j’ai codé un script Python pour utiliser la NPI graphiquement semblable à l’interface NumWorks.

Deux modes, inspirés des plus récentes (RPL) et plus anciennes (RPN) calculatrices HP :
– pile dynamique, avec affichage des niveaux numérotés, huit à l’écran, mais taille illimitée (par défaut) ;
– pile fixe, avec niveaux s’appelant X, Y, Z, et T, ce dernier conservant toujours sa dernière valeur.

En mode dynamique, possibilité de sélectionner des niveaux de la pile pour copier en tête de pile (PICK) ou pour effacer de la tête au niveau sélectionné (DROP n). Également, une fonctionnalité de statistiques basique permet d’afficher des indicateurs sur les valeurs présentes dans la pile.

[OK] ou [EXE] pour entrer une valeur.

La touche [boite à outils] ouvre un menu pour indiquer où trouver les fonctionnalités de NPI, et [var] liste d’autres fonctionnalités présentes sous [alpha] + une touche.

Image

ROLL possible dans les deux sens (avec [shift]) et éventuellement pour un nombre restreint d’éléments de la pile, à passer en paramètre avant d’effectuer le roulement.

Les affichages des résultats sont avec des entiers si possible, malgré des calculs effectués en Python avec flottants.

Émulateur : https://my.numworks.com/python/xanderleadaren/rpn

Code ouvert et feuille de route : https://github.com/XanderLeaDaren/numworks-rpn/

À vous pour les retours ! B-)
Dernière édition par XanderLeaDaren le 31 Jan 2025, 16:59, édité 4 fois.
Avatar de l’utilisateur
XanderLeaDaren
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Prochain niv.: 24%
 
Messages: 11
Inscription: 26 Nov 2024, 19:07
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Enseignant
GitHub: XanderLeaDaren

Re: RPN en Python !

Message non lude Adriweb » 10 Déc 2024, 16:34

Merci pour le partage :)

Bizarrement le simulateur du site de NumWorks reste bloqué.
Un screenshot?

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80%
 
Messages: 14845
Images: 1133
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: RPN en Python !

Message non lude XanderLeaDaren » 10 Déc 2024, 16:42

Oui, je ne comprends pas non plus pourquoi on ne peut pas faire fonctionner le programme sur leur site.

Piste : c’est peut-être parce que je teste les appuis sur [shift] pour certaines fonctions, et ça doit interdire la saisie de chiffres ?
Avatar de l’utilisateur
XanderLeaDaren
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Prochain niv.: 24%
 
Messages: 11
Inscription: 26 Nov 2024, 19:07
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Enseignant
GitHub: XanderLeaDaren

Re: RPN en Python !

Message non lude critor » 10 Déc 2024, 20:28

Pour une raison que j'ignore, le simulateur Python en ligne est très loin d'avoir des équivalents clavier pour l'ensemble des codes de touches getkey de la NumWorks.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 53.7%
 
Messages: 42421
Images: 17170
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Appli graphique de RPN (en Python !)

Message non lude XanderLeaDaren » 09 Jan 2025, 10:15

Je continue de temps à autre à améliorer le code, ajouter des fonctionnalités, corriger des bugs.
(1er message de ce fil mis à jour)

L’émulateur sur my.numworks.com ne veut toujours pas fonctionner, mais je compte (quand ??) réaliser des petites vidéos pour présenter l’« appli », et surtout ce qu’est la NPI, quand j’aurai finalisé quelques fonctionnalités que je souhaite encore implémenter.
Avatar de l’utilisateur
XanderLeaDaren
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Prochain niv.: 24%
 
Messages: 11
Inscription: 26 Nov 2024, 19:07
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Enseignant
GitHub: XanderLeaDaren

Re: Appli graphique de RPN (en Python !)

Message non lude cirekraft » 09 Jan 2025, 11:01

Merci @XanderLeaDaren ! J'adore l'affichage minimaliste, on s'y retrouve tout de suite et la bonne surprise est de voir quelques fonctionnalités supplémentaires dans la boite à outils.

De plus j'aime bien les 2 affichages XYZT /dynamique et le clin d'oeil aux HP financières avec l'utilisation de "(" et ")" pour manipuler la pile (Et 💕 pour nROLL)

Peut-être faudrait-il voir pour ces 2 problèmes qui font sortir du programme :

- gérer les erreurs du type division par 0
- lorsque l'on appuie sur la boite à outils et que machinalement on appuie sur ↩ pour revenir à l'écran principal...
Avatar de l’utilisateur
cirekraft
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Prochain niv.: 68%
 
Messages: 41
Inscription: 19 Nov 2018, 17:53
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: Schraf

Re: Appli graphique de RPN (en Python !)

Message non lude cirekraft » 09 Jan 2025, 16:45

J'ai vu qu'un message de division par 0 apparait suite à une mise à jour. Comme a priori il peut y avoir un tas d'autres erreurs mathématiques (log ou racine carrée d'un nombre négatif etc.), peut-être qu'un message "Math error" suffirait ? Genre try + except dans le "evaluate1" :

Code: Tout sélectionner
def evaluate1(operation):
   global entry, stack, lastx
   try:
    if not entry and stack:
        lastx = stack[0]
        stack[0] = python_int(operation(stack[0]))
    elif entry:
        lastx = entry
        stack.insert(0,python_int(operation(float(entry))))
        entry = ""
    display()
   except:error("Math error")
Avatar de l’utilisateur
cirekraft
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Prochain niv.: 68%
 
Messages: 41
Inscription: 19 Nov 2018, 17:53
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: Schraf

Re: Appli graphique de RPN (en Python !)

Message non lude XanderLeaDaren » 10 Jan 2025, 20:33

Oui, merci, j’avais effectivement codé une fonction pour l’affichage de message d’erreur, et j’ai finalisé son déclenchement récemment avec un try/except/else dans evaluate1(), evaluate2() et push() en utilisant le texte d’erreur renvoyé par Python.

+ d’autres choses d’ailleurs, comme la touche [BACK] utilisable (mais pas encore implémentée) sans KeyboardInterrupt, et la touche [HOME] pour quitter le programme.
Avatar de l’utilisateur
XanderLeaDaren
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Prochain niv.: 24%
 
Messages: 11
Inscription: 26 Nov 2024, 19:07
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Enseignant
GitHub: XanderLeaDaren

Re: Appli graphique de RPN (en Python !)

Message non lude XanderLeaDaren » 14 Jan 2025, 13:49

Dernières mises à jour :
- [OK] permet aussi d’ENTER des valeurs, au même titre que [EXE]
- [S] affiche des indicateurs statistiques (min, Q1, Med, Q3, max, n, Σx, µ, σ) en mode « pile dynamique »
- menu [Boite à outils] revu, et menu [var] pour lister les fonctionnalités présentes en [alpha]+touche
Avatar de l’utilisateur
XanderLeaDaren
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Prochain niv.: 24%
 
Messages: 11
Inscription: 26 Nov 2024, 19:07
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Enseignant
GitHub: XanderLeaDaren

Re: Appli graphique de RPN (en Python !)

Message non lude XanderLeaDaren » 28 Jan 2025, 16:32

Quelques mises à jours des deux semaines passées :
– inverse sur [shift] + [÷] et changement de signe sur [shift] + [−]
– curseur clignotant
– cosmétique avec shift et alpha affichés en blanc sur jaune
– messages d’erreurs à l’écran sur certaines fonctions pour préciser ce qui empêche telle opération
– code revu en suivant la PEP8
– quelques bugfix
– affichage de date de version sur [alpha]+[Home]
Avatar de l’utilisateur
XanderLeaDaren
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Prochain niv.: 24%
 
Messages: 11
Inscription: 26 Nov 2024, 19:07
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Enseignant
GitHub: XanderLeaDaren

Suivante

Retourner vers Programmation Python

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
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.
4170 utilisateurs:
>4116 invités
>45 membres
>9 robots
Record simultané (sur 6 mois):
29271 utilisateurs (le 11/07/2025)
-
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)