π
<-
Chat plein-écran
[^]

Outils communautaires de programmation fx-92 SC+

:fxesp32b: :fxesp32n: :fxesp32v:

Outils communautaires de programmation fx-92 SC+

Message non lude Lephe » 06 Oct 2019, 01:29

La fx-92 Scientifique Collège+ possède un menu Algorithmique fort sympathique pour programmer dans un style Scratch. Cependant le seul moyen de tester des programmes avec est de les entrer à la main dans une fx-92 SC+ ou son émulateur, avec le risque de tout gâcher en appuyant par malheur sur ON. Ce n'est pas très pratique.

Plusieurs outils se sont donc présentés pour pallier à ces difficultés :


---

Pour la partie qui me concerne (l'interpréteur indépendant), ça se joue sur PC avec Python et le module PySDL2. Le programme peut lire des URLs wes.casio.com et de l'hexa, mais aussi des scripts textuels avec une syntaxe simple. Voici un des programmes de test, par exemple :

Code: Tout sélectionner
setvar 0, A

repeat 6
  goto -35,16-7A
  pendown
  goto x+3A+3,y+5
  penup
  goto x+A+3,y
  pendown
  goto x-3A-3,y-5
  penup
  setvar A+1, A
repeat_end

line-patterns.png
line-patterns.png (6.32 Kio) Vu 4236 fois


Pour ce qui est des fonctionnalités, je supporte quasiment toutes les constructions du menu Algorithmique (il manque juste quelques I/O) et une bonne partie des expressions que l'on peut taper sur la calculatrice. Une liste détaillée se trouve sur le dépôt.

À cause du format de nombre qui est différent de celui de la fx-92 (flottant versus décimal), on pourrait s'attendre à des surprises, mais en pratique ça marche très bien car les scripts ne sont pas assez violents pour que les différences ne se voient. :D

Merci au passage à Pavel qui n'a pas attendu pour envoyer une PR! o/
Dernière édition par Lephe le 12 Oct 2019, 18:02, édité 3 fois.
Avatar de l’utilisateur
LephePartenaire
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 67.7%
 
Messages: 386
Inscription: 15 Juin 2018, 19:53
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Interpréteur fx-92 SC+ pour PC

Message non lude Adriweb » 06 Oct 2019, 07:30

Beau travail, félicitations!
Image

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...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.1%
 
Messages: 14606
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Interpréteur fx-92 SC+ pour PC

Message non lude grosged » 06 Oct 2019, 09:33

Très belle initiative !

A propos du fichier txt contenant l'url casio, doit-il être enregistré d'une certaine façon (utf8 ou autre ...) ?
Je demande ça car j'ai ces messages d'erreur :

Code: Tout sélectionner
sh-4.4# python3 fx92.py -u url.txt
[urlparser] URL includes protocol, will start after '+E-'
[lexer] Unknown opcode 0x2e
[lexer] Unknown opcode 0x2e
[lexer] Unknown opcode 0x2e
[lexer] Unknown opcode 0x2e
[lexer] Unknown opcode 0x2e
[lexer] Unknown opcode 0x2e
[urlparser] Expected one of ['CONST'], got FUN (at token 445)
Traceback (most recent call last):
  File "fx92.py", line 111, in <module>
    sys.exit(main())
  File "fx92.py", line 93, in main
    ast = parser.parse_program()
  File "/mnt/mmcblk0p1/fx92-interpreter/fx92/parser.py", line 54, in parse_program
    return self.program()
  File "/mnt/mmcblk0p1/fx92-interpreter/fx92/parser.py", line 90, in program
    stmt = self.stmt(optional=True)
  File "/mnt/mmcblk0p1/fx92-interpreter/fx92/parser.py", line 99, in stmt
    st = self.stmt2(optional=optional)
  File "/mnt/mmcblk0p1/fx92-interpreter/fx92/parser.py", line 146, in stmt2
    prg = self.program()
  File "/mnt/mmcblk0p1/fx92-interpreter/fx92/parser.py", line 90, in program
    stmt = self.stmt(optional=True)
  File "/mnt/mmcblk0p1/fx92-interpreter/fx92/parser.py", line 99, in stmt
    st = self.stmt2(optional=optional)
  File "/mnt/mmcblk0p1/fx92-interpreter/fx92/parser.py", line 117, in stmt2
    return Node(N.FORWARD, self.arg())
  File "/mnt/mmcblk0p1/fx92-interpreter/fx92/parser.py", line 178, in arg
    e = self.expr()
  File "/mnt/mmcblk0p1/fx92-interpreter/fx92/parser.py", line 191, in expr
    f = [self.factor()]
  File "/mnt/mmcblk0p1/fx92-interpreter/fx92/parser.py", line 205, in factor
    atom = self.atom()
  File "/mnt/mmcblk0p1/fx92-interpreter/fx92/parser.py", line 222, in atom
    factors.append(self.const())
  File "/mnt/mmcblk0p1/fx92-interpreter/fx92/parser.py", line 254, in const
    const = self.expect(T.CONST).args[0]
  File "/mnt/mmcblk0p1/fx92-interpreter/fx92/parser.py", line 79, in expect
    raise Exception("Syntax error: " + err)
Exception: Syntax error: Expected one of ['CONST'], got FUN (at token 445)
sh-4.4#

(testé sous puppy linux)
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Interpréteur fx-92 SC+ pour PC

Message non lude Lephe » 06 Oct 2019, 09:59

Ah, désolé, c'est un problème dans ma grammaire. La syntaxe avec la multiplication implicite est un peu casse-pieds, et j'ai oublié les cas de la forme `+f(x)` ou `-f(x)` quand j'ai écrit le parser. ^_^"

Au passage il y a des virgules à des endroits où le lexer ne les comprend pas encore -- normalement il ne doit y en avoir que dans des constantes. Si tu en as ailleurs, je veux bien un exemple de ligne pour améliorer ça. ;)

J'ai poussé un nouveau commit avec une correction et un test unitaire pour le problème de syntaxe.
Avatar de l’utilisateur
LephePartenaire
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 67.7%
 
Messages: 386
Inscription: 15 Juin 2018, 19:53
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Interpréteur fx-92 SC+ pour PC

Message non lude grosged » 06 Oct 2019, 10:18

En effet, la fx-92 SC+ accepte de drôles de syntaxes. :p

On peut, par exemple, respectectivement affecter les valeurs 0 0,1 et 1 de cette manière :

Code: Tout sélectionner
,→A
,1→A
1,→A
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Interpréteur fx-92 SC+ pour PC

Message non lude Lephe » 06 Oct 2019, 10:51

Je vois ! J'ai modifié la détection de constantes pour autoriser tout ça. Le code commence à être un peu moche, je referai une passe plus tard. En tous cas c'est poussé ^^

J'ai un test unitaire pour la version texte et j'en ajouterai un également pour la version Bitcode, que j'ai testée à la main. :)
Avatar de l’utilisateur
LephePartenaire
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 67.7%
 
Messages: 386
Inscription: 15 Juin 2018, 19:53
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Interpréteur fx-92 SC+ pour PC

Message non lude critor » 07 Oct 2019, 18:13

Merci.

Le dernier participant utilise le PGCD, dont le token est actuellement commenté dans le lexer :
https://gitea.planet-casio.com/Lephenix ... 2/lexer.py

Et donc on a besoin aussi du séparateur de paramètres, qui est ; sur ce modèle.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41470
Images: 14480
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Interpréteur fx-92 SC+ pour PC

Message non lude critor » 08 Oct 2019, 11:17

Il faudrait également l'opérateur puissance ^ nouvellement utilisé dans la dernière participation reçue.

Merci.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41470
Images: 14480
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Interpréteur fx-92 SC+ pour PC

Message non lude Zocipal » 08 Oct 2019, 19:33

Bonsoir,
J'ai toujours SDL is not defined...
Pourtant j'utilise un des scripts de test fourni.
Une idée ?
Merci d'avance,
Image
Avatar de l’utilisateur
ZocipalProgrammeur
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 60.7%
 
Messages: 113
Inscription: 12 Sep 2019, 20:15
Localisation: Hauts-de-France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1ère Maths Physique NSI

Re: Interpréteur fx-92 SC+ pour PC

Message non lude Lephe » 08 Oct 2019, 21:33

Voilà Critor, j'ai ajouté les PGCD, PPCM, et puissances (hexa seulement pour les puissances).

J'ai toujours SDL is not defined...

Quel est le message d'erreur complet ? Peut-être que tu n'as pas le module SDL pour Python que j'utilise, ou qu'il y a une erreur d'import dans le code qui ne se voit pas chez moi. ^^
Avatar de l’utilisateur
LephePartenaire
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 67.7%
 
Messages: 386
Inscription: 15 Juin 2018, 19:53
Genre: Homme
Calculatrice(s):
MyCalcs profile

Suivante

Retourner vers Casio (fx-82/83/85/92/95/115/300/350/500/570/991, Collège)

Qui est en ligne

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

-
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.
1070 utilisateurs:
>1046 invités
>19 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)