Poster un nouveau sujet Poster une réponse
Décomposition nombre
Auteur Message
azerty1



Autorisation : Membre
Nb de messages : 468
Inscrit le : Dim 12 Déc 2010, 20:44
Posté le : Dim 20 Fév 2011, 12:16   Citer 

Bonjour à tous, je ne suis pas très actif sur ce forum, mais j'aurais besoin d'une petite aide. Voilà, j'ai fait un programme permettant d'afficher les chiffres qui composent un nombre, par exemple:
Vous rentrer 756, il en sort {7 5 6}, ce programme permet en fait à la calto de 'lire visuellement' les nombres, il peut par exemple servir (ce que je compte faire) pour trouver la N éme ligne de la suite logique:
1
11
21
1211...
Le problème est que, au bout d'un nombre à 15 chiffres, il n'affiche que les 14 premiers, et affiche ensuite des 0... Je ne vois pas d'où vient le problème.
Voilà le code complet: (il peut surement être optimiser et raccourci)
-> = Sto


Code
:EffEcr
:Input"NOMBRE? ",Chaîne1
:longueur(Chaîne1)->A
:Expr(Chaîne1)->X
:A->dim(L1)
:A-1->B
:1-> :théta:
:Repeat B=-1
:X*10^-B->C
:partEnt(C)->L1(:théta:)
:X-L1(:théta:)*10^B->X
:B-1->B
::théta:+1->:théta:
:End
:EffEcr
:L1


Voilà, si quelqu'un peut m'aider à trouver le problème... Merci! godgrace.gif

----------------------
Ti-Connect 64bits
PROTECT
Tuto Skin Perso Wabbitemu
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
Wirekey



Autorisation : Membre
Nb de messages : 240
Inscrit le : Mer 17 Jui 2009, 0:54
Posté le : Dim 20 Fév 2011, 14:41   Citer 

Je ne comprend pas pourquoi tu fais ça :


Code
:Input"NOMBRE? ",Chaîne1
:longueur(Chaîne1)->A
:Expr(Chaîne1)->X



Ton problème des zeros vient surement de là : la calculette affiche 10 chiffres et en garde 14 en mémoire il me semble bref...

L'idée d'utiliser des chaines est donc pas mauvaise mais si tu la reconvertis après en nombre ça n'a plus aucune utilité.

Utilise plutôt la fonction Sous-chaîne( pour faire un truc du genre en reprenant ton code :


Code

:EffEcr
:Input"NOMBRE? ",Chaîne1
:longueur(Chaîne1)->A
:A->dim(L1)
:for(X,1,A
:expr(sous-Chaîne(Chaîne1,X,1))->L1(X)
:End
:L1



PS : Tu pourra enlever les parenthèses useless et tout mais ce n'est pas mon but de le raccourcir.

 Adresse email Haut de page Bas de page 
 
azerty1



Autorisation : Membre
Nb de messages : 468
Inscrit le : Dim 12 Déc 2010, 20:44
Posté le : Dim 20 Fév 2011, 15:10   Citer 

Effectivement, je n'avais pas penser à utiliser les sous chaînes, le programme s'en trouve considérablement simplifier! Merci beaucoup! bigmouth.gif

----------------------
Ti-Connect 64bits
PROTECT
Tuto Skin Perso Wabbitemu
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2024 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink