π
<-
Chat plein-écran
[^]

arguments d'une fonction

Pour le TI-Basic sur Nspire

arguments d'une fonction

Message non lude kadtexas » 22 Mai 2017, 17:44

Bonjour

La fonction binomPdf(n,p,x), x facultatif, on peut l'appeler avec deux ou trois arguments selon le cas. Je trouve que c'est pratique.

Peut-on programmer en basic TI nspire une fonction avec m arguments et l'appeler avec m-1 arguments selon le cas ?
Merci pour des réponses.
Avatar de l’utilisateur
kadtexas
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 73.8%
 
Messages: 283
Inscription: 29 Jan 2015, 19:32
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: etudiant

Re: arguments d'une fonction

Message non lude clifward » 22 Mai 2017, 17:53

Je ne connais pas de moyen pour procéder "normalement".
En revanche, tu peux faire : ta_fonction(a)
et ensuite t'en servir en envoyant une liste, au lieu de plusieurs valeurs.
ta_fonction({truc,truc2,...,n trucs})

Dans le cas de la fonction binomPdf(n,p,x), cela donnerait au niveau du code :

binomPdf(a)
if dim(a)<2
disp "Erreur : Il n’y a pas assez d’arguments"
if dim(a)=2 then
...
endif
if dim(a)=3 then
...
endif
if dim(a)>3
"Erreur : Il y a trop d’arguments"
Image
Avatar de l’utilisateur
clifwardMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 26.4%
 
Messages: 593
Images: 6
Inscription: 20 Sep 2015, 17:50
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: CentraleSupelec

Re: arguments d'une fonction

Message non lude Hamza.S » 22 Mai 2017, 18:28

salut,

oui j'avais pensais à un truc comme le tien mais lorsque tu as une liste ou matrice en 3ième argument c'est mort :bigeek:
il faudra penser à un moyen pour éviter cela sinon il faudra faire le calcul plusieurs fois.

(en Lua c'est possible de faire les 2 propositions, arguments optionnelles et utiliser des listes dans une liste, mais ça c'est une toute autre histoire)
Image
Avatar de l’utilisateur
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 28.5%
 
Messages: 4464
Images: 18
Inscription: 07 Nov 2014, 00:43
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: arguments d'une fonction

Message non lude clifward » 22 Mai 2017, 18:33

Ouais, bon, si tu as une liste à mettre (de manière optionnelle), tu fais un request et puis basta...
(Si la liste est pas optionnelle, contrairement aux autres valeurs, il est possible de faire ta_fonction(a,b), avec a la liste, et b les arguments optionnels)
Image
Avatar de l’utilisateur
clifwardMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 26.4%
 
Messages: 593
Images: 6
Inscription: 20 Sep 2015, 17:50
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: CentraleSupelec

Re: arguments d'une fonction

Message non lude Adriweb » 23 Mai 2017, 11:48

En théorie, on peut arranger des choses en mixant Basic et Lua :

