π
<-

[TUTO][AXE] Faire un Input en Axe

Regroupement de tous les tutoriaux z80 (82/83/84)

[TUTO][AXE] Faire un Input en Axe

Unread postby nikitouzz » 02 Feb 2013, 00:17

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: Select all
:.INPUT
:input->A


Une fois cela fait 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: Select all
:.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'octet ( multiplié par 10 selon la place ) a B exemple :

on prends 567

C'est donc égal a (7)+(6*10)+(5*100).

Intégrons ceci a un algorithme :

Code: Select all
:.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: Select all
:.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 nombres de ligne (6) :

Show/Hide spoilerAfficher/Masquer le spoiler
Code: Select all
:.INPUT
:input->A
:for(X,1->K-1->B,lenght(A))
:for(Y,0,9)
:{length(A)-1-X+A}-Y-48??Y*select(K,*10->K)+B->B
:End
:End
:output(0,,B>Dec)


et en version optimiser en taille sur la calculatrice :

Show/Hide spoilerAfficher/Masquer le spoiler
Code: Select all
:A venir
Mes records personnels :
2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes

megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07 minutes

Image
User avatar
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 42.7%
 
Posts: 1016
Images: 1
Joined: 16 Feb 2012, 18:39
Gender: Male
Calculator(s):
MyCalcs profile
Class: Fac de maths

Re: [AXE]Number input en Axe ?

Unread postby Persalteas » 07 May 2013, 08:34

A renommer en [tuto] Faire un Input en Axe et à déplacer dans la section tutoriels :bj:
User avatar
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 6.2%
 
Posts: 2337
Images: 113
Joined: 04 Feb 2010, 00:00
Location: Evry (France)
Gender: Male
Calculator(s):
MyCalcs profile
Class: PhD candidate, Bioinformatics


Return to Tutoriaux

Who is online

Users browsing this forum: ClaudeBot [spider] and 5 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
727 utilisateurs:
>648 invités
>71 membres
>8 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)