Page 1 of 2

Tester le type de Ans

Unread postPosted: 21 May 2014, 22:14
by Soulthym
Salut à tous, y aurait-il un moyen optimisé de tester le type de variable que contient ans?(un token, un nombre, une chaine, ou autre)
Merci d'avance

Re: Tester le type de Ans

Unread postPosted: 22 May 2014, 16:36
by m@thieu41
Hey!
Désolé, mais c'est impossible en ti basic (sinon je ne vois pas comment).
En asm par contre c'est possible.

Re: Tester le type de Ans

Unread postPosted: 23 May 2014, 06:49
by Soulthym
Bon tant pis, je vais tenter de contourner le problème.
Merci de la réponse rapide :).
Edit: Le lancement d'un programme modifie t-il la valeur de Ans ou bien est-ce à la fin de ce dernier que cette valeur est modifiée?

Re: Tester le type de Ans

Unread postPosted: 26 May 2014, 15:52
by grosged
Le fait de lancer un programme ne modifie pas le contenu de Ans
Quand un programme est lancé, c'est plutôt en fonction de son contenu que sera modifié (ou non) Ans

Par exemple, des instructions comme PRGM, ClrHome , Delvar, If ... n'altèrent pas Ans

Re: Tester le type de Ans

Unread postPosted: 26 May 2014, 17:29
by m@thieu41
En fait, Ans est modifié par toute ligne de calcul qui aurait pu être stockée dans une variable, peut importe laquelle: nombre, chaine, liste, matrice, image... Bref, toute ligne à laquelle tu peux mettre un sto (->) verra son résultat stocké dans Ans.
Seule exception que je connaisse: Si tu affiches une variable (ou calcul peut importe) quelconque avec Pause, ça sera aussi stocké dans Ans.

Re: Tester le type de Ans

Unread postPosted: 26 May 2014, 18:48
by grosged
bonne définition, Mathieu ;)
à propos d'exception, j'ai trouvé aussi celle-ci :
on mets par exemple Pi dans Ans
puis (par exemple) "123+456 → Y1
hé bien Ans contient toujours Pi !!

Re: Tester le type de Ans

Unread postPosted: 26 May 2014, 19:07
by m@thieu41
Je viens de tester, effectivement les fonctions ne passent pas dans Ans. Tout comme les images et GBD.
En fait ça parait logique, puisque les variables de fonctions, GBD et images ne peuvent pas être stockées avec sto (->) dans une autre variable de même type.
Ex qui ne marchent pas:
Y1->Y2
Img1->Img2
GBD1->GBD2

Le cas surprenant est celui que tu indiques:
"fonction->Y1
qui n'affecte pas Ans... On pourrait s'attendre à ce que Ans contienne, sinon une fonction du moins une chaine donnant l'expression de la fonction.
Mais je suppose que "...->Y1 s'apparente (du point de vu interprétation par le langage) de la fonction Str>Equ(Chaine,Equation), qui elle ne renvoi rien dans Ans. D'où peut être le fait que cet exemple ne modifie pas Ans?

Re: Tester le type de Ans

Unread postPosted: 26 May 2014, 20:47
by grosged
mmm, y a certainement un lien avec String►Equ(


Tiens ! Encore une autre bizarerrie : "UN,DEUX,→TROIS >:]
Ans contiendra la chaîne "UN,DEUX," ...et le reste , la TI s'en moque !..enfin pas tant que ça , car...
"UN,DEUX,→ donne une erreur
"UN,DEUX,→QUATRE donne aussi une erreur (car plus de 5 lettres :~o )

C'est plutôt "space" , nan !? :D

Re: Tester le type de Ans

Unread postPosted: 26 May 2014, 21:15
by m@thieu41
En fait... Pas tant que ça :p

Si tu fais:
"expression->Liste
Ca va lier la liste à l'expression dont il est question avec l'expression. ;)
Ex:
"2L1->L2
L2 vaudra toujours 2*L1, même si on modifie L1 (L2 est calculée quand on l'appelle), et ce jusqu'à modification de L2.

De plus:
Liste->NOM
stockera la Liste dans une liste personnalisée nommée NOM (créée au besoin), donc le petit L précédant le nom pour dire qu'il s'agit d'une liste est facultatif.

Donc:
"UN,DEUX->TROIS
stocke l'expression "UN,DEUX" dans la liste nommée TROIS, sans vérification de validité.

Par contre: :p
Ans contient bien la chaine, et non pas une expression liée à une liste, ce qui peut paraitre surprenant, si on compare avec la commande "expression->fonction, qui ne modifiait pas Ans.
Manque de cohérence? :D

Re: Tester le type de Ans

Unread postPosted: 26 May 2014, 21:23
by grosged
hé bien ça alors !!! :=): bien sur , je connaissais l'association d'une expression/formule à une liste
mais j'avais pas du tout fait le rapprochement ! héhé :troll:
Y a plus d' mystère alors ! :'( ... :D
Merci pour cet éclaircissement ;)