π
<-
Chat plein-écran
[^]

Bibliothèque de calcul par étapes 83PCE

Nouveautés, projets, mises à jour.

Bibliothèque de calcul par étapes 83PCE

Message non lude critor » 18 Oct 2016, 11:23

Dans deux articles ( viewtopic.php?t=19129&p=208540#p208540 et viewtopic.php?t=19018&p=207342 ), j'ai mis en avant les nouvelles possibilités de donner les calculs étape par étape avec l'OS TI-83 Premium CE 5.2.

L'ennui, c'est que le code est à chaque fois spécifique à la formule utilisée.
Si l'on continue comme ça, il faudrait donc autant de programmes par étapes que de formules...

D'où l'idée d'avoir un programme dédié au calcul par étapes, qui pourrait alors être appelé par tout programme souhaitant en bénéficier : ;)
Image
(les parenthèses sont en bonus :troll: )

Le fonctionnement :
  • l'utilisateur saisit une chaîne avec son calcul
  • la chaîne est découpée en autant de morceaux que d'éléments (nombres, variables, opérateurs, fonctions...) et convertie en liste
  • la liste est ensuite passée en notation postfixée RPN
  • la liste-RPN est ensuite simplifiée étape par étape, et à chaque étape reconvertie en chaîne pour affichage

Le temps d'exécution est très raisonnable en regard des nombreuses opérations sur les listes et chaînes où la calculatrice est loin d'être optimale - 11 secondes pour l'écran ci-dessus avec un calcul quand même assez complexe au niveau lycée.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.4%
 
Messages: 41455
Images: 14353
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Bibliothèque de calcul par étapes 83PCE

Message non lude Hamza.S » 18 Oct 2016, 11:46

bon projet :bj:

vu qu'il n'y a pas de lien de téléchargement je suppose que c'est loin d'être fini?

critor a écrit:la chaîne est découpée en autant de morceaux que d'éléments (nombres, variables, opérateurs, fonctions...) et convertie en liste

je croyais qu'il était impossible de mettre des chaines de caractères dans une liste?
pouvez-vous expliquer votre méthode?
Image
Avatar de l’utilisateur
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 28.4%
 
Messages: 4460
Images: 18
Inscription: 07 Nov 2014, 00:43
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Bibliothèque de calcul par étapes 83PCE

Message non lude critor » 18 Oct 2016, 12:03

Hamza.S a écrit:bon projet :bj:

Merci. :)

Hamza.S a écrit:vu qu'il n'y a pas de liend e téléchargement je suppose que c'est loin d'être fini?

Si c'était terminé, ce serait en news. ;)
Mais puisque tu demandes, voici :
stepeval.zip
(2.96 Kio) Téléchargé 72 fois


Il resterait à :
  • supprimer des parenthèses inutiles sans que ça coûte trop cher en temps d'exécution
  • optimiser
  • minimiser le nombre de variables utilisées
  • définir le format d'appel/retour final depuis un autre programme
  • sauvegarder et restaurer les valeurs des variables en fin d'appel (sinon, plein de données du programme appelant auront pu être écrasées)

Hamza.S a écrit:
critor a écrit:la chaîne est découpée en autant de morceaux que d'éléments (nombres, variables, opérateurs, fonctions...) et convertie en liste

je croyais qu'il était impossible de mettre des chaines de caractères dans une liste?

Je te confirme que c'est impossible sur TI-z80.

Hamza.S a écrit:pouvez-vous expliquer votre méthode?

