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: Tout sélectionner
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: Tout sélectionner
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: Tout sélectionner
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: Tout sélectionner
Define f(x)=
Func
EndFunc
...il suffit de définir cette variable en tant que variable locale, tel que :
- Code: Tout sélectionner
Local a, b, c, d, toto, tata
Exemple :
- Code: Tout sélectionner
Define f(x)=
Func
Local temp
temp :=x*x
Return temp
EndFunc
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
@+