Alors certains l'on peut-être déjà remarqué mais moi je viens seulement de le découvrir.
En effet je bossais sur Make3D quand j'ai été confronté à un problème : le tableur ne répondait pas à mes demandes... Il fallait donc programmer une fonction ( attention, une fonction n'est pas un programme)
Habituellement, on appelle fonction quelque chose du type f(x)=x²
en gros, en prog Nspire :
- Code: Select all
Define f(x)=
Func
Return x²
EndFunc
Pour moi, l'utilité des fonctions s'arrêtait là car à chaque fois que je faisais quelque chose du type
- Code: Select all
Define f(x)=
Func
temp := x*x
Return temp
EndFunc
je recevais une erreur du type : "Invalide dans une fonction ou expression courante"
J'ai donc depuis 1 an et demi abandonné l'idée de programmer avec les fonctions...
Changeons d'horizon, en C par exemple.
En C, une fonction s'analogue à un programme sur Nspire. Mais en fait, une fonction en C EST une fonction Nspire. Sauf qu'en fait, en C, le compilateur va définir tout seul les variables utilisées dans le programme en tant que variables locales. Variables locales voulant dire, qu'une fois la sorti de la fonction, la variable n'existe plus, elle est supprimée.
Et bien figurez vous que c'est avec cette remarque personnelle que j'ai testé ça :
- Code: Select all
Define f(x)=
Func
Local temp
temp := x*x
Return temp
EndFunc
...et bien figurez vous que ça marche
Des fois, je me demande pourquoi les erreurs Nspire sont si mal rédigée... Ils auraient pas pu mettre "Impossible de créer une variable globale dans une fonction ou expression régulière" ?
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Bilan :
Pour utiliser des variables temporaires servant d'intermédiaire aux calculs dans une fonction définie tel que :
- Code: Select all
Define f(x)=
Func
EndFunc
...il suffit de définir cette variable en tant que variable locale, tel que :
- Code: Select all
Local a, b, c, d, toto, tata
Exemple :
- Code: Select all
Define f(x)=
Func
Local temp
temp :=x*x
Return temp
EndFunc
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
@+