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.
arguments d'une fonction
14 posts
• Page 1 of 2 • 1, 2
-
kadtexas
Niveau 9: IC (Compteur Infatigable)- Posts: 283
- Joined: 29 Jan 2015, 19:32
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: etudiant
Re: arguments d'une fonction
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"
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"
-
clifwardMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 593
- Images: 6
- Joined: 20 Sep 2015, 17:50
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: CentraleSupelec
Re: arguments d'une fonction
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
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)
oui j'avais pensais à un truc comme le tien mais lorsque tu as une liste ou matrice en 3ième argument c'est mort
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)
-
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)- Posts: 4501
- Images: 18
- Joined: 07 Nov 2014, 00:43
- Gender:
- Calculator(s):→ MyCalcs profile
Re: arguments d'une fonction
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)
(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)
-
clifwardMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 593
- Images: 6
- Joined: 20 Sep 2015, 17:50
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: CentraleSupelec
Re: arguments d'une fonction
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
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.
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.
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
-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 14744
- Images: 1119
- Joined: 01 Jun 2007, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Twitter: adriweb
- GitHub: adriweb
Re: arguments d'une fonction
Pourquoi faire simple quand on peut faire compliqué, n'est-ce pas Adriweb ?
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...
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...
-
clifwardMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 593
- Images: 6
- Joined: 20 Sep 2015, 17:50
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: CentraleSupelec
Re: arguments d'une fonction
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 (sauf si ce sont de très gros calculs qui se ferait plus rapidement en Lua)
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 (sauf si ce sont de très gros calculs qui se ferait plus rapidement en Lua)
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
-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 14744
- Images: 1119
- Joined: 01 Jun 2007, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Twitter: adriweb
- GitHub: adriweb
Re: arguments d'une fonction
Bonjour à tous et merci pour les réponses.
Pour le Lua je ne connais rien.
ça marche pour moi et j'aurai bien aimer que vous jetiez un coup d'oeil ci dessous.
je n'ai pas compris:
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: Select all
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).
-
kadtexas
Niveau 9: IC (Compteur Infatigable)- Posts: 283
- Joined: 29 Jan 2015, 19:32
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: etudiant
Re: arguments d'une fonction
Utilise les balises [ code ], sinon c'est pas très lisible
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}
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: Select all
Define fonc(b,c,...,n)=
Func
if dim(a)=... then
...
endif
if dim(a)=... then
...
endif
etc
endfunc
-
clifwardMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 593
- Images: 6
- Joined: 20 Sep 2015, 17:50
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: CentraleSupelec
Re: arguments d'une fonction
Oui, c'est list et non a (j'ai oublié de modifier)
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é:
J'ai fait ce que tu as proposé ou bien je me trompe!
(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!
-
kadtexas
Niveau 9: IC (Compteur Infatigable)- Posts: 283
- Joined: 29 Jan 2015, 19:32
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: etudiant
14 posts
• Page 1 of 2 • 1, 2
Who is online
Users browsing this forum: ClaudeBot [spider] and 4 guests