Page 1 of 1

bug calcul arguments 82/83/84

PostPosted: 22 Nov 2008, 07:44
by critor
Je pense avoir trouvé un petit bug sur le calcul d'argument de nombres complexes sur TI-82Stats/83/83+/84+, en faisant des tests pour la prochaine version d'un de mes programmes :;):

Si on calcule par exemple argument(1+i) (ou angle(1+i) en anglais), la réponse est 45 en mode degrés, ou la valeur approchée de Pi/4 en mode radians, ce qui est normal.

Si jamais on calcule l'argument d'un nombre réel négatif avec argument(-5) (ou angle(-5) en anglais), la réponse est la valeur approchée de Pi, quel que soit le mode degré ou radians. Donc notamment, si argument(-5) vaut Pi degrés, c'est aussi Pi²/180 radians, ce qui est ridicule.

Visuellement, l'utilisateur comprend tout-de-suite qu'il s'agit de Pi radians, mais un programme aura besoin d'un test supplémentaire pour pallier à ce bug.


Exemple en anglais, qui répond toujours selon le mode de la calculatrice:

:angle(z) // calcul de l'argument avec bug
:If 1r!=1 and Ans=Pi // si on est en mode degrés, et que la réponse est Pi (mauvaise réponse)
:180 // on remplace par 180



D'autres solutions sont possibles selon les besoin du programme.

Pour mon programme, il s'agissait de répondre toujours un angle en radians.
Donc je faisais la convertion valeur/180*Pi si on est en mode degrés.
Il ne faut donc pas faire cette conversion si la valeur initiale vaut Pi, sinon on se retrouve avec la superbe valeur de Pi²/180 radians.
Exemple en anglais:

:angle(z) // calcul de l'argument avec bug
:If 1r!=1 and Ans!=Pi // si on est en mode degrés, et que la réponse n'est pas Pi
:Ans*Pi/180 // on fait la convertion



Donc ça, c'est en attendant que Texas Instruments corrige ce bug visible et grave (calcul faux) dans la prochaine version du système 83+/84+. On peut attendre...

Re: bug calcul arguments 82/83/84

PostPosted: 22 Nov 2008, 14:16
by tama
effectivement, sur 84+ OS 2.43 ça le fait aussi ^^
et c'est bien un réel négatif, angle(-2i) donne le bon résultat :)


sur nSpire ça donne le bon résultat ?

Re: bug calcul arguments 82/83/84

PostPosted: 22 Nov 2008, 16:58
by critor
Tama: pas de problème sur TI-nSpire ( j'ai vérifié :;): et je m'en doutais )

Par contre, le même bug est toujours présent sur le clavier TI-84+ de la TI-nSpire, malgré une rom spécifique.


Tant que j'y étais, j'ai testé sur TI-85 et TI-86: aucun problème. :):


Et pour ceux qui ont encore des TI-80/81/82 (sans le stats), ne vous inquiétez pas: comme elles ne font pas les complexes, il n'y a pas de bug :#langue#:



Moi aussi comme Mic, je doute que Texas mette à jour son système pour les 83+/84+.
Et quand à ceux qui ont des 82Stats.fr ou compatibles, on ne peut pas les mettre à jour, et la correction (matérielle cette fois-ci, donc encore moins probable...) ne pourrait concerner que les nouveaux modèles vendus.

Re: bug calcul arguments 82/83/84

PostPosted: 22 Nov 2008, 21:16
by tama
bah ils pourraient petêtre sortir un nouvel OS, 2.44 ?
en tout cas, la version 2.43 date déjà de pas mal de temps ^^

Re: bug calcul arguments 82/83/84

PostPosted: 22 Nov 2008, 23:58
by critor
Pour Tama ->
En fait l'OS 2.44 pour TI-84+ existe.
C'est une version spéciale pour le clavier TI-84-nSpire.

A partir de la version 2.41:
- les numéros impairs du système sont pour la vraie TI-84+: 2.41, 2.43
- les numéros pairs du système sont pour le clavier TI-84-nSpire: 2.42, 2.44, 2.46

Donc si jamais un nouveau système devait sortir pour la vraie TI-84+, il serait probablement nommé 2.47, et simultanément sortirait la version 2.48 pour TI-84-nSpire.


En passant, j'ai pas essayé en vrai, mais mettre à jour une vraie TI-84+ avec une version prévue pour TI-84-nSpire est un assassinat :#ouin#:
Le système pour TI-84-nSpire semble donc contenir des instructions Z80 invalides, mais qui doivent être interprétées par l'émulateur de la TI-nSpire.

