π
<-

arguments d'une fonction

Pour le TI-Basic sur Nspire

arguments d'une fonction

Unread postby kadtexas » 22 May 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.
User avatar
kadtexas
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 73.8%
 
Posts: 283
Joined: 29 Jan 2015, 19:32
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: etudiant

Re: arguments d'une fonction

Unread postby clifward » 22 May 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
User avatar
clifwardMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 26.4%
 
Posts: 593
Images: 6
Joined: 20 Sep 2015, 17:50
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: CentraleSupelec

Re: arguments d'une fonction

Unread postby Hamza.S » 22 May 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
User avatar
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 29%
 
Posts: 4501
Images: 18
Joined: 07 Nov 2014, 00:43
Gender: Male
Calculator(s):
MyCalcs profile

Re: arguments d'une fonction

Unread postby clifward » 22 May 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
User avatar
clifwardMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 26.4%
 
Posts: 593
Images: 6
Joined: 20 Sep 2015, 17:50
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: CentraleSupelec

Re: arguments d'une fonction

Unread postby Adriweb » 23 May 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.

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
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.9%
 
Posts: 14744
Images: 1119
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: arguments d'une fonction

Unread postby clifward » 23 May 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
User avatar
clifwardMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 26.4%
 
Posts: 593
Images: 6
Joined: 20 Sep 2015, 17:50
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: CentraleSupelec

Re: arguments d'une fonction

Unread postby Adriweb » 23 May 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)

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
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.9%
 
Posts: 14744
Images: 1119
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: arguments d'une fonction

Unread postby kadtexas » 24 May 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: 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).
User avatar
kadtexas
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 73.8%
 
Posts: 283
Joined: 29 Jan 2015, 19:32
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: etudiant

Re: arguments d'une fonction

Unread postby clifward » 24 May 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: Select all
Define fonc(b,c,...,n)=
Func
if dim(a)=... then
...
endif
if dim(a)=... then
...
endif

etc

endfunc
User avatar
clifwardMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 26.4%
 
Posts: 593
Images: 6
Joined: 20 Sep 2015, 17:50
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: CentraleSupelec

Re: arguments d'une fonction

Unread postby kadtexas » 24 May 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!
User avatar
kadtexas
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 73.8%
 
Posts: 283
Joined: 29 Jan 2015, 19:32
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: etudiant

Next

Return to Nspire-Basic

Who is online

Users browsing this forum: ClaudeBot [spider] and 4 guests

-
Search
-
Social TI-Planet
-
Featured topics
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 !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
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 Calculatrices à acheter chez Calcuso
-
Stats.
844 utilisateurs:
>822 invités
>15 membres
>7 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)