PROG Qui bug !

Résolu
musicetcie Messages postés 393 Date d'inscription   Statut Membre Dernière intervention   -  
musicetcie Messages postés 393 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je n'ai pas encore beaucoup d'expérience en matière de programmation, mais je progresse...
Pour cela, rien de tel que de s'entraîner, n'est-ce pas?
C'est pour ça que j'ai voulu créer un petit programme, bidon (mais alors très bidon ! xP), mais un programme quand même.
Son but : faire que la calculatrice affiche un peu plus de décimales qu'à la normale.
J'ai une TI-84.
Si j'entre pi, par exemple, elle m'affiche le nombre avec 9 décimales. Le programme en affiche 4 de plus.
Seulement, l'anté-antépénultième décimale est fausse. (exemple : avec 13 décimales : pi=3,1415926535898, et la calto m'affiche 3,1415926536898)
Pourquoi???

Merci

4 réponses

Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
Bonjour,

pour répondre à ta question, il faudrait déjà savoir quel est ton programme (comment tu fais quoi).

Ensuite, sache que la représentation des nombres à virgule dans un ordinateur est une approximation (à la manière de l'écriture scientifique avec un certain nombre de chiffres significatifs) il se peut que le bug vienne de là. Par contre le fait que seul ce chiffre-là soit faux, pour tous les cas de figure, m'amène à deviner que c'est dans ton code qu'il doit y avoir un bug effectivement.
0
musicetcie Messages postés 393 Date d'inscription   Statut Membre Dernière intervention   97
 
En effet, il me semble que cela vienne du programme.
Je l'écris ici:

:Input "Nombre : ",A
:EffEcr
:Output(1,1,"Nombre:"
:Output(2,1,partEnt(A)
:1000partDec(A)->B
:1000partDec(B)->C
:Output(2,10,partDec(C)
:Output(2,4,partDec(A)
:Output(2,4,","

J'avais inséré "Fix 6" après :Output(2,10,partDec(C), mais cela ne fonctionnait que pour quelques nombres...
Que faire ?? :)
Merci
0
musicetcie Messages postés 393 Date d'inscription   Statut Membre Dernière intervention   97
 
Aussi : j'ai testé avec des arrondi avant et après partDec, mais ce n'est pas une fonction que je maitrise, alors... Je ne sais pas du tout si j'étais sur la bonne voie.
Qu'en pensez vous?
0
musicetcie Messages postés 393 Date d'inscription   Statut Membre Dernière intervention   97
 
En fait, je viens de réussir.
Une petite intuition (venue je ne sais d'où) m'a fait écrire partDec(A)=partEnt(1E8 * partDec(A))...
Au lieu de mettre une virgule et d'arrondir la dernière décimale, cette fois il me donne la décimale correcte...

L'erreur venait donc d'un arrondi... J'étais sur la bonne piste avec mon arrondi, mais ce n'était pas ça exactement...

Maintenant, si quelqu'un a une idée pour l'améliorer, je suis preneuse !!
0