En gros, la liste virtuelle dont je parle dans le pseudo-algorithme plus haut contient bien des nombres ou caractères.
En pratique sur calculatrice TI-z80, on tire parti du fait que tout est tokénisé (que ce soit un opérateur, une fonction ou une variable, pour un programme c'est toujours 1 caractère).

Il te faut définir/inventer ton propre format.

Pour ma part, j'utilise 2 listes de même taille.

Pour une valeur numérique, je l'enregistre dans la liste n°1, et je mets 0 dans la liste n°2.

Pour un caractère (que ce soit une variable, un opérateur ou une fonction) :
  • je le concatène à une chaîne, par exemple Chn0, si il n'y est pas déjà présent
  • dans la liste n°1, je stocke son index dans la chaîne
  • dans la liste n°2, je mets une valeur non nulle (-1, 1, 2... cela me permet en même temps de préciser si le caractère représente une variable, un opérateur binaire infixé, un opérateur unaire préfixé, un opérateur unaire postfixé, ou bien une fonction)
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.4%
 
Messages: 41455
Images: 14353
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Bibliothèque de calcul par étapes 83PCE

Message non lude Adriweb » 18 Oct 2016, 12:08

Histoire d'exemplifier rapidement l'astuce au niveau des "listes de chaînes": ce programme, par exemple (lignes du début)

Enfin bref, beau projet, oui :)
A mon avis, ça reste quand même beaucoup moins embêtant à faire en C, cela dit. Ce genre de ruse n'ayant plus aucune raison d'être (array de string, hop hop)
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%
 
Messages: 14599
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Bibliothèque de calcul par étapes 83PCE

Message non lude Hamza.S » 18 Oct 2016, 13:11

si on pouvait utiliser les listes de cellsheet dans n'importe quel programme ça aurait été très intéressant car l'application accepte les chaînes de caractères
Image
Avatar de l’utilisateur
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 28.4%
 
Messages: 4460
Images: 18
Inscription: 07 Nov 2014, 00:43
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Bibliothèque de calcul par étapes 83PCE

Message non lude critor » 18 Oct 2016, 21:45

Quelques optimisations et suppressions de variables.
Puis simplification des parenthèses inutiles.
Image

Résultat, il faut repasser sur les optimisations. :P
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.4%
 
Messages: 41455
Images: 14353
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Bibliothèque de calcul par étapes 83PCE

Message non lude Adriweb » 18 Oct 2016, 22:46

Pas mal :)
Pour la premiere étape, faudrait l'enlever tout simplement si elle est égale à l'entrée? C'est une ligne de moins facilement, je suppose.
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%
 
Messages: 14599
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Bibliothèque de calcul par étapes 83PCE

Message non lude critor » 20 Oct 2016, 13:12

Et on avance sur le calcul pas à pas : :)


Les multiplications implicites et omissions de parenthèses fermantes sont maintenant gérées : :D


Et même les nombres complexes, aussi bien en forme algébrique qu'exponentielle : :bj:


Le programme renvoie une chaîne de caratères où les différentes simplifications sont séparées par des symboles =
Pour plus de rapidité dans le traitement à posteriori, une liste complexe INDEX est également créée, et précise avec les parties réelles+imaginaires les positions+longueurs des éléments à extraire de la chaîne. :)

Voici par exemple l'exemple de programme d'appel produisant les affichages précédents :
Code: Tout sélectionner
Input Chn7
Chn7
prgmZCALSTEP
sousch(Chn7,1,imag(⌊INDEX(1
Disp " "+Rep
For(I,2,dim(⌊INDEX
⌊INDEX(I
sousch(Chn7,réel(Rep),imag(Rep
Disp "="+Rep
End
expr(Rep
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.4%
 
Messages: 41455
Images: 14353
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Bibliothèque de calcul par étapes 83PCE

Message non lude TheMachine02 » 20 Oct 2016, 13:14

Magnifique :#top#:
Avatar de l’utilisateur
TheMachine02Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 29.4%
 
Messages: 341
Images: 0
Inscription: 16 Jan 2013, 18:27
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Médecine

Re: Bibliothèque de calcul par étapes 83PCE

Message non lude Wistaro » 20 Oct 2016, 13:15

Excellent travail!
Nouveau sur le site, Anonymous ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
Avatar de l’utilisateur
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 87.5%
 
Messages: 3152
Images: 37
Inscription: 25 Fév 2013, 16:21
Localisation: Toulouse
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur en électronique
YouTube: Wistaro
Twitter/X: Wistaro
GitHub: Wistaro

Suivante

Retourner vers Actualités

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 12 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.
892 utilisateurs:
>865 invités
>23 membres
>4 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)