TI 83+ séparer les chifres d'un nombre

Fermé
alexxl1995 - 8 mai 2014 à 18:20
 dezema - 16 mai 2014 à 14:12
Bonjour,

je suis en train de programmer sur ma TI et je ne trouve pas de solution a mon problème;
je voudrait par exemple avoir le nombre 01001011 défragmenté en 0 1 0 0 1 0 1 1 (et oui ça concerne le binaire ;) Mais en ayant rechercher un peut sur internet je n'ai pas trouver de solution... je voudrait savoir donc si l'un d'entre vous aurait l'argument ou un programme le permettant...

merci de votre réponse!

2 réponses

$0M3oNe Messages postés 336 Date d'inscription samedi 1 décembre 2012 Statut Membre Dernière intervention 24 octobre 2016 84
9 mai 2014 à 16:20
Bonjour,
je pense avoir trouvé ce que tu cherche, il faut pour ça utiliser les chaînes de caractères et j'ai pensé que stocker les chiffres séparés dans une liste serait plus simple à utiliser:

:Input "chaine=",Chaîne1
:8->dim(L1)
:For(T,1,8)
:carChaîne(Chaîne1,"0",T)->A
:carChaîne(Chaîne1,"1",T)->B
:If A=/0
:Then
:0->L1(A)
:End
:If B=/0
:Then
:1->L1(B)
:End
:End


Je précise quand même que le symbole =/ veux dire "différent de".
Pour expliquer simplement, on rentre le chiffre dans une chaîne de caractère, on défini une liste L1 avec une taille de 8, ensuite on détecte 8 fois les positions des chiffres 1 et 0 dans la chaîne, puis on les stocke dans la liste L1 aux positions enregistrées.
Pour avoir accès aux chiffres il suffit de rentrer
L1(position du chiffre)
.
On peut bien entendu changer les variables A, B, T, Chaîne1 et L1 sans problèmes.
1
merci beaucoup, je n'ai pas essayer ta solution mais vu de loin sa a l'air de marcher... entre temps j'en ai trouvé une autre:

partDéc(X/10)*10->A
partDéc(X/100-A/100)*10->B
partDéc(X/1000-A/1000-B/100)*10->C

et bref on répéte l'opération autant de fois qu'il y a de chiffre ...
je pense que ta version est plus optimisé que la mienne mais je ne maîtrise pas encore les chaines...
merci
0
Ba en soit le tiens et plus compacte, mais celui de $0M3oNe est plus adaptable:
on peut facilement changer la taille prédéfinie du chiffre de base ou encore les chiffres à séparer (il peut détecter d'autres chiffres que le 0 et le 1)
0