« Initiation au Lua avec Scribunto/Autres fonctions standards » : différence entre les versions
Contenu supprimé Contenu ajouté
m →Fonctions concernant la librairie Scribunto : Pour réaliser une véritable recopie du contenu de la table A dans la table B, on utilisera la fonction préprogrammée '''mw.clone''' en écrivant '''B = mw.clone(A)''' |
m typo |
||
Ligne 8 :
}}
Dans les chapitres précédents, nous avons étudié certaines catégories de fonctions. Ces catégories
__TOC__
{{Clr}}
== Fonctions concernant les tables ==
Les exemples donnés dans ce paragraphe se
==== table.insert ====
La fonction '''table.insert''' permet de rajouter un élément dans une table avec clé numérique, mais pas forcément à la fin comme on a l'habitude de le faire. La fonction '''insert''' permet d'insérer un élément à une clé déjà existante en décalant tous les objets déjà
Des voitures s’apprêtent à faire une course sur un circuit. Supposons les voitures numérotées dans lesquelles se trouvent des conducteurs. Supposons que Natacha arrive en retard et veuille absolument conduire la voiture 3 (déjà occupé) car 3 est son numéro fétiche. On va donc donner la voiture 3 à Natacha. Le conducteur de la 3 ira dans la 4. Le conducteur de la 4 ira dans la 5 et ainsi de suite. Ceci est réalisé grâce à l'instruction '''table.insert(circuit,3,"Natacha")'''
Ligne 30 :
function p.insertion()
local reponse = " "
reponse = reponse.."<br /><u>voitures avant l'
for voiture, conducteur in ipairs(circuit) do
reponse = reponse.."<br />La voiture "..voiture.." est conduite par "..conducteur.."."
Ligne 53 :
La fonction '''table.remove''' réalise le contraire de ce que faisait la fonction '''table.insert'''. Elle retire un élément de la table avec clé numérique et décale les éléments suivants de façon à boucher le trou.
Reprenons l'exemple précédent en supposant, cette fois qu'Alain, le conducteur de la voiture 3, ne se sente pas bien et renonce à prendre
Le programme décrivant l'occupation des voitures avant et après le départ d'Alain est le suivant :
Ligne 158 :
Les exemples donnés dans ce paragraphe se
==== os.time ====
Ligne 202 :
Cette fonction donne le temps CPU d'exécution d'un programme en seconde. Cette fonction permet donc de mesurer le temps qui s'écoule entre deux parties d'un programme. Pour des exemples d'application voir, dans le chapitre sur la gestion de l'environnement, le paragraphe sur la vitesse d'exécution d'un programme. Voir aussi l'exercice 7-1.
Le temps CPU démarre au moment
Le temps CPU est donné en seconde et est le plus souvent compris entre 2 et 20 millisecondes.
Si l’on veut chronométrer le temps d'exécution d'une partie d'un programme, on est obligé de mettre l'instruction avant et après la partie à chronométrer et de faire la différence entre les deux temps
{{Attention|Compte tenu du fait que nos programmes s'exécutent sur un système multitâche, le temps donné par la fonction '''os.clock''' est très approximatif et sera différent d'une exécution à l'autre.}}
Ligne 254 :
Les exemples donnés dans ce paragraphe se
Ligne 297 :
Dans l'exemple ci-dessous, la fonction '''codehex''' permet de convertir un nom de couleur (de la page [[w:Liste de couleurs|Liste de couleurs]]) en son code hexadécimal qu'elle retourne.
La fonction '''mw.loadData''' de l'exemple ci-dessous charge une table se trouvant dans le [[Module:Nomcouleur]]. Dans le [[Module:Nomcouleur]], la table chargée se nomme nuancier. On remarquera, en fin de module, l'instruction '''return nuancier''' pour que la table puisse être
Ligne 317 :
'''Nota :''' Si l’on souhaite charger plusieurs tables s'appelant, par exemple, A, B, C à l'aide de la fonction '''mw.loadData''', il faut que dans le module
<br />
Ligne 348 :
En réalité, l'explication que nous venons de donner est très fragmentaire car nécessitant des éléments que nous n'avons pas encore
Pour le moment, nous nous contenterons de l'exemple suivant ou l’objet ''frame'' est recopié dans l’objet ''frami''. On visualise ensuite le contenu de l’objet ''frami'' comme on le ferait pour l’objet ''frame''.
Ligne 391 :
==== require ====
Cette fonction sera étudiée dans
<br />
|