☀️
420-1G2-HU Logique de programmation
  • 👋Bienvenue dans le cours de logique de programmation!
  • Bases de la logique de programmation
    • Concepts de la programmation
    • Les opérateurs
      • Exercices
    • Les commentaires
  • Les données
    • Les données et types simples
    • Les variables, les constantes et les opérations de base
    • Les opérations d'écriture et de lecture
    • Les opérations sur les chaînes de caractères
    • Laboratoire 1 - données
    • Laboratoire 2 - données
  • Les collections de données
    • Les listes
    • Les opérations sur les listes
    • Laboratoire listes - solution
    • Les dictionnaires
      • Exercices
  • Différents types de traitements
    • Structures logiques séquentielle
    • Structures logiques conditionnelles (if/else/elif)
    • Structures logiques répétitives (boucles)
      • Exercices de base
      • Laboratoire boucles - solution
  • Modularisation
    • Création et appels des fonctions
    • La documentation des fonctions
    • Annotation de types dans les fonctions
    • Laboratoire - fonctions (niveau débutant)
    • Révision express fonctions
    • Les modules
      • Laboratoire
  • La portée des variables
  • Débogage
    • 🫂Le débogueur, c'est ton ami!
      • Introductions aux outils de débogage
      • Techniques de débogage
    • Les erreurs et exceptions
      • Introduction aux notions d’erreurs
      • Les exceptions et leurs gestion
      • Exercices de base - avec solutions
      • Laboratoire débogage et gestion des erreurs -solution
  • Tests unitaires
    • Tests unitaires
    • Exercice
  • Cryptographie
    • Introduction à la cryptographie
  • Les fichiers
    • Accès aux fichiers
  • Résolution de problèmes
    • Résolution de problèmes : exercice introductif
    • Étapes d'analyse et de résolution de problèmes
  • Activités avec Légos
    • Introduction à la programmation
    • Consolidation sur les fonctions avec des blocs
    • Pratiquer les boucles avec des blocs
  • Laboratoires
    • Simulation combat - dragon vs chevalier
    • Simulateur de bataille - Les anneaux du pouvoir
    • Jeu de cartes
    • Lien logique mathématique
      • Algèbre de Boole
    • Crypto variée
    • Après Noël
  • git - système de gestion de versions
    • Introduction à Git
    • Étapes de création des dépôts Git
  • Classes inversées
    • Résolution de problèmes, fonctions et traitements conditionnels
  • Examens
    • Examen 2 - 2023
    • Examen 3 - 2023
    • Examen 2 - 2024
  • Révision
    • Fonctions, gestion d'erreurs et tests unitaires
    • Résolution de problème
  • Trucs utiles
    • Check-list
Powered by GitBook
On this page
  • Contenu
  • Durée
  • Code source à compléter
  • Échange de cadeaux
  • Exigences
  • Ajout d’une participation
  • Affichage des détails des participations
  • Simulation de la pige
  • Tests unitaires
  • Annexe : exemple d'exécution
  1. Examens

Examen 3 - 2023

PreviousExamen 2 - 2023NextExamen 2 - 2024

Last updated 7 months ago

Auteurs : Rémy Corriveau, adapté par Dalicia.

Veuillez noter que cet examen a été légèrement ajusté pour des raisons pratiques.

Contenu

  • Boucles imbriquées.

  • Listes à deux dimensions.

  • Modules : utilisation de modules random et datetime.

  • Recherche dans la documentation officielle de Python.

Durée

2 heures.

Code source à compléter

Échange de cadeaux

Vous devez créer un programme Python pour gérer un échange de cadeau en milieu de travail. L’application devra permettre d’ajouter des participations à l’échange et, lorsque la personne administrant l’échange le jugera bon, il ou elle pourra générer la pige. Il doit être possible de voir qui a pigé qui ainsi que la liste de cadeaux si la date de déballage de cadeaux le permet.

Exigences

  • Utiliser le programme fourni et le compléter.

  • Utiliser le format de la structure de données fournie dans le programme.

  • Créer plusieurs fonctions pertinentes avec passage de paramètres et valeurs de retour (lorsque nécessaire).

Ajout d’une participation

L’ajout d’une participation à l’échange de cadeaux requiert l’ajout du prénom, l’ajout de plusieurs cadeaux, ainsi que la date à partir de laquelle le déballage de ces cadeaux est permise. Cette date doit être entrée au format "JJ-MM-AA HH:MM".

Vous trouverez dans le programme fourni le format de la structure de données souhaitée.

