budget

R2-PROG-02 : Rappels 1M - mini-projet#

Objectifs pédagogiques#

  • Révision des concepts de programmation vus en première année

    • entrées, sorties, variables, types, boucles, tests conditionnels

  • Durée : 2 séances de 45 minutes

  • Langage : Python

Objectif du projet : Suivi des dépenses hebdomadaires#

Créer un programme en Python qui permet de suivre les dépenses hebdomadaires d’un élève.

Le programme demandera :

  • Le budget disponible,

  • Puis les montants des dépenses une par une,

  • Et pour chaque dépense, son type (snack, transport, jeux, autre).

À la fin, le programme affichera un bilan complet : total des dépenses, comparaison avec le budget, répartition par catégorie, et la dépense la plus élevée.

Partie 1 – Création d’un budget hebdomadaire#

Ecrire un programme qui aide à suivre les dépenses hebdomadaires d’une personne. Ce programme devra :

  • Stocker tous les montants des dépenses,

  • Afficher un historique complet à la fin.

À la fin, le programme affichera :

  • Le total, la moyenne, la plus grosse dépense,

  • Et un récapitulatif détaillé de chaque achat.

Les étapes du programme sont les suivantes :

  1. Demander le budget hebdomadaire.

  2. Permettre de saisir des dépenses une par une (terminer par 0).

  3. Stocker chaque montant dans une liste.

  4. Calculer le total des dépenses.

  5. Afficher un message si le budget est dépassé.

  6. Afficher un résumé : total, budget, reste ou dépassement.

Exemple d’exécution#

Quel est ton budget hebdomadaire (en CHF) ? 30
Saisis tes dépenses une par une. Tape 0 pour terminer.
Montant de la dépense (0 pour finir) : 2.50
Montant de la dépense (0 pour finir) : 8
Montant de la dépense (0 pour finir) : 15
Montant de la dépense (0 pour finir) : 0 

--- Résumé ---
Budget : 30.00 CHF
Dépenses totales : 25.50 CHF
Bien joué ! Il te reste 4.50 CHF.

hints utililser une boucle while pour entrer les différentes dépenses ainsi qu’une variable total_depenses à augmenter. Crée une liste vide au départ : depenses = []

Partie 2 – Améliorations avec catégories#

Nous allons étendre les possibilités de notre programme de gestion de budget hebdomadaire :

  • Stocker les catégories associées (snack, transport, etc..)

  • Afficher à la fin le nombre de dépenses par catégorie,

Pour ce faire, déclarer :

  • Une deuxième liste pour les catégories de dépenses,

  • Le calcul de la moyenne des dépenses,

  • La recherche de la dépense la plus élevée (sans utiliser la fonction max()),

  • Un comptage par catégorie,

  • Un affichage détaillé de chaque dépense avec sa catégorie.

Fonctionnalités à ajouter :#

  • Après chaque montant, demander la catégorie (1 à 4) :

    • 1 = snack

    • 2 = transport

    • 3 = jeux

    • 4 = autre

  • Stocker les catégories dans une liste categories = [].

  • À la fin, afficher chaque dépense avec son type.

  • Calculer la moyenne des dépenses.

  • Trouver manuellement la dépense la plus élevée (boucle + condition).

  • Afficher un bilan complet.

Exemple d’exécution#

Voici un exemple d’exécution du programme avec les catégories :

Montant : 10.00 CHF pour Jeux
Montant : 2.50 CHF pour Snack
Montant : 15.00 CHF pour Transport 

--- Bilan final ---
Budget : 30.00 CHF
Total des dépenses : 27.50 CHF
Moyenne par dépense : 9.17 CHF
Dépense la plus élevée : 15.00 CHF (Transport)
Nombre de snacks : 1
Nombre de jeux : 1
Nombre de transports : 1
Nombre d'autres : 0 

Règles techniques#

  • Le code doit être séquentiel.

  • Utiliser deux listes :

    • depenses : pour les montants,

    • categories : pour les numéros de catégorie.

  • Gèrer les erreurs de saisie (montant invalide, catégorie invalide).

  • Utiliser des variables bien nommées : budget, total, nb_snack, etc.

  • Ne pas utiliser de fonctions max(), min(), sum(), sort() : faire les calculs à la main avec des boucles.