Bonne nouvelle : si vous utilisez une TI-83 Premium CE ou TI-84 Plus CE, vous pouvez tout simplement utiliser la commande
toString(
(versChaîne(
en Français) depuis l'OS 5.2 Ce tutoriel s'applique au TI-Basic. ( source: http://tout82.free.fr/forum/sujet.php?sujet=2611 )
I. Convertir une Chaine en nombre
Si votre chaine contient une valeur calculable, c'est à dire un nombre, une expression, etc, vous pouvez facilement la récupérer dans une variable "réel" (alphabet) ou même dans Ans grâce à la commande expr().
- Code: Select all
:expr(Str1→A
La commande expr() peut se trouver dans le catalogue
II. Convertir un nombre en chaine
1) Méthode optimisée
Il n'existe ici pas de commande toute faite, nous allons devoir utiliser une méthode détournée via une commande de régression linéaire qui permet de stocker une valeur dans Y1, ainsi que la fonction Equ>String() qui sert à transformer une fonction Y1 en chaine.
Malheureusement, cette méthode est gourmande puisqu'elle utilise 2 listes et une fonction Y...
Si votre valeur à stocker est dans A, et que vous la voudriez dans Str1:
- Code: Select all
:{1,2}→L1
:{A,A}→L2
:LinReg(a+bx) L1,L2,Y1
:Equ>String(Y1,Str1)
:DelVar Y1
:ClrList L1,L2
:sub(Str1,1,length(Str1)-3)→Str1
Ce qui donne en version optimisée:
{1,2→G
{A,A→H
LinReg(a+bx) LG,LH,Y1
Equ>String(Y1,Str1
DelVar Y1DelVar LGDelVar LHsub(Str1,4,length(Str1)-3→Str1
J'ai remplacé ici les L1 et L2 par des listes G et H histoire de pas effacer L1 et L2 dont vous pouvez avoir besoin à d'autres endroits dans votre programme.
On ne peut malheureusement pas se passer de ces listes, la fonction réglin ayant besoin de noms de variables pour fonctionner.
2) Autre méthode
Cette seconde méthode à l'avantage de ne pas nécessiter autant de variables, et ne détruit pas l'écran graphique.
Par contre elle est plus lourde, et ne peut pas calculer des expressions.
Il s'agit de convertir manuellement chaque chiffre du nombre en chaine. Plusieurs routines peuvent se faire, celle ci gère tous les chiffres de 0 à 9, les nombres à virgule, et les négatifs.
- Code: Select all
:abs(A→B
:int(log(Ans+not(Ans→C
:"+
:If A<0:"-
:For(D,-1,12
:If C=D
:Ans+".
:Ans+sub("0123456789",1+int(10fPart(B10^(D-C))),1→Str1
:End
De même, celle ci convertit la valeur stockée dans A dans la chaine Str1.