[TI-Basic] À propos de expr(
+4
Hayleia
persalteas
nikitouzz
noelthebest
8 participants
Page 1 sur 2
Page 1 sur 2 • 1, 2
[TI-Basic] À propos de expr(
Hello,
en travaillant sur [Vous devez être inscrit et connecté pour voir ce lien], j'ai découvert un truc (que je n'ai trouvé nulle part) que j'ai trouvé assez intéressant.
Pour ceux qui ne connaissent pas, expr( est une commande assez géniale qui permet de transformer une chaîne de caractères en expression mathématique.
Ainsi, si je fais ceci :
alors la valeur de 2X-1 sera stockée dans N. Dans mon exemple X vaut 3 donc N = 2*3-1=5.
Du moins, c'était l'utilisation que je connaissais. Et la seule dont je n'aie jamais entendu parler.
Lorsque je travaillais sur mon projet, en gros mon code se résumait à ça dans certains types de calculs (très simples) :
Bon, c'est très raccourci, mais en gros c'était ça.
Le expr(Str1 c'est (pour le moment) pour les calculs qui sont "normaux", en gros ils peuvent être fais par la calculatrice sans problème.
Aujourd'hui (ce matin vers 11h), j'ai tapé par erreur L1 (la liste L indice 1).
Et là, qu'est-ce que je vois ? Je vois affiché 0.
Je regarde dans le menu mémoire, et là, stupeur...
Un liste LN s'était créée.
Ça alors ! La commande expr( peut aussi générer des listes ?
Pour en avoir le coeur net, je remplace N par un nom à plusieurs lettres, par exemple CASIO (complètement au hasard).
Et là, encore une fois, ça affiche 0, et je vois bien une liste LCASIO.
Est-ce que vous connaissiez ça ?
en travaillant sur [Vous devez être inscrit et connecté pour voir ce lien], j'ai découvert un truc (que je n'ai trouvé nulle part) que j'ai trouvé assez intéressant.
Pour ceux qui ne connaissent pas, expr( est une commande assez géniale qui permet de transformer une chaîne de caractères en expression mathématique.
Ainsi, si je fais ceci :
- Code:
:3->X
:expr("2X-1->N
alors la valeur de 2X-1 sera stockée dans N. Dans mon exemple X vaut 3 donc N = 2*3-1=5.
Du moins, c'était l'utilisation que je connaissais. Et la seule dont je n'aie jamais entendu parler.
Lorsque je travaillais sur mon projet, en gros mon code se résumait à ça dans certains types de calculs (très simples) :
- Code:
:Input "",Str1
: If [une condition]
: [...]
: Else
: expr(Str1->N
: End
: [...]
: Disp N
Bon, c'est très raccourci, mais en gros c'était ça.
Le expr(Str1 c'est (pour le moment) pour les calculs qui sont "normaux", en gros ils peuvent être fais par la calculatrice sans problème.
Aujourd'hui (ce matin vers 11h), j'ai tapé par erreur L1 (la liste L indice 1).
Et là, qu'est-ce que je vois ? Je vois affiché 0.
Je regarde dans le menu mémoire, et là, stupeur...
Un liste LN s'était créée.
Ça alors ! La commande expr( peut aussi générer des listes ?
Pour en avoir le coeur net, je remplace N par un nom à plusieurs lettres, par exemple CASIO (complètement au hasard).
- Code:
:Input "",Str1
: If [une condition]
: [...]
: Else
: expr(Str1->CASIO
: End
: [...]
: Disp CASIO
Et là, encore une fois, ça affiche 0, et je vois bien une liste LCASIO.
Est-ce que vous connaissiez ça ?
noelthebest- Platinum 1
- Sexe :
Age : 27
Messages : 1971
Date d'inscription : 12/03/2011
Etudes : ENS Cachan
Points Forum : 20
Points Concours : 9
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-83+.fr
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: [TI-Basic] À propos de expr(
hum tout le monde connait il y a juste toi qui connait pas.... ( ceci est une joke )
non serieusement je ne connaissait pas mais je ne trouve pas incroyable qu'il gere les liste, mais plutot qu'il les crée...
non serieusement je ne connaissait pas mais je ne trouve pas incroyable qu'il gere les liste, mais plutot qu'il les crée...
nikitouzz- Platinum 1
- Sexe :
Age : 29
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic 68K
- - TI-Basic Nspire
- - TI-73
- - TI-76.fr
- - TI-82 Stats.fr
- - TI-83+
- - TI-84+
- - TI-92
- - TI-Nspire
- - TI-Nspire CX
Re: [TI-Basic] À propos de expr(
ça ne vient pas de expr, ça vient de sto→.
Pour information, quand tu stocke une valeur dans un texte, ça crée une liste avec ce texte pour nom.
Démonstration:
:{1,2,3 →NOEL
:Disp LNOEL
La suite dans le prochain épisode.
persalteas- Platinum 2
- Sexe :
Age : 29
Messages : 2068
Date d'inscription : 30/06/2010
Etudes : PACES (médecine)
Points Forum : 114
Points Concours : 10
Langages :- - TI-Basic Z80
- - xLib
- - Grammer
- - TI-Basic Nspire
- - TI-82 Stats.fr
- - TI-83
- - TI-83+
- - TI-84+ SE
- - TI-86
- - TI-Nspire
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: [TI-Basic] À propos de expr(
bon et bien un truc supplémentaire dont je n’était pas informé
nikitouzz- Platinum 1
- Sexe :
Age : 29
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic 68K
- - TI-Basic Nspire
- - TI-73
- - TI-76.fr
- - TI-82 Stats.fr
- - TI-83+
- - TI-84+
- - TI-92
- - TI-Nspire
- - TI-Nspire CX
Re: [TI-Basic] À propos de expr(
Je connaissais expr() mais pas cette fonction de → qu'a décrite persalteas
Hayleia- Or 4
- Age : 30
Messages : 406
Date d'inscription : 03/08/2012
Points Forum : 46
Points Concours : 4
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-76.fr
- - TI-83+
- - TI-84+ SE
- - TI-Nspire CX
Re: [TI-Basic] À propos de expr(
Fallait venir sur tout82. Je l'ai apprise là bas et j'immagine la même chose pour persalteas.
Ce genre de petites choses cachées pourrait bien se glisser dans l'annexe d'un tuto comme le SiteDuZéro.
Ce genre de petites choses cachées pourrait bien se glisser dans l'annexe d'un tuto comme le SiteDuZéro.
linkakro- Or 4
- Sexe :
Age : 30
Messages : 768
Date d'inscription : 01/07/2010
Etudes : dut geii (elec/info)
Points Forum : 51
Points Concours : 8
Langages :- - TI-Basic Z80
- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - TI-82 Stats.fr
- - TI-84 Pocket.fr
Re: [TI-Basic] À propos de expr(
Lulz, pourquoi j'irais sur tout82 sachant que j'ai aucune calculette dont le nom commence par 82 ? [Vous devez être inscrit et connecté pour voir cette image]linkakro a écrit:Fallait venir sur tout82. Je l'ai apprise là bas et j'immagine la même chose pour persalteas.
Ce genre de petites choses cachées pourrait bien se glisser dans l'annexe d'un tuto comme le SiteDuZéro.
Non, c'est surtout que je code principalement en Axe maintenant, j'ai rien à faire sur tout82
Hayleia- Or 4
- Age : 30
Messages : 406
Date d'inscription : 03/08/2012
Points Forum : 46
Points Concours : 4
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-76.fr
- - TI-83+
- - TI-84+ SE
- - TI-Nspire CX
Re: [TI-Basic] À propos de expr(
Je connaissais le truc de persalteas (ce qui n'est pas SON truc hein).
Mais ce que je ne savais pas, c'est que expr pouvait renvoyer une liste, ce qui, avec du recul, est plutôt logique, si l'expression mathématique que comporte la chaîne a pour résultat une liste.
Mais ce que je ne savais pas, c'est que expr pouvait renvoyer une liste, ce qui, avec du recul, est plutôt logique, si l'expression mathématique que comporte la chaîne a pour résultat une liste.
noelthebest- Platinum 1
- Sexe :
Age : 27
Messages : 1971
Date d'inscription : 12/03/2011
Etudes : ENS Cachan
Points Forum : 20
Points Concours : 9
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-83+.fr
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: [TI-Basic] À propos de expr(
expr peut tout renvoyer, listes, matrices, complexes...
J'ai appris ce truc la par Sangohan sur Tout82.
J'ai appris ce truc la par Sangohan sur Tout82.
persalteas- Platinum 2
- Sexe :
Age : 29
Messages : 2068
Date d'inscription : 30/06/2010
Etudes : PACES (médecine)
Points Forum : 114
Points Concours : 10
Langages :- - TI-Basic Z80
- - xLib
- - Grammer
- - TI-Basic Nspire
- - TI-82 Stats.fr
- - TI-83
- - TI-83+
- - TI-84+ SE
- - TI-86
- - TI-Nspire
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: [TI-Basic] À propos de expr(
C'est ça que je n'avais jamais vu.
noelthebest- Platinum 1
- Sexe :
Age : 27
Messages : 1971
Date d'inscription : 12/03/2011
Etudes : ENS Cachan
Points Forum : 20
Points Concours : 9
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-83+.fr
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
mdr1- Or 1
- Sexe :
Age : 34
Messages : 124
Date d'inscription : 16/03/2011
Points Forum : 4
Points Concours : 0
Langages :- - TI-Basic Z80
- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic Nspire
- - Ndless Nspire
- - TI-82
- - TI-83+
- - TI-84 Pocket.fr
- - TI-Nspire CX
Re: [TI-Basic] À propos de expr(
Ça ne m'a rien appris.
noelthebest- Platinum 1
- Sexe :
Age : 27
Messages : 1971
Date d'inscription : 12/03/2011
Etudes : ENS Cachan
Points Forum : 20
Points Concours : 9
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-83+.fr
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
mdr1- Or 1
- Sexe :
Age : 34
Messages : 124
Date d'inscription : 16/03/2011
Points Forum : 4
Points Concours : 0
Langages :- - TI-Basic Z80
- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic Nspire
- - Ndless Nspire
- - TI-82
- - TI-83+
- - TI-84 Pocket.fr
- - TI-Nspire CX
Re: [TI-Basic] À propos de expr(
mdr1 fier de son tuto x]
Axenntio- Or 2
- Sexe :
Age : 27
Messages : 290
Date d'inscription : 15/09/2012
Etudes : TermS
Points Forum : 0
Points Concours : 0
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic Nspire
- - Lua Nspire
- - TI-Collège
- - TI-82 Stats.fr
- - TI-83+.fr
- - TI-84+ SE
- - TI-Nspire CAS
- - TI-Nspire CX
- - Casio Collège
Re: [TI-Basic] À propos de expr(
noelthebest a créé par accident une liste personnalisée (avec le L sous-entendu) et il a cru que c'était dû à expr. A côté de ça il savais se sevir de expr. C'est tout.mdr1 a écrit:Comment ça ? o_O
C'est quoi le délire avec ton expr dans ce cas qui "crée des listes" ?
Et il y a de quoi. C'est pour moi le tuto le plus fiable. Et il est valable pour la plupart des habitués comme aux débutants.Axenntio a écrit:mdr1 fier de son tuto x]
----
J'ai regardé la partie du tuto sur le stockage d'un guillemet dans une chaine, et j'ai été heurté par l'usage de Prompt :
Prompt ne conserve pas de guillemet lors de la saisie contrairement à Input.
Je viens de le vérifier sur 82statfr et 84plusse2.43. (et je le connaissais depuis longtemps)
Donc il faudrait corriger le code d'exemple donné dans le tuto (remplacer Prompt par Input) si je ne me suis pas trompé.
linkakro- Or 4
- Sexe :
Age : 30
Messages : 768
Date d'inscription : 01/07/2010
Etudes : dut geii (elec/info)
Points Forum : 51
Points Concours : 8
Langages :- - TI-Basic Z80
- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - TI-82 Stats.fr
- - TI-84 Pocket.fr
Re: [TI-Basic] À propos de expr(
@linkakro : merci.
Par contre, j'ai vérifié pour Prompt, je ne pense pas m'être trompé : pour saisir du texte avec une telle invite, on est obligé de mettre des guillemets sinon on a un "ERR : DATA TYPE", mais ces guillemets ne font pas partie de la chaine. Avec Input, comme les guillemets ne sont pas nécessaires, si on en met, il sont à l'intérieur de la chaine.
Par contre, j'ai vérifié pour Prompt, je ne pense pas m'être trompé : pour saisir du texte avec une telle invite, on est obligé de mettre des guillemets sinon on a un "ERR : DATA TYPE", mais ces guillemets ne font pas partie de la chaine. Avec Input, comme les guillemets ne sont pas nécessaires, si on en met, il sont à l'intérieur de la chaine.
mdr1- Or 1
- Sexe :
Age : 34
Messages : 124
Date d'inscription : 16/03/2011
Points Forum : 4
Points Concours : 0
Langages :- - TI-Basic Z80
- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic Nspire
- - Ndless Nspire
- - TI-82
- - TI-83+
- - TI-84 Pocket.fr
- - TI-Nspire CX
Re: [TI-Basic] À propos de expr(
Nous ne nous comprenons pas. Tu dis de taper UN guillemet.mdr1 sur le Site Du Zéro a écrit::Prompt Str1
:Disp Str1
et que l'utilisateur tape un guillemet, le programme répondra en affichant… un guillemet. Vous êtes donc bien d'accord que la chaine a enregistré un guillemet.
Pour le vérifier, faites 2nd STO→ | RCL Str1 (le Str1 se trouve en faisant VARS 7 1), et """ vient s'insérer au niveau du curseur. Les deux guillemets tout à gauche et tout à droite représentent les délimitations de la chaine de caractères, et le guillemet au milieu, son contenu.
Je tape UN guillemet j'obtient <<>> et <<"">> c'est-à-dire une chaine vide. Cela se confirme avec la la fonction longueur() qui renvoie 0.
Quand je tape DEUX guillemets j'obtiens la même chose.
Quand je tape TROIS guillemets j'obtiens une erreur syntaxe -> il ne trouve pas la délimitation de la chaîne.
Tandis que Input fonctionne partout en stockant exactement ce qu'on a saisit et en se comportant exactement comme ce que tu as décris. (<<">> et <<""">>)
linkakro- Or 4
- Sexe :
Age : 30
Messages : 768
Date d'inscription : 01/07/2010
Etudes : dut geii (elec/info)
Points Forum : 51
Points Concours : 8
Langages :- - TI-Basic Z80
- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - TI-82 Stats.fr
- - TI-84 Pocket.fr
Re: [TI-Basic] À propos de expr(
Il y a une erreur, en effet, mais qui ne se répète pas par la suite où c'est Input qui est utilisé.
Mais en revanche, ceci :
est vrai. C'est le code qui est faux et il faut remplacer Prompt par Input.
Mais en revanche, ceci :
- Code:
Prompt ne conserve pas de guillemet lors de la saisie contrairement à Input.
est vrai. C'est le code qui est faux et il faut remplacer Prompt par Input.
mdr1- Or 1
- Sexe :
Age : 34
Messages : 124
Date d'inscription : 16/03/2011
Points Forum : 4
Points Concours : 0
Langages :- - TI-Basic Z80
- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic Nspire
- - Ndless Nspire
- - TI-82
- - TI-83+
- - TI-84 Pocket.fr
- - TI-Nspire CX
Re: [TI-Basic] À propos de expr(
A vrai dire il y a une autre manière encore de créer des listes, même si c'est plutôt un bug en fait:
"phrase"->LISTE marchera et créera une liste de taille zéro, sauf que si vous faite "dim(lListe)" vous aurez une "ERREUR : DATA TYPE" étrange non ?
et si je ne dis pas de bétises on peux faire la version courte: "->LISTE
"phrase"->LISTE marchera et créera une liste de taille zéro, sauf que si vous faite "dim(lListe)" vous aurez une "ERREUR : DATA TYPE" étrange non ?
et si je ne dis pas de bétises on peux faire la version courte: "->LISTE
maxence- Or 4
- Sexe :
Age : 28
Messages : 574
Date d'inscription : 26/02/2012
Etudes : 1ere S SI
Points Forum : 17
Points Concours : 0
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-84+
Re: [TI-Basic] À propos de expr(
Ce n'est toujours pas un pur bug : c'est parce que tu peux associer une équation à une liste.
"2L1"->L2
Non seulement L2=2L1 mais en plus L2 est recalculée à chaque appel en fonction L1. C'est comme si elle se mettait à jour en temps réel.
On la refait avec les listes personnalisées et on arrive à ce que tu décris.
"TEXTE"->LISTE
génère lLISTE et lui associe l'équation "TEXTE"
Cette équation n'est pas une liste d'où erreur datatype dès le calcul.
"2L1"->L2
Non seulement L2=2L1 mais en plus L2 est recalculée à chaque appel en fonction L1. C'est comme si elle se mettait à jour en temps réel.
On la refait avec les listes personnalisées et on arrive à ce que tu décris.
"TEXTE"->LISTE
génère lLISTE et lui associe l'équation "TEXTE"
Cette équation n'est pas une liste d'où erreur datatype dès le calcul.
linkakro- Or 4
- Sexe :
Age : 30
Messages : 768
Date d'inscription : 01/07/2010
Etudes : dut geii (elec/info)
Points Forum : 51
Points Concours : 8
Langages :- - TI-Basic Z80
- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - TI-82 Stats.fr
- - TI-84 Pocket.fr
Re: [TI-Basic] À propos de expr(
ouaaaaaaouuu je ne savais pas cela linkaro un grand merci c'est super utile
nikitouzz- Platinum 1
- Sexe :
Age : 29
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic 68K
- - TI-Basic Nspire
- - TI-73
- - TI-76.fr
- - TI-82 Stats.fr
- - TI-83+
- - TI-84+
- - TI-92
- - TI-Nspire
- - TI-Nspire CX
Re: [TI-Basic] À propos de expr(
Tout cela est dans mon tuto.
Il y a tout... et même un peu plus que tout (voir la partie "Aller plus loin").
Il y a tout... et même un peu plus que tout (voir la partie "Aller plus loin").
mdr1- Or 1
- Sexe :
Age : 34
Messages : 124
Date d'inscription : 16/03/2011
Points Forum : 4
Points Concours : 0
Langages :- - TI-Basic Z80
- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic Nspire
- - Ndless Nspire
- - TI-82
- - TI-83+
- - TI-84 Pocket.fr
- - TI-Nspire CX
Re: [TI-Basic] À propos de expr(
oui mais n'etant plus programmeur Basic, cela me sert a rien d'allez lire ton tuto...
surtout que j'ai le tuto Axe a finir de rediger donc plus le temps
surtout que j'ai le tuto Axe a finir de rediger donc plus le temps
nikitouzz- Platinum 1
- Sexe :
Age : 29
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic 68K
- - TI-Basic Nspire
- - TI-73
- - TI-76.fr
- - TI-82 Stats.fr
- - TI-83+
- - TI-84+
- - TI-92
- - TI-Nspire
- - TI-Nspire CX
Re: [TI-Basic] À propos de expr(
Je ne le savais pas non plus
- Spoiler:
- Mais je ne vais pas aller lire ton tuto pour ça :D
J'ai essayé d'apprendre a programmer avec des tutos (en Axe et en C) résultat ça a fail, alors que sans tuto (Basic, Celtic, Grammer) j'ai réussi ! Dingue non ? Oui je suis bizarre :P
persalteas- Platinum 2
- Sexe :
Age : 29
Messages : 2068
Date d'inscription : 30/06/2010
Etudes : PACES (médecine)
Points Forum : 114
Points Concours : 10
Langages :- - TI-Basic Z80
- - xLib
- - Grammer
- - TI-Basic Nspire
- - TI-82 Stats.fr
- - TI-83
- - TI-83+
- - TI-84+ SE
- - TI-86
- - TI-Nspire
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: [TI-Basic] À propos de expr(
Moi aussi, j'ai suivi plusieurs tutos en ASM ça a raté alors qu'en Basic et en Axe, j'ai pas suivi de tutos sérieusement (juste pour l'Axe, j'ai lu les deux premières pages du tuto de Kinder mais comme c'est pour les complets débutants (genre avec des blagues sur Sprite quoi ), j'ai vite laissé tombé le tuto pour commencer à coder avec mes pieds [Vous devez être inscrit et connecté pour voir cette image]persalteas a écrit:Je ne le savais pas non plus
(spoiler)Mais je ne vais pas aller lire ton tuto pour ça :D
J'ai essayé d'apprendre a programmer avec des tutos (en Axe et en C) résultat ça a fail, alors que sans tuto (Basic, Celtic, Grammer) j'ai réussi ! Dingue non ? Oui je suis bizarre :P (/spoiler)
Hayleia- Or 4
- Age : 30
Messages : 406
Date d'inscription : 03/08/2012
Points Forum : 46
Points Concours : 4
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-76.fr
- - TI-83+
- - TI-84+ SE
- - TI-Nspire CX
Page 1 sur 2 • 1, 2
Sujets similaires
» [Basic] A propos du TI-Concours, tour 1
» Token IDE: logiciel de dévellopement de Basic étendu (Basic, Axe, Grammer, Celtic, Xlib, Omnicalc, DoorcsCS7)
» À propos de WabbitCode.... (appel à l'aide)
» [BASIC] tunnel probleme
» rapidité en basic
» Token IDE: logiciel de dévellopement de Basic étendu (Basic, Axe, Grammer, Celtic, Xlib, Omnicalc, DoorcsCS7)
» À propos de WabbitCode.... (appel à l'aide)
» [BASIC] tunnel probleme
» rapidité en basic
Page 1 sur 2
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum