< Initiation au Lua avec Scribunto < Exercices



Exercice 9-1

On considère les trois fonction 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.


Exercice 9-2

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.



Exercice 9-3

(à compléter)


Exercice 9-4

(à compléter)


Cet article est issu de Wikiversity. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.