Initiation au Lua avec Scribunto/Exercices/Sur les méta-tables

Leçons de niveau 10
Une page de Wikiversité, la communauté pédagogique libre.
Sur les méta-tables
Image logo représentative de la faculté
Exercices no10
Leçon : Initiation au Lua avec Scribunto
Chapitre du cours : Méta-tables

Exercices de niveau 10.

Exo préc. :Sur la gestion de l'environnement
Exo suiv. :Sur les librairies Scribunto
En raison de limitations techniques, la typographie souhaitable du titre, « Exercice : Sur les méta-tables
Initiation au Lua avec Scribunto/Exercices/Sur les méta-tables
 », n'a pu être restituée correctement ci-dessus.



Exercice 10-1[modifier | modifier le wikicode]

On considère un programme gérant des comptes se trouvant dans une table appelée banque dont l'accès se fait avec des clés sous forme de chaîne de caractères indiquant le nom d'une personne ayant un compte dans la table banque. Nous savons que, lorsque l’on essaye d'accéder à une table avec une clé qui n'existe pas, on obtient nil. Dans cet exercice, on modifiera ce comportement en faisant en sorte que, lorsque l’on essaye d'accéder à un compte dans la banque avec une clé indiquant un nom inexistant dans la banque, alors le compte doit être automatiquement créé avec une valeur égale au nombre 0 et on doit avoir comme retour une chaîne de caractères indiquant "compte créé". En utilisant ce comportement particulier, écrire une fonction p.place dans un module qui nous permettra de placer une certaine somme en banque sur le compte d'une personne dont on indiquera le nom. Si, par exemple, on souhaite placer 20 euros sur le compte d'Annabelle, on écrira {{#invoque:"nom du module"|place|Annabelle|20}}. En retour, on devra avoir un message indiquant si un nouveau compte a été créé et si l'opération s'est bien déroulée (on gérera les erreurs possibles).

Pour fixer les idées nous poserons que la table banque sera initialisée ainsi :

local banque = {["Jean"]=150,["Aurore"]=80,["Cindy"]=10,["Pénéloppe"]=110,["Gabriel"]=320}

Contrainte : Le programme ne devra utiliser qu'une seule table.



Exercice 10-2[modifier | modifier le wikicode]

Soit un espace vectoriel de dimension 3. Soit deux vecteurs A et B de coordonnées respectives (2,7,4) et (3,2,9). Écrire un programme permettant de faire le produit vectoriel de A et B en utilisant une instruction sous la forme P = A*B.


Le produit vectoriel se définit ainsi :



Exercice 10-3[modifier | modifier le wikicode]

Soient deux matrices carrées A et B d'ordre 2 ainsi définies :

Écrire un programme permettant de faire le produit matriciel de A et B en utilisant une instruction sous la forme P = C*D.


Le produit matriciel se définit ainsi :


Exercice 10-4[modifier | modifier le wikicode]

Écrire un programme permettant de concaténer les matrices colonnes : B = et C = sous la forme de la matrice carrée P = en utilisant une instruction sous la forme P = B..C.