Calculator Community > [FR] Programmation Axe Parser

Créer des programmes à noms entrés par l'utilisateur

(1/2) > >>

Sandro:
Bonjour/bonsoir,
j'ai essayé de créer  un programme en axe parseur permettant de créer un programme de nom spécifié.

--- Code: ---.NEWPRGM
Fill(L1,0
Disp "NOM DU PROGRAMME"
input -> P
{5 -> L1
Copy(P,L1+1,length(P))
0 -> {L1+P

.début du code pour voir le contenu de L1
For(A,0,3
disp {A*2+L1}>Dec,{A*2+L1+1}>DEC,i
End
.Fin du code pour voir le contenu de L1

GetCalc(L1,20)
--- End code ---

J'ai donc 2 problèmes :
-le premier est pourquoi quand je met "prgmFILE" par example, le "prgm" est remplacé par 05h et non par 5Fh dans la mémoire (alors que le token "prgm" a pour code 5Fh)?
-le second bien plus dérangeant : parfois, le programme ainsi créé à un ° à la fin du nom tant que le programme est dans l'inventaire des programmes. Et quand on sélectionne le programme pour le lancer, on a à la place du ° le token augment( (14h) : ce 14h est aussi contenu dans la liste L1. Quelqu'un aurrait-il une idée d'où pourrait venir ce token suplémentaire?

Merci d'avance
Sandro

PS : je viens de comprendre au moins pourquoi l'affichage varie : dans la liste des programmes, les octés sont considérés comme des caractères ASCII donc le 14h est interprété comme étant ° alors que sur l'écran de calcul, les octés sont considérés comme des tokens, donc le 14h est interprété comme étant augment(.

kindermoumoute:
"Fill(L1,0" Ce code ne sert à rien.

"{5 -> L1" je sais pas comment tu compile ça ???

"0 -> {L1+P" c'est une très mauvaise idée, il faut faire "length(P)->P" au préalable.

For(A,0,3
disp {A*2+L1}>Dec,{A*2+L1+1}>DEC,i
End

Privilégie cette écriture :
L1-1->A
For(8 )
Disp sub(A),sub(A),i
End

.Optimisation

Lbl A
{A++}>Dec
Return

Pour tes bugs, c'est parce que tu t'y prend mal. Je n'ai pas testé mais essaye :
input->P
!If getCalc(P)
Return!If GetCalc(P,20)
End
->P
Et P point la variable créée.

Après je n'ai pas compris, le token 'prgm' doit être ajouté lors de la saisie du nom du programme, est ce que c'est ce que tu cherche à faire ?

Sandro:
si, sauf que j'optenais un programme valide avec 05h et non avec 5Fh bizzarement (j'ai trouvé ça en observant les octés de la chaîne "prgmFILE".

Sinon, c'était 5 -> {L1 et non {5 -> L1.

Je teste avec tes modifs

Sandro

EDIT1 : oui, le 5 est sensé être le token prgm, même si c'est bizzard que ce soit pas 5F

kindermoumoute:
Dac, je vois. Du coup ton programme marche ou pas ?

Sandro:
Donc j'ai essayé en faisant ceci :
--- Code: ---.NPRGM2
input->P
length(P -> Q
5 -> L1
Copy(P,L1+1,Q
0 -> {L1+Q
GetCalc(L1,20
--- End code ---
Et il arrive encore que ce token s'ajoute au nom.

Sandro

PS1 : Pour le second code, il faut rajouter quoi exactement pour avoir le token prgm?
PS2 : avec 5Fh, le code compile mais ne crée pas de programme

Navigation

[0] Message Index

[#] Next page

Go to full version