INSA Haut-de-France Premier Cycle – Semestre S1
Algorithmique et Programmation – S1 Page 1
Algorithmique et programmation – TD4 et DM1 (verso) Les TD se font sur papier, en pseudo langage (et donc sans ordinateur).
Objectif pédagogique :
- définir des fonctions booléennes avec paramètres et les appeler dans le programme principal - tests et boucles simples, saisie et affichage.
Q1 – Fonction booléenne estBissextile(annee)
Une année est bissextile si l'une des conditions ci-dessous est vérifiée : - l'année est multiple de 4 mais pas de 100
- l'année est multiple de 400
Testez à la main les années suivantes : 2013, 2018, 2019, 2020, 2000, 2100, 2200, 2222
Ecrire une fonction booléenne estBissextile qui retourne VRAI si une année donnée (en paramètre) est bissextile (et FAUX sinon). Remarquez que cette fonction n'affiche rien.
A l'aide de la fonction, afficher toutes les années bissextiles entre deux années saisies par l'utilisateur.
Q2 – Fonction booléenne positionValide(xJoueur,yJoueur,largeur,longueur)
Ecrire une fonction booléenne qui retourne vrai si la position (xJoueur,yJoueur) d'un joueur se situe à l'intérieur d'un terrain rectangle de largeur et longueur données en paramètres (et faux sinon). Le terrain est centré en (0,0).
Q3 - Décomposition d'un nombre entier en facteurs premiers (boucle TQ)
Ecrire une procédure qui affiche la décomposition en facteurs premier d'un nombre entier donné en paramètre.
Exemples : 6 = 2 * 3
132 = 2 * 2 * 3 * 11
La procédure doit afficher exactement cela si on lui donne en paramètre la valeur 6 ou 132
Q4 - Fonction booléenne qui retourne si un nombre entier est premier
Ecrire une fonction booléenne qui retourne vrai si un nombre entier donné est premier et faux sinon Remarques :
- Cette fonction n'affiche rien.
- Répondez à cette question sans utiliser la question précédente.
Ecrire une procédure qui affiche les nombres entiers situés dans un intervalle [min, max] dont les bornes sont passées en paramètres.
INSA Haut-de-France Premier Cycle – Semestre S1
Algorithmique et Programmation – S1 Page 2
DM1 – Jeu des allumettes (programme python à déposer sur moodle)
Ecrivez un SP jeuAllumettes(n) qui réalise une partie de ce jeu où n est le nombre initial d'allumettes.
Important : vous veillerez à la lisibilité de votre programme :
- les noms des variables, paramètres et sous-programmes doivent être clairs est commentés (rôle) - ajoutez un commentaire pour chaque "grande" partie du programme et/ou utilisez des SP.
Description du jeu : - Ce jeu se joue à deux.
- Les joueurs sont devant un certain nombre d'allumettes (par exemple 7 ou 12 ou 21 …) - A chaque tour, il faut en enlever 1, 2 ou 3.
- Celui qui prend la dernière allumette gagne.
Objectif : permettre à deux joueurs humains de faire une partie du jeu des allumettes. Le programme :
1. demande aux deux joueurs leur prénom 2. affiche toutes les allumettes (voir ci-dessous) 3. demande à chaque joueur à son tour combine
d'allumettes il veut enlever
4. enlève le nombre d'allumettes saisi par le joueur et re-affiche les allumettes restantes
5. continue ainsi jusqu'à ce que la dernière allumette soit prise
6. affiche le prénom du gagnant (voir ci-dessous).
Exemple d'exécution du programme
Testez votre programme et faites des copies d’écran de quelques exécutions.
Affichez aussi le nom de l’auteur à l’écran
« jeu réalisé par … »