by critor » 18 Oct 2016, 12:03
Hamza.S wrote:bon projet

Merci.

Hamza.S wrote: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
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 wrote:critor wrote: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 wrote: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)
You do not have the required permissions to view the files attached to this post.