Aller au contenu

Initiation au Lua avec Scribunto/Exercices/Sur la gestion de l'environnement

Leçons de niveau 10
Une page de Wikiversité, la communauté pédagogique libre.
Sur la gestion de l'environnement
Image logo représentative de la faculté
Exercices no9
Leçon : Initiation au Lua avec Scribunto
Chapitre du cours : Gestion de l'environnement

Exercices de niveau 10.

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



On considère les trois fonctions f, g, h définies par

Après avoir programmé ces trois fonctions dans un module, on écrira une fonction chrono qui accepte une fonction en argument et qui nous retourne le temps d'exécution de la fonction passée en argument.

Dans la fonction principale p.rapide, on comparera le temps d'exécution des trois fonctions f, g, h et on retournera à l'utilisateur un message indiquant la fonction qui s'exécute le plus rapidement.

Contrainte : Le nom de la fonction chrono ne devra apparaître qu'une seule fois dans la fonction p.rapide.


Dans le chapitre sur les fonctions basiques, nous avons écrit, pour donner un exemple d'utilisation de la fonction next, le programme suivant :

local Categorie = { ["Prénom"] = "Christine", ["Mois"] = "Avril", ["Métier"] = "Boulanger", ["Poisson"] = "Truite", ["Métal"] = "Argent", ["Planète"] = "Saturne", ["Instrument"] = "Piano"}

function p.yatil(frame)
	local suivant
	local trouve = false
	repeat
		suivant = next(Categorie,suivant) --Cherche la clé suivante et la met dans suivant
		if Categorie[suivant] == frame.args[1] then trouve = true end
	until suivant == nil or trouve -- On tourne dans la boucle jusqu'à ce que toute la table ait été parcourue ou jusqu'à ce qu'on ait trouvé
	if trouve then
		return "Le mot figure dans la table"
	else
		return "Le mot ne figure pas dans la table"
	end
end

L'écriture de la fonction p.yatil est-elle correcte ? Donner une meilleure façon d'écrire cette fonction.



(à compléter)


(à compléter)