π
<-
Chat plein-écran
[^]

[Tuto] Conversions Nombre <--> Chaine

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

[Tuto] Conversions Nombre <--> Chaine

Message non lude Persalteas » 07 Mai 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: Tout sélectionner
: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: Tout sélectionner
:{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: Tout sélectionner
: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.
Avatar de l’utilisateur
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 6.2%
 
Messages: 2337
Images: 113
Inscription: 04 Fév 2010, 00:00
Localisation: Evry (France)
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PhD candidate, Bioinformatics

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

Message non lude 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?
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

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

Message non lude Wistaro » 24 Mai 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, Anonymous ? 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!
Avatar de l’utilisateur
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 87.5%
 
Messages: 3153
Images: 37
Inscription: 25 Fév 2013, 16:21
Localisation: Toulouse
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur en électronique
YouTube: Wistaro
Twitter/X: Wistaro
GitHub: Wistaro

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

Message non lude Alexi » 10 Juin 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
Avatar de l’utilisateur
Alexi
Niveau 1: MD (Membre Débutant)
Niveau 1: MD (Membre Débutant)
Prochain niv.: 60%
 
Messages: 2
Inscription: 06 Juin 2018, 19:53
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: 1ère S

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

Message non lude Hayleia » 10 Juin 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
Avatar de l’utilisateur
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 43.8%
 
Messages: 2509
Images: 2
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Templar

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

Message non lude Adriweb » 10 Juin 2018, 14:38

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

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...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.1%
 
Messages: 14606
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb


Retourner vers Tutoriaux

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 15 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1220 utilisateurs:
>1209 invités
>6 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)