Tu mets tes arguments dans des variables Basic genre "arg1", "arg2", "arg3", etc.
Tu appelles une fonction Basic par exemple lua_basic_func("maSuperFonction", 3) qui va modifier une variable "flag" monitorée par le Lua tout en ayant mis ses deux paramètres (quelle fonction exécuter, et combien d'arguments) quelque part.
Le script Lua prend le relai dès qu'elle voit que le flag a bougé, exécute le calcul selon les entrées passées, puis stocke le résultat quelque part dans une autre variable Basic.

Il suffit ensuite de demander la valeur dudit résultat.

Tordu, certes, mais ca fonctionne.
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.2%
 
Messages: 14616
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: arguments d'une fonction

Message non lude clifward » 23 Mai 2017, 14:27

Pourquoi faire simple quand on peut faire compliqué, n'est-ce pas Adriweb ? :p

Si passer par des arguments a pour objectif de facilement récupérer les valeurs entrées précédemment (pour une liste par exemple), il est possible d'utiliser une variable global derrière le request... Comme ça, lorsque le request est "exécuté", il affichera la liste entrée juste avant...

De même, si c'est pour une fonction (et non pas un programme), il est possible d'utiliser une variable globale pour stocker une liste, en plus des arguments "classiques" (nettoyée ou non à la fin de l’exécution du programme).

Certes, ça donne de mauvaises habitudes, c'est pas très bien de faire comme ça, mais c'est un bidouillage qui fonctionne...
Image
Avatar de l’utilisateur
clifwardMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 26.4%
 
Messages: 593
Images: 6
Inscription: 20 Sep 2015, 17:50
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: CentraleSupelec

Re: arguments d'une fonction

Message non lude Adriweb » 23 Mai 2017, 21:12

Certes.
En fait c'est Hamza et sa mention du Lua qui m'a fait pensé à tout ça. Effectivement, pas besoin d'aller chercher aussi complexe :P (sauf si ce sont de très gros calculs qui se ferait plus rapidement en Lua)
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.2%
 
Messages: 14616
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: arguments d'une fonction

Message non lude kadtexas » 24 Mai 2017, 16:28

Bonjour à tous et merci pour les réponses.
Pour le Lua je ne connais rien.

Certes, ça donne de mauvaises habitudes, c'est pas très bien de faire comme ça, mais c'est un bidouillage qui fonctionne...

ça marche pour moi et j'aurai bien aimer que vous jetiez un coup d'oeil ci dessous.

Code: Tout sélectionner
Define LibPub floibinom(list)=
Func
:Local s,i
:©Appel: floibinom(n,p,k) Calcul de P(X=k)
:©Appel: floibinom(n,p,kmin,kmax) Calcul de P(X<k),P(X>k), P(kmin<X<kmax)
:s:=0
:If dim(list)=3 Then
: binomPdf(a[1],a[2],a[3])→s
: Return s
:EndIf
:If dim(list)=4 Then
: For i,a[3],a[4]
:  binomPdf(a[1],a[2],i)+s→s
: EndFor
: Return s
:EndIf
:EndFunc


je n'ai pas compris:
De même, si c'est pour une fonction (et non pas un programme), il est possible d'utiliser une variable globale pour stocker une liste, en plus des arguments "classiques" (nettoyée ou non à la fin de l’exécution du programme).
Avatar de l’utilisateur
kadtexas
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 73.8%
 
Messages: 283
Inscription: 29 Jan 2015, 19:32
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: etudiant

Re: arguments d'une fonction

Message non lude clifward » 24 Mai 2017, 16:29

Utilise les balises [ code ], sinon c'est pas très lisible :p

Pourquoi a[n] ? ça devrait pas être list[n] ?

(et tu es bien conscient que ce que fait ton programme, une fonction déjà dédiée à ça existe sur nspire ? : binomCdf(n,p,min,max) )

En fait, dans des fonctions, tu ne peux pas faire de request... Donc à part les arguments de ta fonction, tu ne peux rien avoir de plus.
Mon idée était de faire :

a:={1,3,78,9,5}
Code: Tout sélectionner
Define fonc(b,c,...,n)=
Func
if dim(a)=... then
...
endif
if dim(a)=... then
...
endif

etc

endfunc
Avatar de l’utilisateur
clifwardMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 26.4%
 
Messages: 593
Images: 6
Inscription: 20 Sep 2015, 17:50
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: CentraleSupelec

Re: arguments d'une fonction

Message non lude kadtexas » 24 Mai 2017, 17:30

Oui, c'est list et non a (j'ai oublié de modifier)

(et tu es bien conscient que ce que fait ton programme, une fonction déjà dédiée à ça existe sur nspire ? : binomCdf(n,p,min,max) )


Oui je sais, mais je ne voulais pas passer toujours les quatre arguments lorsque j'ai besoin que de trois pour P(X=k) et c'était le but de ma question du départ.

Tu as proposé:
En revanche, tu peux faire : ta_fonction(a)
et ensuite t'en servir en envoyant une liste, au lieu de plusieurs valeurs.
ta_fonction({truc,truc2,...,n trucs})


J'ai fait ce que tu as proposé ou bien je me trompe!
Avatar de l’utilisateur
kadtexas
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 73.8%
 
Messages: 283
Inscription: 29 Jan 2015, 19:32
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: etudiant

Suivante

Retourner vers Nspire-Basic

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 12 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.
1038 utilisateurs:
>1004 invités
>29 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)