Accueil
AlgoBox : décomposer un nombre - Version imprimable

+- Accueil (http://mathsbidouille.free.fr/forum)
+-- Forum : Le forum de mathsbidouille... (/forumdisplay.php?fid=28)
+--- Forum : Algorithmique et programmation (/forumdisplay.php?fid=49)
+---- Forum : Club informatique (/forumdisplay.php?fid=25)
+---- Discussion : AlgoBox : décomposer un nombre (/showthread.php?tid=636)


AlgoBox : décomposer un nombre - mosu - 23-10-2011 01:58 PM

Je cherche à décomposer un nombre (sans utiliser de listes), c'est a dire faire un programme qui donne les chiffres 1 par 1 d'un nombre.

Par exemple:
input
x=158321
display
a=1
b=5
c=8
d=3
e=2
f=1


Comment faire ça?


RE: décomposer un nombre - jumera - 23-10-2011 02:06 PM

158321=1*105 + 5*104 + 8*103 + 3*102 + 2*101 + 1*100

Pour décomposer n'importe quel entier, il faudra utiliser des listes huuh

Pour savoir le nombre de chiffres de ton nombre, il faut diviser ton nombre par les puissances de 10 (avec une boucle qui s'arrètera quand ta division…………)

Pour obtenir a, il faut faire la partie entière de 158321/100000…
etc… (il va y avoir encore une boucle…)


RE: décomposer un nombre - mosu - 23-10-2011 02:19 PM

donc c doit ppv quelque chose comme ça non?

si x contient 3 chiffres

c ppv floor(X/pow(10,0))-a*100-b*10

Sachant que le nombre de chiffre composant le nombre est fixe cela est faisable sans listes...


RE: décomposer un nombre - jumera - 23-10-2011 02:21 PM

Je t'ai déjà fait tout le boulot en te donnant la méthode…

Essaye !!!


RE: décomposer un nombre - mosu - 24-10-2011 06:18 PM

J'ai l'idée de la chose ça doit ressembler a ça non?
Mais il manque une partie dans l'affectation...hum


RE: décomposer un nombre - jumera - 24-10-2011 06:28 PM

C'est là que le mode pas-à-pas est intéressant…

Dans la ligne#11, il faut "modifier" ton X…
en lui enlevant un chiffre...


RE: décomposer un nombre - mosu - 24-10-2011 06:34 PM

Je vois pas du tout j'y réfléchis ce soir...


RE: décomposer un nombre - jumera - 24-10-2011 06:45 PM

Si X=123456
au deuxième passage dans ta boucle, tu modifies X pour que X=23456
...


RE: décomposer un nombre - mosu - 24-10-2011 07:03 PM

I think it's good


RE: décomposer un nombre - jumera - 25-10-2011 01:14 AM

(24-10-2011 07:03 PM)mosu a écrit :  I think it's good
Yes good

Il reste maintenant, au début, à déterminer le nombre de chiffres de l'entier que tu entres (car tu demandes de l'entrer)

(et aussi, à tester si le nombre entré… est bien entier !)


RE: décomposer un nombre - mosu - 25-10-2011 11:59 AM

(25-10-2011 01:14 AM)jumera a écrit :  (et aussi, à tester si le nombre entré… est bien entier !)

Ça c'est fait mais le reste je galère...déterminer le nombre de chiffres que contient le nombre c'est plus dur mais laissez moi réfléchir!!!...
J'ai compris!!!


RE: décomposer un nombre - geoone - 29-10-2011 01:55 AM

Citation :Ça c'est fait mais le reste je galère...déterminer le nombre de chiffres que contient le nombre c'est plus dur mais laissez moi réfléchir!!!...
J'ai compris!!!

Alors, cette nouvelle version ? whistle
Il faut enchainer les essais ! Angel
C'est long à venir ... fi_lone_ranger
Comment dit-on déjà en anglais ? evil

hum

Big Grin


redface


RE: décomposer un nombre - mosu - 29-10-2011 07:56 AM

ben c'est fait??? :/


RE: décomposer un nombre - dieu - 29-10-2011 11:52 AM

ton algo marche pas encore; essaye avec 999999999999999


RE: décomposer un nombre - mosu - 29-10-2011 04:56 PM

ce n'est pas de ma faute c'est de la faute d'algobox!!! (il ne veut pas qu'on rentre plus de 12 chiffres...


RE: décomposer un nombre - dieu - 29-10-2011 09:45 PM

et ton algo bugue avec les nombres négatifs ( ça encore c'est pas trop grave )


RE: décomposer un nombre - mosu - 30-10-2011 08:17 AM

je corrige ça tout de suite...

C'est fait


RE: décomposer un nombre - dieu - 30-10-2011 10:07 AM

ça m'a l'air pas mal


RE: décomposer un nombre - geoone - 30-10-2011 12:09 PM

(29-10-2011 11:52 AM)dieu a écrit :  ton algo marche pas encore; essaye avec 999999999999999

Le mien oui... whistle
Il me semble aussi plus "léger" evil et devrait vous inciter à utiliser des chaines... (d'où mes jeux de mots très médiocres dans mon premier post! Big Grin


RE: décomposer un nombre - jumera - 30-10-2011 11:11 PM

Voilà un bon exemple d'utilisation des chaînes de caractères good



Une chaîne de caractères (String en anglais), comme son nom l'indique…, est une suite de caractères
Un caractère est un chiffre, une lettre ou un symbole
Dans le code ASCII, chaque caractère est repéré par un numéro


• L'instruction nombre.toString() permet de transformer nombre en chaîne de caractères
• L'instruction chaine.substr(p,n) crée une sous-chaîne (SubString en anglais) formée des n caractères de chaine à partir de la position p
• L'instruction chaine.lenght() donne la longueur de chaine


RE: décomposer un nombre - mosu - 31-10-2011 09:02 AM

(30-10-2011 12:09 PM)geoone a écrit :  
(29-10-2011 11:52 AM)dieu a écrit :  ton algo marche pas encore; essaye avec 999999999999999

Le mien oui... whistle
Il me semble aussi plus "léger" evil et devrait vous inciter à utiliser des chaines... (d'où mes jeux de mots très médiocres dans mon premier post! Big Grin

petit bémol il ne considère pas 000X comme X.

Par exemple:
000003636
est considéré comme 000003636 et non comme 3636 hum .


RE: décomposer un nombre - geoone - 31-10-2011 10:41 PM

Il faudrait être un peu tordu pour saisir ce genre de nombre...
Et puis certains compterons les zéros comme faisant partie du chiffre (puisque tu les as saisis!!) et d'autre non.
Sinon, ce n'est pas compliqué de rajouter une boucle "TANT QUE" les premiers caractères sont des "0", ne pas les compter, ne pas les afficher.

L'idée était de se servir du type chaine, le type nombre étant "moins" adapté à mon avis.


RE: décomposer un nombre - mosu - 02-11-2011 07:04 AM

Y'a t'il des chaine en TI basic (j'avais besoin de ça pour faire un master mind en TI BASIC). Au début j'ai fait ça sans listes donc a la main je te dis pas la galère... puis j'ai appris qu'il y avait des listes en basic!!!


RE: décomposer un nombre - nounours - 02-11-2011 08:23 AM

Si tu veux parler de chaine de caractère, alors oui, il y en a. Comme jumera l'a dit, ce sont des String dont le nom des variables des normalement de base Str1, Str2,... Tu les trouveras des la liste de toute les variables. Sinon, pour les instancier, il te suffit de leurs affecter une chaine de caractère donc en les mettant entre "" . Après, il est existe plusieurs fonctions pour le gérer.


RE: décomposer un nombre - jumera - 02-11-2011 01:08 PM

(02-11-2011 07:04 AM)mosu a écrit :  Y'a t'il des chaine en TI basic
Les manuels sont là pour ça… roll
(Si tu ne l'as pas, va le télécharger sur le site de TI)

Pour TI 84, pages 433 et suivantes…
[Image: stringti2.png]

[Image: stringti.png]


RE: décomposer un nombre - mosu - 04-11-2011 07:14 PM

Mais il y a de vraies liste en TI basic!
voir le site du 0


RE: décomposer un nombre - dieu - 06-11-2011 11:11 AM

je vais paraître rabat-joie mais au fait ça sert à quoi un algorithme qui décompose les nombres ? whistle


RE: décomposer un nombre - mosu - 07-11-2011 06:44 PM

j'en ai besoin dans un démineur en basic!


RE: décomposer un nombre - dieu - 07-11-2011 06:57 PM

bonne chance hoho il va te falloir beaucoup de patience


RE: décomposer un nombre - mosu - 08-11-2011 08:01 PM

euh pas un démineur un master mind!!!


RE: AlgoBox : décomposer un nombre - Nano - 20-01-2012 08:52 AM

Bonjour !

P'tite question : Si le nombre en entrée est 50, l'Algo (de dieu) affiche donc :

5
0

Comment afficher l'inverse ?

0
5


RE: AlgoBox : décomposer un nombre - jumera - 20-01-2012 08:15 PM

Ce sujet a été posé par mosu
dieu n'a mis aucun fichier sur ce sujet hein


RE: AlgoBox : décomposer un nombre - Nano - 20-01-2012 08:58 PM

Celui de geoone pardon redface


RE: AlgoBox : décomposer un nombre - jumera - 22-01-2012 07:56 PM

Ben il suffit de "faire la boucle dans l'autre sens" huuh


RE: AlgoBox : décomposer un nombre - Nano - 24-01-2012 10:21 AM

J'ai essayé de tout changer mais rien ne marche hein


RE: AlgoBox : décomposer un nombre - jumera - 24-01-2012 07:12 PM

La boucle qui affiche les chiffres un par un est celle-ci

[Image: decomp.png]

C'est cette boucle qu'il te faut modifier pour afficher les chiffres "à l'envers"


RE: AlgoBox : décomposer un nombre - Nano - 25-01-2012 12:34 PM

Oui j'avais compris grâce au mode pas à pas mais je ne sais pas par quoi il faut remplacer la formule.


RE: AlgoBox : décomposer un nombre - jumera - 25-01-2012 01:07 PM

Je suis sûr que tu vas y arriver… tout seul...


RE: AlgoBox : décomposer un nombre - Nano - 25-01-2012 04:09 PM

J'ai cherché pendant plus de 4h !

*Continue à chercher* whistle


RE: AlgoBox : décomposer un nombre - jumera - 25-01-2012 05:22 PM

Pour chercher, il faut prendre un papier et un crayon et prendre un exemple

Exemple : 7958

longueur = 4 et position = 0 : afficher le chiffre n°3 ( ici le 8 )
longueur = 4 et position = 1 : afficher le chiffre n°2 ( ici le 5 )
longueur = 4 et position = 2 : afficher le chiffre n°1 ( ici le 9 )
longueur = 4 et position = 3 : afficher le chiffre n°0 ( ici le 7 )

A toi d'exprimer le n° en fonction de position et de longueur...

geoone a d'ailleurs fait une erreur dans son algorithme
car si position commence à 0, il faut arrêter à longueur - 1

( AlgoBox est bien gentil car il ne donne pas de message d'erreur
Dans un langage plus strict, demander le caractère en position 4 (dans mon exemple) donnerait un message d'erreur…
AlgoBox considère que ce caractère est le caractère vide "" )


[Image: decomp1.png]


RE: AlgoBox : décomposer un nombre - Nano - 26-01-2012 08:16 AM

Je pense avoir trouvé !

J'aurai pu trouver avec l'erreur qu'il y avait dans l'Algo de geoone ?


RE: AlgoBox : décomposer un nombre - jumera - 26-01-2012 10:35 AM

(26-01-2012 08:16 AM)Nano a écrit :  J'aurai pu trouver avec l'erreur qu'il y avait dans l'Algo de geoone ?
J'ai expliqué qu'AlgoBox ne génère pas d'erreur
Il considère (par exemple) que le 4ième caractère de "abc" est ""