Re: bug calcul arguments 82/83/84

PostPosted: 23 Nov 2008, 11:21
by tama
critor2000> ahhhh ok ^^
mais pourquoi 2.47 ? y a aussi une 2.45 qui est sortie ? :)

Re: bug calcul arguments 82/83/84

PostPosted: 23 Nov 2008, 11:41
by critor
Mic -> j'ai pas testé en vrai pour ne pas bouziller une TI-84+ - j'ai testé sur plusieurs émulateurs avec la rom que j'ai pu dumper de mon clavier 84-nSpire (merci Mic :;): ): dans tous les cas l'émulateur plante avant même de pouvoir afficher l'écran d'accueil de la calculatrice (quand on l'allume la 1ère fois après un reset).

Tama - Je pense que les versions de système entre la TI-84+ et la TI-84-nSpire vont par paire: à quelques différences
2.41=2.42
2.43=2.44
Mais 2.46 est tout seul... Soit parce que la 2.45 existe mais n'a pas été rendue publique, soit parce que les modifications 2.44-2.46 ne concernent que des instructions spécifiques à l'émulateur TI-84-nSpire.
Donc il serait logique de sortir 2.47=2.48, si c'est le même bug qui est corrigé dans les deux.

Ce serait loin d'être la 1ère fois où TI saute des numéros :):

Re: bug calcul arguments 82/83/84

PostPosted: 23 Nov 2008, 23:43
by ced78fr
Ultra sylé ta découverte, bien joué :#spin#:

Ti à été prévenu ??

Re: bug calcul arguments 82/83/84

PostPosted: 24 Nov 2008, 12:33
by critor
En passant, j'ai testé sur émulateur avec la TI-83 système 1.02 (le plus ancien système compatible que j'ai pour la série 83/82Stats/83+/84+), et le bug y est présent.

Donc on se ballade avec ce bug depuis 1996...


Mais j'imagine bien ce qui doit se passer dans leur système: leur fonction angle() / argument() doit faire (pour accélérer) un cas particulier (mal géré) si le nombre est réel du style (à traduire en langage machine):

if imag(nombre)=0
then
0
if nombre0
Pi // voilà l'erreur!!!
else
if real(nombre)=0
then
Pi/2
if imag(nombre)0
-Ans
else
arctan(imag(nbr)/real(nbr)) // arctan gérant automatiquement le mode degrés/radians
if imag(nbr)0
-Ans
end
end



Bon, puisque tout-le-monde semble y tenir, j'ai écrit à TI France.

J'ai été agréablement surpris :D: de recevoir une réponse "humaine" (non automatique) en moins d'1 jour:

Cher Monsieur Andréani,

Merci d’avoir contacté Texas Instruments.

Nous vous remercions pour votre remarque, ce bug a été transmis au service de développement afin qu'il soit corrigé.
(...)


La suite est du copié/collé sans intérêt.


Quelle que soit la suite, je pense qu'il faut quand même louer la rapidité de réponse de TI.
Je connais d'autres sociétés, où l'on ne reçoit que des réponses automatisées ne tenant pas compte de ce qui est écrit (et encore, quand il y a des réponses...) :):

Re: bug calcul arguments 82/83/84

PostPosted: 05 Feb 2009, 01:22
by critor
Pour corriger quelque chose que j'ai dit plus haut...


Un élève m'a donné sa TI-84+ qu'il a fait tombée et dont l'écran est brisé (coulis noir en haut à gauche sur 1 ligne et demie + triangle isocèle blanc sur 2 lignes et demie en bas au milieu)

La pauvre n'ayant plus grand chose à perdre, je me suis amusé à lui envoyer l'OS de la 84+ nSpire (version 2.42 - je n'ai pas les fichiers 8Xu pour les autres versions nSpire 2.44 et 2.46).


Le transfert se passe apparemment normalement.

Mais à la fin, la calculatrice affiche qu'il y a eu une erreur, et demande l'envoi d'un nouvel OS.


Donc, puisque la calculatrice refuse l'OS, elle ne plante pas, contrairement à ce qui est supposé plus haut!!!
(cette calculatrice a un boot code en version 1.02... peut-être qu'avec le boot code 1.00 qui fait moins de vérifications ça passerait... pour le meilleur... ou pour le pire bat: )