π
<-

partDéc() qui renvoie 1

Re: partDéc() qui renvoie 1

Unread postby iequa » 29 Apr 2014, 18:33

Je ne comprends pas bien, mettre K^(1/3) dans une variable ? C'est ce que j'ai fais dès le début (voir le code dans le premier message), sans succès
User avatar
iequa
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 0%
 
Posts: 3
Joined: 29 Apr 2014, 14:08
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: partDéc() qui renvoie 1

Unread postby Bisam » 30 Apr 2014, 16:00

C'est malheureusement un "bug" impossible à supprimer.
En effet, cela vient directement de la façon de stocker des réels.

Ici, après le calcul (approché) de 64^(1/3), c'est un nombre très proche de 4, mais légèrement inférieur, qui est obtenu. (En fait, ce sera le cas pour toutes les valeurs suivantes : (n^3)^(1/3) renvoie toujours une valeur très légèrement plus petite que n...)
Sa partie fractionnaire vaut donc 0.9999999999999.. avec plein de 9, mais la calculatrice n'affiche pas tous les chiffres qu'elle a en mémoire, donc elle affiche une valeur proche, à savoir 1.

C'est même plus qu'un problème d'affichage puisque l'on ne peut pas faire des calculs avec ces nombres impossibles à afficher :
Code: Select all
1-2^(-40)-1
renvoie 0
Pourtant
Code: Select all
fPart(1-2^-40)
renvoie 1 et prouve que le résultat en mémoire est différent du nombre 1.
et
Code: Select all
1-2^(-40)-1/2-1/2
ne renvoie pas 0... mais bien 2^-40 !

On peut en déduire que les calculettes z80 effectuent les calculs sur 40 bits de mantisse.

Enfin, pour résoudre le problème, il suffit de ne pas tester l'égalité à 0 ! On peut le contourner ainsi :
Code: Select all
Prompt K
K^(1/3)->R
If abs(partDéc(R)-partDéc(R)^2)<E-13
Then
Disp R
End

On teste en fait si la partie décimale est très proche de 0 ou bien très proche de 1...
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: partDéc() qui renvoie 1

Unread postby Adriweb » 30 Apr 2014, 16:04

Jolie analyse :)

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 82.2%
 
Posts: 14889
Images: 1211
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Previous

Return to TI-Basic

Who is online

Users browsing this forum: No registered users and 5 guests

-
Search
-
Social TI-Planet
-
Featured topics
Ndless for CX 4.5.5 / CX II 6.2.0
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2155 utilisateurs:
>2119 invités
>29 membres
>7 robots
Record simultané (sur 6 mois):
43991 utilisateurs (le 10/09/2025)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)