π
<-

[TUTO][AXE] Faire un Input en Axe

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

[TUTO][AXE] Faire un Input en Axe

Message non lude nikitouzz » 02 Fév 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: Tout sélectionner
:.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: Tout sélectionner
:.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: Tout sélectionner
:.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: Tout sélectionner
:.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: Tout sélectionner
:.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: Tout sélectionner
: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
Avatar de l’utilisateur
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 42.7%
 
Messages: 1016
Images: 1
Inscription: 16 Fév 2012, 18:39
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Fac de maths

Re: [AXE]Number input en Axe ?

Message non lude Persalteas » 07 Mai 2013, 08:34

A renommer en [tuto] Faire un Input en Axe et à déplacer dans la section tutoriels :bj:
Avatar de l’utilisateur
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 6.2%
 
Messages: 2337
Images: 113
Inscription: 04 Fév 2010, 00:00
Localisation: Evry (France)
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PhD candidate, Bioinformatics


Retourner vers Tutoriaux

Qui est en ligne

Utilisateurs parcourant ce forum: ClaudeBot [spider] et 11 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Ndless for CX 4.5.5 / CX II 6.2.0
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 !
12345
-
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.
2703 utilisateurs:
>2668 invités
>26 membres
>9 robots
Record simultané (sur 6 mois):
32248 utilisateurs (le 01/09/2025)
-
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)