Examen 2 - 2023

Exercice 1 : gestion de places disponibles d'un restaurant

Partie 1

Vous devez créer un programme Python pour gérer les places disponibles dans un restaurant. Le restaurant a une capacité maximale de 50 places.

Le programme doit permettre à l'utilisateur de choisir parmi les options suivantes afin d’utiliser les fonctions décrites par la suite :

  1. Occuper des places au restaurant (personnes qui entrent dans le restaurant).

  2. Libérer des places au restaurant (personnes qui quittent le restaurant).

  3. Quitter le programme.

La proposition et l’exécution de ces choix doit se faire en continu tant que l'utilisateur ne choisit pas de quitter.

Pour les 2 premières fonctions, vous devez d’abord créer un pseudo-code.

  1. Créez une fonction qui ajuste le nombre de places disponibles dans le restaurant selon le nombre de personnes qui entrent.

    Lorsque les places disponibles du restaurant ne permettent pas d'accueillir toutes les personnes souhaitant entrer, il est essentiel d'informer du nombre de personnes réellement autorisées.

    Assurez-vous d’inclure la gestion des exceptions et les vérifications appropriées sur le nombre de personnes et de places disponibles, et afficher des messages d'erreur en cas de besoin.

  2. Créez une fonction qui ajuste le nombre de places disponibles dans le restaurant selon le nombre de personnes qui quittent.

    Si le nombre de personnes sortantes dépasse le nombre de personnes présentes dans le restaurant, une erreur doit être affichée.

    Assurez-vous d’inclure la gestion des exceptions et les vérifications appropriées sur le nombre de personnes et de places disponibles, et afficher des messages d'erreur en cas de besoin.

Exemple d’exécution

Partie 2

(Dans un autre fichier python)

Soit la liste à deux dimensions suivante qui représente les informations sur les tables du restaurant. Vous devez utiliser cette liste telle quelle dans votre programme.

Chaque sous-liste contient le numéro de la table, le nombre de chaises que contient la table et si la table est disponible ou non.

  • Exemple : [1, 2, False] veut dire que la table numéro 1 est une table pour 2 personnes et elle n’est pas disponible.

  1. Créez une fonction qui trouve (ou non) une table disponible pour installer un groupe de personnes parmi les tables de la liste. Le nombre de personnes du groupe doit être entré par l’utilisateur dans le programme principal.

    • Exemple : On peut installer un groupe de 4 personnes dans une tables qui a minimum 4 chaises.

  2. Créez une fonction qui affiche toutes les informations sur les tables comme dans l’exemple ci-dessous.

  3. Utilisez ces fonctions dans votre programme principal et affichez les résultats.

Voici un exemple d’exécution :

Exercice 2 : jeu du pendu

Le jeu du Pendu est un jeu de mots dans lequel un joueur tente de deviner un mot secret en proposant des lettres. Le mot à deviner est initialement caché sous forme de tirets bas, chaque tiret représentant une lettre du mot. Le joueur a un nombre limité d'essais pour deviner le mot correctement en proposant des lettres. Si le joueur devine une lettre qui est dans le mot, cette lettre est révélée dans le mot caché. Si le joueur devine une lettre qui n'est pas dans le mot, il perd un essai. Le jeu se termine de l'une des deux manières suivantes :

  • Le joueur gagne s’il devine toutes les lettres du mot avant d'épuiser le nombre d'essais disponibles.

  • Le joueur perd s’il épuise le nombre d'essais sans avoir deviné le mot complet.

Règles :

  • Le joueur ne peut proposer qu'une lettre à la fois.

  • Les lettres peuvent être en majuscules ou en minuscules.

  • Les nombres et les caractères spéciaux ne sont pas autorisés.

  • Le nombre d'essais disponibles est limité à un nombre prédéfini (6 essais dans le programme).

Exemple d’exécution correcte :

Ce qui est demandé

  1. Corriger toutes les erreurs de syntaxe dans le code.

  2. Testez votre programme et corrigez toutes les erreurs d’exécution et de logique (il y en a 4). Pour chaque erreur trouvée :

    • Décrivez ou montrez le teste qui vous a permis de trouver l’erreur.

    • Pour UNE SEULE ERREUR DE LOGIQUE, expliquez l’erreur produite (résultat attendu vs résultat observé) à l’aide du débogueur avec des captures d’écran.

    • Corrigez l’erreur. N’oubliez pas de faire un commit avec git et donner ici le message de commit utilisé.

Utilisez le gabarit suivant pour répondre aux questions 2. pour chaque erreur :

Erreur

Teste qui reproduit l’erreur

Explication de l’erreur avec captures d’écran du débogueur (pour UNE SEULE ERREUR DE LOGIQUE)

Message du commit qui corrige l’erreur

Le code Python avec erreurs

  • Pour faciliter les tests, le mot à deviner est toujours python.

  • Notez qu’il n’y a pas d’erreurs dans la fonction progression_mot.

Last updated