π
<-
Chat plein-écran
[^]

[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.

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
Persalteas
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 94.7%
 
Posts: 2336
Images: 113
Joined: 04 Feb 2010, 00:00
Location: Evry (France)
Gender: Male
Calculator(s):
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 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 67.3%
 
Posts: 695
Images: 21
Joined: 14 Sep 2011, 12:29
Gender: Male

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,
Anonymous
? Avant de poster sur le chat et sur le forum, n'oublie pas de . 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: 62.7%
 
Posts: 2933
Images: 37
Joined: 25 Feb 2013, 16:21
Location: Toulouse
Gender: Male
Calculator(s):
Class: Etudiant ingénieur (dernière année)
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 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 0%
 
Posts: 2
Joined: 06 Jun 2018, 19:53
Gender: Not specified
Calculator(s):
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: 10.7%
 
Posts: 2466
Images: 1
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
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...
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 52.9%
 
Posts: 12812
Images: 1083
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Class: (ingénieur)
Twitter: adriweb
GitHub: adriweb


Return to Tutoriaux

Who is online

Users browsing this forum: No registered users and 1 guest

-
Search
-
Featured topics
Omega, le fork étendant les capacités de ta NumWorks, même en mode examen !
Comparaisons des meilleurs prix pour acheter sa calculatrice !
12
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

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 
-
Stats.
450 utilisateurs:
>434 invités
>10 membres
>6 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)