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

De testwiki
Version datée du 9 mai 2022 à 22:38 par imported>SGlad (Exercice 9-2 : coquilles)
(diff) ← Version précédente | Version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Modèle:Exercice

Modèle:Clr

Exercice 9-1

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

f(x)=x+1x+3g(x)=(x2+x+5)2h(x)=1ln(x+5)

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.

Modèle:Solution


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.


Modèle:Solution


Exercice 9-3

(à compléter)

Modèle:Solution


Exercice 9-4

(à compléter)

Modèle:Solution


Modèle:Bas de page