Situation & Simulateur (Tarif d'accès)
Un complexe sportif souhaite automatiser la facturation d'un accès journalier dont le tarif de base est fixé à 20 DT.
Le client indique son âge (entier positif) et choisit une formule via un code caractère (majuscule ou minuscule) :
- Formule Piscine (
'P'ou'p') : supplément de +5 DT. - Formule Musculation (
'M'ou'm') : supplément de +10 DT. - Formule Accès Total (
'T'ou't') : supplément de +15 DT. - Tout autre code : la formule est considérée comme invalide.
Si la formule est valide, le prix brut est calculé par :
Prix brut = 20 DT + Supplément. Une remise selon l'âge est ensuite
appliquée pour obtenir le montant net à payer :
- Moins de 12 ans (< 12) : Gratuit (remise de 100%, net = 0 DT).
- De 12 à 17 ans inclus : Réduction de 50%
(
prix_net = prix_brut * 0.5). - 60 ans et plus (≥ 60) : Réduction de 20%
(
prix_net = prix_brut * 0.8). - De 18 à 59 ans : Plein tarif (sans remise,
prix_net = prix_brut).
"Formule invalide !" si le code est non reconnu.
1. Formules & Suppléments :
-
'P'Piscine+5 DT
-
'M'Musculation+10 DT
-
'T'Total+15 DT
-
AutreInvalideErreur
2. Remises par Âge :
-
< 12 ansEnfantGratuit
-
12 à 17 ansJunior-50%
-
≥ 60 ansSenior-20%
-
18 à 59 ansAdultePlein tarif
Si ... Sinon Si ... Sinon.
Détail du calcul :
Questions orales :
Structures conditionnelles & Opérateurs
| Structure / Opération | Algorithmique | Python (3.10+) |
|---|---|---|
| Forme simple |
|
|
| Forme alternative |
|
|
| Forme généralisée |
|
|
|
Choix multiple Valeurs & Intervalles |
|
|
| Opérateurs logiques |
|
|
| Comparaisons & Appartenance |
|
|
..
En algorithmique, un intervalle s'écrit avec deux points borne_min .. borne_max (bornes
incluses).
En Python (match-case), on utilise une condition de garde
(case x if ...:).
Selon note
0 .. 9 : Écrire("Insuffisant")
10 .. 13 : Écrire("Moyen")
14 .. 16 : Écrire("Bien")
17 .. 20 : Écrire("Très Bien")
Sinon
Écrire("Note invalide")
Fin Selon
match note:
case n if 0 <= n <= 9:
print("Insuffisant")
case n if 10 <= n <= 13:
print("Moyen")
case n if 14 <= n <= 16:
print("Bien")
case n if 17 <= n <= 20:
print("Très Bien")
case _:
print("Note invalide")
À retenir :
- Selon : Le sélecteur doit être un Entier ou un Caractère.
- Clause par défaut :
case _ :en Python correspond auSinonduSelon. - Indentation : 4 espaces obligatoires en Python (remplace
FinSi/Fin Selon).
En algo : = (affectation : ←). En Python : ==
(affectation : =).
valide ← (age = 18)
valide = (age == 18)
En Python, séparer les options d'un case par | (et non une virgule).
case "P" | "p": # Correct
# Erreur : case "P", "p":
En algo : avec Et. En Python : comparaison chaînée directe.
(age ≥ 12) Et (age ≤ 17)
12 <= age <= 17