Nous allons reprendre les algorithmes des feuilles de TD et les transcrire en lua.

Nous travaillerons avec des logiciels adaptés au système.

Traduction

L’entête sera traduit en

  • utilisant le nom comme nom du fichier (assorti de l’extension lua).

  • mettant le rôle dans un commentaire :

    --- Ce programme trie 3 entiers par ordre croissant.
  • mettant les entrées, sorties et variables de travail dans des lignes de commentaires (commençant par --) :

    -- Entrées : a, b, c : entiers
    -- Sorties : d, e, f : entiers
    -- Variables : tmp, mon_entier : entiers

Pour la syntaxe lua, on se reportera à https://didierfradet.wordpress.com/2017/02/23/notes-sur-lua/

Entrées sorties

Pour afficher des chaînes de caractères, on utilisera l’instruction print:

print("Bonjour")
print("七人の侍")

Les entrées seront implémentées à l’aide de l’expression io.read(). Si les entrées doivent être des nombres, on utilisera en plus la fonction tonumber.

Les sorties seront implémentées en ajoutant un print à la fin de l’algorithme

Exemple

-- Entrées : a : entier, b : chaine
a = tonumber(io.read())
b = io.read()
-- Sortie : s : entier, t : chaine
.
.
.
-- Fin
print(tostring(s))
print(t)

Notons que les lignes commençant par -- sont des commentaires, ce qui signifie que le programme n’en tient pas compte à l’exécution (elles permettent cependant au programmeur de relire et recomprendre son programme).

Exercices

  1. Implémenter le tri de trois entiers.
  2. Implémenter le “temps plus une seconde”.
  3. Afficher l’heure mise à jour toutes les secondes. On pourra utiliser l’instruction require("os").execute("sleep 1") qui patiente une seconde avant de passer à la suite.1
  4. Implémenter l’algorithme qui teste si une année est bissextile.
  5. Implémenter la division euclidienne.
  6. Implémenter la décomposition d’une somme d’argent en pièces et billets.
  7. Implémenter la racine carrée.
  8. Implémenter la factorielle.
  9. Implémenter la puissance.
  10. Implémenter l’intégration par la méthode des trapèzes.
  11. Implémenter le test de primalité. Le tester sur les entrées 53 et 55.
  12. Implémenter l’affichage de tous les nombres premiers inférieurs à 1000.
  13. Implémenter la suite de Fibonacci. Quel est le quatorzième terme de la suite de Fibonacci ?

  1. La commande sleep n’étant pas disponible sous Windows, on pourra utiliser au choix

    • require("os").execute("ping -n 2 localhost > NUL")
    • require("socket").sleep(1)
    ↩︎