[tutoriel] Le lua FX
Posté le 27/03/2014 19:34
Ce tutoriel est en cours de construction !
C'est une rampe de lancement au langage Lua adapté à nos chères calculatrices !
Sommaire :
I) Mise en place sur calculatrice
II) Liste des noms réservés
III) Les variables
IV) Les bibliothèques
V) Les librairies
VI) Les notations
I) Mise en place sur calculatrice
Pour pouvoir lire et interpréter le lua sur votre calculatrice:
téléchargez
Lua FX, regadez le tuto, puis installez le fichier .g1a dans votre calculatrice Casio à l'aide de
Fa 124 et regadez le tuto.
De la documentation est fournit avec des exemples et les add-ins correspondants.
Pour pouvoir programmer sur ordinateur, utilisez
lua helper,
lua Edit ou bien
Edit sur calculatrice. Le format .lua n'est composé que de texte, vous pouvez aussi utiliser un éditeur de texte lambda, mais vous n'aurez pas de coloration syntaxique.
Si vous programmez sur PC, le logiciel
Fa 124 permet le transfert des données vers la calculatrice (sur la page FA124 : regardez le paragraphe II puis B mais au lieu de mettre un *.g1e ou *.g1a, mettez "All files" (*.*) et cherchez votre fichier).
II) liste des noms réservés
Le Lua est sensible à la casse, c'est à dire que "Nom" n'est pas pareil que "nom" ou "nOm"
On peut écrire et utiliser n'importe quelle variable dans le programme sauf :
and - break - if - else - elseif - end - false - true - for - do - until -
in - local - nil - not - repeat - then - return - or - while - function
Ces noms réservés vous seront utiles pour les boucles, les conditions, les fonctions, … c'est ce que l'on apelle la sémantique.
III) Les variables
Il existe plusieurs sortes de variable :
nil : cette valeur sert à dire que cette variable ne contient (plus) rien. Vous pouvez donc rendre n'importe quelle variable
nil. Par soucis de place en mémoire, il est judicieux de lancer le garbagecollector régulièrement afin de supprimer toutes ces variables inutiles.
Sa déclaration ou attribution se fait :
a=nil
nombre : la variable contient un nombre( équivalent du float en C) [entre 3.4*10^48 et -3.4*10^(-48)]
déclaration :
nb==412 ou nb==4*10^6
table : la variable devient une table (liste ou matrice)
déclaration :
A={} [green]-- on initialise la table[/green]
A[12]=8 [green]-- on met 8 dans la 12eme case[/green]
tab["lvl"]=nil [green]-- il n'y a pas d'erreur[/green]
Une table peut contenir des chaînes de caractères (strings) ou des fonctions, elle n'a pas de taille définie, on peut ajouter une variable à n'importe quel indice, que l'on peut utiliser d'autres choses que des nombres pour accéder à une case du tableau. Si on appelle une case qui n'existe pas, la valeur sera nil.
String : la variable contient un mot ou une phrase. Il prend très peu de place
boléen : la variable contient juste
true ou
false
déclaration :
A=(1==3) [green]-- A contient false puisque que 1≠3[/green]
A=(y+x)≥z [green]-- A contient true ou false[/green]
userdata : réservé aux fichiers
function : la variable réfère à une fonction de la librairie ou une fonction lua
déclaration :
line=nbdraw.line [green]-- la fonction ligne réfère à la fonction nbdraw.line[/green]
function rectangle(x1,y1,x2,y2) [green]--rectangle est une fonction lua de 4 paramètres[/green]
line(x1,y1,x1,y2) [green] --dessine le rectangle[/green]
line(x2,y1,x2,y2)
line(x1,y1,x2,y1)
line(x1,y2,x2,y2)
end -[green]- on signale la fin de la fonction[/green]
rectangle(10,10,20,20) [green]-- on rappelle rectangle dans le programme[/green]
Les types de variable :
Chaque variable peut être local, global ou constante.
global : une variable globale est dans tous le programme et peut être récupérée par un autre programme.
déclaration :
y=2 [green]-- variable globale y prend la valeur 2[/green]
local : une variable locale est plus vite appelée qu'une variable gobale mais n'est visible que dans le programme où elle est.
déclaration :
local x=18 [green]-- x sera plus vite appelé que y mais ne reste que dans un bouts de code[/green]
IV) les bibliothèques
Chaque fonction du luaFx appartient à une bibliothèque.
Exemple :
nbdraw.line(x1,y1,x2,y2) [green]-- line appartient à la bibliothèque nbdraw[/green]
On peut déclarer un alias de fonction lorsque l'on s'en sert souvent dans le programme. Cet alias permet d’accéder plus rapidement aux fonction et réduire le nom de la fonction : on peut donc les personnaliser.
Exemple :
line=nbdraw.line [green]-- la fonction devient un alias[/green]
... code
line(x1,y1,x2,y2) [green]-- dessine avec la fonction nbdraw.line[/green]
wait=misc.wait [green]-- fonction d'attente[/green]
... code
wait(x) [green]-- utilise la fonction misc.wait()[/green]
Mais key(numero_de_la_touche) n'a pas vraiment de bibliothèque car c'est une fonction instantanée incluse dans l'add-in luaFX.
V) les librairies
Dans un programme lua, on peux appeler un autre programme avec des fonctions et/ou des variables.
Il faut donc créer une librairie que le programme principal lira et ajouter :
def="module exemple"
au début de la librairie puis avec le code suivant inclus dans la programme principal, on peut appeler les fonctions qui sont dans cette librairie comme si elles étaient déclarées dans le programme principal.
le code
Cliquer pour enrouler
local print = nbdraw.print
f,err = misc.modload ( "nom_de_la_lib") [green]-- le nom doit faire moins de 8 caractères[/green]
if f == nil -- si il y a erreur, f = nil
then
print(err) [green]-- err contient le message d'erreur[/green]
end [green]-- affiche l'erreur lors du chargement du fichier[/green]
f() [green]-- execute le fichier (et donc defini les fonctions et les variables globales qui deviennent accessibles)[/green]
VI) les notations
Vous aurez peut être remarqué comment sont mis les commentaires :
code_sur_la_ligne[green]-- commentaire ne prenant qu'une ligne[/green]
code [green]--[[ commentaire sur plusieurs lignes
...
on met ce que l'on veut dedans]]--[/green]
Citer : Posté le 25/05/2014 18:16 | #
ben moi ça marche avec par exemple
il y a du code puis
refresh
EDIT :je n'utilise pas les bons termes
Citer : Posté le 25/05/2014 18:18 | #
Oui, mais en fait je chipotais de manière mesquine :demon: quand à l'utilisation du mot déclarer
Coïncidence ? Je ne pense pas.
Citer : Posté le 25/05/2014 18:20 | #
je sais mais c'est vrai que ça peut porter à confusion
Citer : Posté le 25/05/2014 19:17 | #
Cet alias n'est pas utile que pour raccourcir le code, cela permet également d'accéder plus rapidement à la fonction, et donc de faire en sorte que les dessins soit plus rapide