π
<-

[Tuto] Conversions Nombre <--> Chaine

Regroupement de tous les tutoriaux z80 (82/83/84)

[Tuto] Conversions Nombre <--> Chaine

Unread postby Persalteas » 07 May 2013, 10:45

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 :f21: :f101:

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.
User avatar
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 6.2%
 
Posts: 2337
Images: 113
Joined: 04 Feb 2010, 00:00
Location: Evry (France)
Gender: Male
Calculator(s):
MyCalcs profile
Class: PhD candidate, Bioinformatics

Re: [Tuto] Conversions Nombre <--> Chaine

Unread postby grosged » 16 Mar 2014, 09:41

Très intéressant tout ça :)
Astucieux de passer par LinReg ! (j'avais essayé de placer directement dans Y1... sans succès)
Il se trouve que, dans le cadre de "la suite du geek", j'ai pendant un temps réfléchi sur cette fonction de conversion nb->chaîne qui fait cruellement défaut.
Des 2 méthodes, c'est la 1ère la + rapide?
User avatar
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 30.2%
 
Posts: 770
Images: 75
Joined: 14 Sep 2011, 12:29
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: [Tuto] Conversions Nombre <--> Chaine

Unread postby Wistaro » 24 May 2014, 20:27

Sympa ! ;-)

La conversion nombre/chaîne avec la régression linéaire je connaissais déjà, je m'en suis servi dans le programme de la factorielle et de la suite du geek.
En revanche pour effectuer la conversion chaîne/nombre, je passais également par les variables d'équations, et ensuite par la fonction EquString().

J'ignorais qu'une fonction été déjà prévue pour cela^^
Nouveau sur le site, ClaudeBot [spider] ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
User avatar
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 88.4%
 
Posts: 3183
Images: 37
Joined: 25 Feb 2013, 16:21
Location: Toulouse
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingénieur en électronique
YouTube: Wistaro
Twitter: Wistaro
GitHub: Wistaro

Re: [Tuto] Conversions Nombre <--> Chaine

Unread postby Alexi » 10 Jun 2018, 11:51

Je voulais savoir si il était possible de convertir une lettre ; par exemple un "A" en nombre afin de le stocker dans une liste je voudrais ainsi enrengistrer un mot de passe d'un utilisateur et sachant qu'on peut créer des listes mais pas des chaines je suis obligé de convertir en nombre pour pouvoir stocker le mot de passe et l'identifiant dans des listes.

Merci d'avance pour vos réponses :D
User avatar
Alexi
Niveau 1: MD (Membre Débutant)
Niveau 1: MD (Membre Débutant)
Level up: 60%
 
Posts: 2
Joined: 06 Jun 2018, 19:53
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: 1ère S

Re: [Tuto] Conversions Nombre <--> Chaine

Unread postby Hayleia » 10 Jun 2018, 13:04

http://tibasicdev.wikidot.com/instring
Notamment cette partie :
Advanced Uses

You can use inString( to convert a character to a number. For example:
:inString("ABCDEFGHIJKLMNOPQRSTUVWXYZ",Str1→N

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar

Re: [Tuto] Conversions Nombre <--> Chaine

Unread postby Adriweb » 10 Jun 2018, 14:38

J'ai rajouté un bandeau au post principal, par rapport au toString des CE...

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: 78.9%
 
Posts: 14746
Images: 1119
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb


Return to Tutoriaux

Who is online

Users browsing this forum: ClaudeBot [spider] and 4 guests

-
Search
-
Social TI-Planet
-
Featured topics
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 !
1234
-
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.
1077 utilisateurs:
>1003 invités
>67 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
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)