π
<-

Structure d'une expression

Pour le TI-Basic sur Nspire

Structure d'une expression

Message non lude AnToX98 » 11 Oct 2013, 11:15

Je me suis lancé il y a quelques jours dans la conception d'un programme qui pourrais m'être très utile pour la suite.
Il s'agit d'un programme qui donne la structure d'une expression dans une liste, et qui en sépare les parties en fonction des additions (et non des multiplications)

Déjà, petite question parceque il serait inutile de programmer ceci pour rien : il existe une fonction qui fait tout ce travail automatiquement ?

Si elle n'existe pas, voici le code de mon petit programme qui utilise la fonction part:

Code: Tout sélectionner
Define stru(ex)=
Prgm
:struct:={}
:dec:=ex
:While part(dec)=2
:p:={part(dec,1),part(dec,2)}
:struct[dim(struct)+1]:=p[2]
:If part(p[1])=2 Then
:dec:=p[1]
:Else
:struct[dim(struct)+1]:=p[1]
:Exit
:EndIf
:EndWhile
:struct:=rotate(struct)
:EndPrgm


Mais je voudrais enfaite que le programme ne sépare pas l'expression quand c'est une multiplication :

Image

Sinon, si vous avez une manière plus simple de le faire, je vous écoute.

Merci de votre aide
Avatar de l’utilisateur
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 75.5%
 
Messages: 1022
Images: 15
Inscription: 19 Mai 2013, 16:54
Localisation: Paris, France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1ere S

Re: Structure d'une expression

Message non lude NspireCas » 11 Oct 2013, 14:26

Voici le code :
Code: Tout sélectionner
Define stru(f)=
Prgm
:polyCoeffs(f)→k
:Disp k
:EndPrgm

du moins si j'ai bien compris ta question...
Ici, stru(3*x+2*x^(2)) renvoit {2,3,0}, ce n'est pas exactement ce que tu veux... (tu pourrais modifier à coups de left pour que ça affiche {2x^2,3x,0}

Peut-on savoir quand ce programme sert-il, je ne comprends pas vraiment l'intérêt ?
Aussi, pourrais-tu nous donner un exemple, par exemple si la fonction est 2x^2+3x-5, ce qu'elle devrait afficher ?
Avatar de l’utilisateur
NspireCasModo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 6.4%
 
Messages: 1304
Images: 7
Inscription: 04 Oct 2012, 20:44
Localisation: Paris
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -

Re: Structure d'une expression

Message non lude davidElmaleh » 11 Oct 2013, 16:57

Pour compléter le programme de Nspirecas et ainsi avoir ce que tu veux, voici un autre programme :
Code: Tout sélectionner
Define struct(f,var)=
Prgm
:Local k,i
:polyCoeffs(f,var)→k
:For i,0,polyDegree(f,var)
:  k[i+1]:=var^(polyDegree(f,var)-i)*k[i+1]
:EndFor
:Disp k
:EndPrgm
Image
Avatar de l’utilisateur
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 19.6%
 
Messages: 409
Images: 9
Inscription: 14 Oct 2012, 23:30
Localisation: Paris 19
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PSI*

Re: Structure d'une expression

Message non lude critor » 11 Oct 2013, 17:34

Cela aurait pu être fort utile pour un programme de calculs/simplifications par étapes, si hélas la TI-Nspire ne simplifiait pas déjà toute seule au maximum tout argument passé à un tel programme, qui n'aurait donc plus grand chose à simplifier... :(
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 54.7%
 
Messages: 42524
Images: 17388
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Structure d'une expression

Message non lude davidElmaleh » 11 Oct 2013, 17:43

dans ce cas, ne serai-ce-t-il pas possible d'entrer les arguments grace à un RequestStr, ainsi, les variables sont stockées en String et la Nspire ne simplifie pas :)
Image
Avatar de l’utilisateur
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 19.6%
 
Messages: 409
Images: 9
Inscription: 14 Oct 2012, 23:30
Localisation: Paris 19
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PSI*

Re: Structure d'une expression

Message non lude Adriweb » 11 Oct 2013, 17:44

Sauf qu'alors, il te faut toi-même parser la chaîne...

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

Re: Structure d'une expression

Message non lude davidElmaleh » 11 Oct 2013, 17:45

c'est vrai que c'est difficil mais entreprenable (perso, je ne m'y aventurespas :p )
Image
Avatar de l’utilisateur
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 19.6%
 
Messages: 409
Images: 9
Inscription: 14 Oct 2012, 23:30
Localisation: Paris 19
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PSI*

Re: Structure d'une expression

Message non lude AnToX98 » 11 Oct 2013, 17:47

Oui critor c'est pour ce genre de programme.
archives_voir.php?id=536
Dans ce programme de Philippe fortin, il y a un programme pour trouver la structure, ce qui permet de donner la dérivée d'une fonction pas à pas.

Ce que vous n'avez pas encore compris, c'est que polyCoeffs n'a rien n'a voir la dedans, puisque polyCoeffs ne concerne que les polynomes, la je parle d'expressions generales.
En gros, si je fais struc(-3x^2+(1/x)-sqrt(2)*2), le programme me crée une liste struct de la forme :
struct:={-3x^2,(1/x),-sqrt(2)*2}
Avatar de l’utilisateur
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 75.5%
 
Messages: 1022
Images: 15
Inscription: 19 Mai 2013, 16:54
Localisation: Paris, France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1ere S

Re: Structure d'une expression

Message non lude Lionel Debroux » 11 Oct 2013, 18:06

En BASIC, la façon classique est d'utiliser des fonctions comme part().
En code natif, ça se ferait en itérant avec next_expression_index et éventuellement quelques helpers, comme sur TI-68k/AMS...
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.4%
 
Messages: 6875
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Structure d'une expression

Message non lude Bisam » 11 Oct 2013, 23:23

La fonction "part()" est parfaite pour ce que tu veux mais tu ne l'utilises pas à fond !
Tu peux l'utiliser de 3 façons :
- sans argument, elle renvoie le nombre d'opérandes d'une expression, de 0 à 4 pour les opérateurs usuels, et autant qu'on veut si c'est une liste (ou une matrice)
- avec l'argument 0, elle renvoie l'opérateur principal de l'expression sous forme de chaîne de caractère (avec le cas d'exception où il n'y a pas d'opérateur, auquel cas, elle renvoie la variable ou le nombre correspondant)
- avec l'argument n différent de 0, elle renvoie le n-ème argument de cet opérateur

Tu peux donc tester si l'opérateur est une addition ou non...
Avatar de l’utilisateur
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 69.6%
 
Messages: 5670
Inscription: 11 Mar 2008, 00:00
Localisation: Lyon
Genre: Homme
Calculatrice(s):
MyCalcs profile

Suivante

Retourner vers Nspire-Basic

Qui est en ligne

Utilisateurs parcourant ce forum: ClaudeBot [spider] et 9 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Ndless for CX 4.5.5 / CX II 6.2.0
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 !
12345
-
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.
4110 utilisateurs:
>4071 invités
>32 membres
>7 robots
Record simultané (sur 6 mois):
43991 utilisateurs (le 10/09/2025)
-
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)