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 -
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
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
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.
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.
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
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
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?
Qu'en pensez vous?
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 !!
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 !!