Affichage des détails des participations

Cette fonction est partiellement créée pour vous. Vous devez la compléter de façon à afficher les noms des participants de l’échange ainsi que leurs cadeaux et leurs dates de déballages. Un exemple d’affichage se trouve dans le Docstring de cette fonction et dans l’exemple d’exécution.

Simulation de la pige

Le programme doit simuler la pige de cadeaux suivante :

  1. Chaque participant (destinataire des cadeaux) doit mélanger un sac contenant les prénoms des autres participants écrits dans des bouts de papiers.

  2. Une fois le mélange effectué, le destinataire des cadeaux choisit aléatoirement un papier du sac. Il recevra alors tous les cadeaux du participant qu’il a pigé.

  3. Le nom du participant donateur du cadeau est mentionné (pour le ou la remercier) mais les cadeaux sont déballés uniquement si la date de déballage est arrivée.

Précisions

  • Une personne reçoit tous les cadeaux d’un.e seul.e et unique participant.e qu’il ou elle a pigé.

  • Les cadeaux d’un.e participant.e (donateur) sont donnés à un.e seul.e et unique participant.e (destinataire).

  • Une personne ne peut pas s’offrir ses cadeaux à elle-même.

  • Les cadeaux reçus par une personne ne peuvent pas être déballés si la date de déballage n’est pas arrivée.

Tests unitaires

  • Créez le(s) test(s) unitaire(s) pour la fonction obtenir_prenoms_participants.

  • Plan de tests :

    • 3 données de tests variées permettant de valider les bons résultats.

    • 4 Cas limites et exceptions :

      • Vous devez inclure le test suivant : ([[123]], None).

      • Ajoutez 3 autres cas limites (incluant les exceptions).

  • Vérifications (assert) : 3 vérifications différentes et pertinentes.

Annexe : exemple d'exécution

Bienvenue dans l'application de gestion d'échange de cadeaux!

Combien de participations voulez-vous ajouter à l'échange de cadeaux ? 2
Ajout du participant 1/2
Veuillez entrer le prénom du participant : Louis
Entrez les cadeaux que le participant souhaite offrir. 
Si vous voulez arrêter l'ajout de cadeaux, appuyez sur 'Entrée' sans rien écrire.
Veuillez entrer un cadeau à offrir : stylo
Veuillez entrer un autre cadeau à offrir : carnet
Veuillez entrer un autre cadeau à offrir : 
Veuillez entrer la date à laquelle les cadeaux peuvent être déballés (format JJ-MM-AA HH:MM): 25-12-24 10:00
Ajout du participant 2/2
Veuillez entrer le prénom du participant : Elena
Entrez les cadeaux que le participant souhaite offrir. 
Si vous voulez arrêter l'ajout de cadeaux, appuyez sur 'Entrée' sans rien écrire.
Veuillez entrer un cadeau à offrir : Chocolat
Veuillez entrer un autre cadeau à offrir : Livre
Veuillez entrer un autre cadeau à offrir : 
Veuillez entrer la date à laquelle les cadeaux peuvent être déballés (format JJ-MM-AA HH:MM): 01-11-24 15:00
Voici la liste des participations : 
Participant : Rabia
	Cadeaux : bas, tasse, livre
	Date de déballage : lun. 20 nov. 2023 à partir de 21:00
Participant : Franck
	Cadeaux : certificat, casquette
	Date de déballage : sam. 23 déc. 2023 à partir de 11:30
Participant : Camilla
	Cadeaux : chocolats, orange, charbon
	Date de déballage : jeu. 23 nov. 2023 à partir de 10:45
Participant : Louis
	Cadeaux : stylo, carnet
	Date de déballage : mer. 25 déc. 2024 à partir de 10:00
Participant : Elena
	Cadeaux : Chocolat, Livre
	Date de déballage : ven. 01 nov. 2024 à partir de 15:00
Échange de cadeaux aléatoire (la pige) :
Rabia s'est fait offrir les cadeaux de Franck : ['certificat', 'casquette']
Franck s'est fait offrir les cadeaux de Rabia : ['bas', 'tasse', 'livre']
Camilla s'est fait offrir les cadeaux de Louis, mais ne peut pas encore les déballer :(.
Louis s'est fait offrir les cadeaux de Elena : ['Chocolat', 'Livre']
Elena s'est fait offrir les cadeaux de Camilla : ['chocolats', 'orange', 'charbon']
2KB
echange_cadeaux.zip
archive
2KB
trace_execution.txt