Logistique d'un festival
L'objectif de l'exercice est de modéliser la gestion d'un festival (recette, rentabilité, ressources, sécurité) en combinant structures conditionnelles (if/elif/else) et boucles (for, while) en Python.
-
1IndiceParcourir les groupes en appliquant une remise conditionnelle au prix unitaire puis accumuler les revenus places et achats.
Recette totale du festival : Écrire une fonction
recette_totale(n_places: list[int], prix_unitaire: list[float], achat_boisson: list[float], achat_nourriture: list[float], seuil_groupe: int, remise_groupe: float) -> floatqui calcule, pour chaque groupe, le prix effectif d'une place (appliquant une remise deremise_groupesi le nombre de places atteint ou dépasseseuil_groupe), puis additionne les revenus des places et des achats (boissons + nourriture) pour tous les groupes. Par exemplerecette_totale([5, 3], [20.0, 25.0], [5.0, 3.0], [10.0, 8.0], 4, 0.10)renvoie186.0. -
2IndiceIncrémenter un compteur dans une boucle while jusqu'à ce que la recette marginale par personne couvre les coûts fixes et variables.
Seuil de rentabilité : Écrire une fonction
seuil_rentabilite(cout_fixe: float, cout_variable: float, prix_moyen_place: float, prix_moyen_achat: float) -> intqui, à l'aide d'une bouclewhile, détermine le plus petit entierntel que la recette marginale par festivalier (prix_moyen_place + prix_moyen_achat) multipliée parncouvre les coûts (cout_fixe + n * cout_variable). Par exempleseuil_rentabilite(1000.0, 5.0, 30.0, 10.0)renvoie29. -
3IndiceParcourir chaque jour en accumulant l'électricité constamment et l'eau conditionnellement selon l'appartenance de l'indice à la liste des jours pluvieux.
Consommation des ressources : Écrire une fonction
consommation_resources(nb_jours: int, electricite_base: float, eau_base: float, jours_pluvieux: list[int], coefficient_pluie: float) -> tuple[float, float]qui, en parcourant chaque jour du festival avec une bouclefor, accumule l'électricité (constante) et l'eau (multipliée parcoefficient_pluiesi l'indice du jour figure dansjours_pluvieux), puis renvoie le couple(total_electricite, total_eau). Par exempleconsommation_resources(3, 100.0, 50.0, [1], 2.0)renvoie(300.0, 200.0). -
4IndiceParcourir les zones et attribuer un effectif d'agents via une structure if/elif/else sur trois paliers avant d'accumuler le total.
Planification de la sécurité : Écrire une fonction
planification_securite(nom_zones: list[str], affluence_zones: list[int], seuil_faible: int, seuil_moyen: int, agents_faible: int, agents_moyen: int, agents_forte: int) -> tuple[int, list[int]]qui, pour chaque zone, attribue un effectif d'agents selon trois paliers d'affluence (< seuil_faible→agents_faible,< seuil_moyen→agents_moyen, sinon →agents_forte), puis renvoie le couple(total_agents, effectifs_par_zone). Par exempleplanification_securite(["Scène A", "Camping"], [500, 200], 300, 700, 2, 4, 6)renvoie(6, [4, 2]).
L'objectif de l'exercice est de modéliser la gestion d'un festival (recette, rentabilité, ressources, sécurité) en combinant structures conditionnelles (if/elif/else) et boucles (for, while) en Python.
-
1IndiceParcourir les groupes en appliquant une remise conditionnelle au prix unitaire puis accumuler les revenus places et achats.
Recette totale du festival : Écrire une fonction
recette_totale(n_places: list[int], prix_unitaire: list[float], achat_boisson: list[float], achat_nourriture: list[float], seuil_groupe: int, remise_groupe: float) -> floatqui calcule, pour chaque groupe, le prix effectif d'une place (appliquant une remise deremise_groupesi le nombre de places atteint ou dépasseseuil_groupe), puis additionne les revenus des places et des achats (boissons + nourriture) pour tous les groupes. Par exemplerecette_totale([5, 3], [20.0, 25.0], [5.0, 3.0], [10.0, 8.0], 4, 0.10)renvoie186.0. -
2IndiceIncrémenter un compteur dans une boucle while jusqu'à ce que la recette marginale par personne couvre les coûts fixes et variables.
Seuil de rentabilité : Écrire une fonction
seuil_rentabilite(cout_fixe: float, cout_variable: float, prix_moyen_place: float, prix_moyen_achat: float) -> intqui, à l'aide d'une bouclewhile, détermine le plus petit entierntel que la recette marginale par festivalier (prix_moyen_place + prix_moyen_achat) multipliée parncouvre les coûts (cout_fixe + n * cout_variable). Par exempleseuil_rentabilite(1000.0, 5.0, 30.0, 10.0)renvoie29. -
3IndiceParcourir chaque jour en accumulant l'électricité constamment et l'eau conditionnellement selon l'appartenance de l'indice à la liste des jours pluvieux.
Consommation des ressources : Écrire une fonction
consommation_resources(nb_jours: int, electricite_base: float, eau_base: float, jours_pluvieux: list[int], coefficient_pluie: float) -> tuple[float, float]qui, en parcourant chaque jour du festival avec une bouclefor, accumule l'électricité (constante) et l'eau (multipliée parcoefficient_pluiesi l'indice du jour figure dansjours_pluvieux), puis renvoie le couple(total_electricite, total_eau). Par exempleconsommation_resources(3, 100.0, 50.0, [1], 2.0)renvoie(300.0, 200.0). -
4IndiceParcourir les zones et attribuer un effectif d'agents via une structure if/elif/else sur trois paliers avant d'accumuler le total.
Planification de la sécurité : Écrire une fonction
planification_securite(nom_zones: list[str], affluence_zones: list[int], seuil_faible: int, seuil_moyen: int, agents_faible: int, agents_moyen: int, agents_forte: int) -> tuple[int, list[int]]qui, pour chaque zone, attribue un effectif d'agents selon trois paliers d'affluence (< seuil_faible→agents_faible,< seuil_moyen→agents_moyen, sinon →agents_forte), puis renvoie le couple(total_agents, effectifs_par_zone). Par exempleplanification_securite(["Scène A", "Camping"], [500, 200], 300, 700, 2, 4, 6)renvoie(6, [4, 2]).
Console initialisée. En attente de l'interpréteur...