Espace TI: Forum
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment :
Code promo Nike : -25% dès 50€ ...
Voir le deal

[AXE]Number input en Axe ?

3 participants

Aller en bas

[AXE]Number input en Axe ? Empty [AXE]Number input en Axe ?

Message par nikitouzz Ven 1 Fév - 23:12

Quel problème pour les 90% des programmeurs Axe que les entrées utilisateurs... Aujourd'huis nous allons voir comment faire un number input en Axe.

Commençons par le début, la syntaxe de la commande input est celle la :input->A qui enregistre une chaine de caractere ascII a l'adresse A... A sera don utiliser ici comme un pointeur.

premières lignes de code :
Code:

:.INPUT
:input->A

Une fois cela fais nous savons que le numéro des caractère des chiffres de 0 a 9 sont 48,49,50....

Une fois cela su il est facile de faire un number input a UN seul chiffre :

Code:

:.INPUT
:input->A
:0->B
:for(Y,0,9)
:If {A}=(Y+48)
:B+Y->B
:End
:End
:output(0,0,B>Dec)

Le problèmes maintenant c'est d'y insérer plusieurs chiffres donc de faire un number input pour les nombres et non les chiffres...

La technique va être relativement similaire il faut juste y intégrer une seconde boucle qui parcours tout les octets de {A} et qui les test tous après il ne nous reste plus qu'a ajouter le numéro de l'octets ( multiplier par 10 selon la place ) a B exemple :

on prends 567

c'est donc egale a (7)+(6*10)+(5*100)

Intégrons ceci a un algorithme :

Code:

:.INPUT
:input->A
:0->B+1->K
:for(X,0,lenght(A)-1)
:for(Y,0,9)
:If {X+A}=(Y+48)
:Y*K+B->B //ajoute le nombre selon le tokens et selon la place dans la chaîne
:K*10->K //multiplie par 10 pour avoir le numéro suivant dans la chaîne
:End
:End
:End
:output(0,0,B>Dec)

Et voila notre code est finis.... quoique non, testez le et que voyez vous ? tout les chiffres sont a l'envers... pour corriger ce problèmes il suffit de lire les octets depuis la fin de la chaîne :

Code:

:.INPUT
:input->A
:0->B+1->K
:for(X,0,lenght(A)-1)
:for(Y,0,9)
:If {length(A)-1-X+A}=(Y+48)
:Y*K+B->B //ajoute le nombre selon le tokens et selon la place dans la chaîne
:K*10->K //multiplie par 10 pour avoir le numéro suivant dans la chaîne
:End
:End
:End
:output(0,0,B>Dec)

Et la tout devrais marcher !

puis en version optimisé en nombre de ligne (6):

Spoiler:

et en version optimiser en taille sur la calculatrice :

Spoiler:


Dernière édition par sachiix69 le Dim 3 Fév - 13:59, édité 2 fois
nikitouzz
nikitouzz
Platinum 1
Platinum 1

Sexe : Masculin
Age : 29
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :
  • - TI-Basic Z80
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
  • - TI-Basic 68K
  • - TI-Basic Nspire
Calculatrices :
  • - TI-73
  • - TI-76.fr
  • - TI-82 Stats.fr
  • - TI-83+
  • - TI-84+
  • - TI-92
  • - TI-Nspire
  • - TI-Nspire CX

TI-84+ SE


Revenir en haut Aller en bas

[AXE]Number input en Axe ? Empty Re: [AXE]Number input en Axe ?

Message par Hayleia Sam 2 Fév - 6:07

Tu appelles "version optimisée" un code où je vois Output(0,0,B>Dec) et des For qui ne sont pas des For(const) ? [Vous devez être inscrit et connecté pour voir cette image]
Sinon, bonne idée ce tuto, ça pourrait aider les débutants [Vous devez être inscrit et connecté pour voir cette image]
Hayleia
Hayleia
Or 4
Or 4

Age : 30
Messages : 406
Date d'inscription : 03/08/2012
Points Forum : 46
Points Concours : 4
Langages :
  • - TI-Basic Z80
  • - Axe Parser
Calculatrices :
  • - TI-76.fr
  • - TI-83+
  • - TI-84+ SE
  • - TI-Nspire CX

TI-84+ SE


Revenir en haut Aller en bas

[AXE]Number input en Axe ? Empty Re: [AXE]Number input en Axe ?

Message par nikitouzz Sam 2 Fév - 10:16

Je compte y ajouter un input pour les letttre, les liste... et tout ce qu'on peut faire en basic je completerais Et je n'avais pas vu cette optimisation en copier coller.
nikitouzz
nikitouzz
Platinum 1
Platinum 1

Sexe : Masculin
Age : 29
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :
  • - TI-Basic Z80
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
  • - TI-Basic 68K
  • - TI-Basic Nspire
Calculatrices :
  • - TI-73
  • - TI-76.fr
  • - TI-82 Stats.fr
  • - TI-83+
  • - TI-84+
  • - TI-92
  • - TI-Nspire
  • - TI-Nspire CX

TI-84+ SE


Revenir en haut Aller en bas

[AXE]Number input en Axe ? Empty Re: [AXE]Number input en Axe ?

Message par persalteas Dim 3 Fév - 19:55

Fiouuu... C'est vraiment compliqué, l'Axe.

Et je trouve la syntaxe...bizarre. ( --notroll )
persalteas
persalteas
Platinum 2
Platinum 2

Sexe : Masculin
Age : 29
Messages : 2068
Date d'inscription : 30/06/2010
Etudes : PACES (médecine)
Points Forum : 114
Points Concours : 10
Langages :
  • - TI-Basic Z80
  • - xLib
  • - Grammer
  • - TI-Basic Nspire
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-83
  • - TI-83+
  • - TI-84+ SE
  • - TI-86
  • - TI-Nspire
  • - TI-Nspire CX
  • - Casio Collège
  • - Casio Graph

TI-84 Pocket.fr


http://tiemulation.kegtux.org

Revenir en haut Aller en bas

[AXE]Number input en Axe ? Empty Re: [AXE]Number input en Axe ?

Message par nikitouzz Dim 3 Fév - 20:07

Bah c'est du bas niveau quand meme l'axe meme si c;est pas aussi bas que l'asm ou l'hexa. apres non c'est pas extrenement compliquer quand meme mais je compte faire un tutorial identique pour l'input des liste,chaine,matrice... en gros toute ce qu'on peut faire ne basic.
nikitouzz
nikitouzz
Platinum 1
Platinum 1

Sexe : Masculin
Age : 29
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :
  • - TI-Basic Z80
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
  • - TI-Basic 68K
  • - TI-Basic Nspire
Calculatrices :
  • - TI-73
  • - TI-76.fr
  • - TI-82 Stats.fr
  • - TI-83+
  • - TI-84+
  • - TI-92
  • - TI-Nspire
  • - TI-Nspire CX

TI-84+ SE


Revenir en haut Aller en bas

[AXE]Number input en Axe ? Empty Re: [AXE]Number input en Axe ?

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum