Les sujets 2026 sont disponibles.
Vous trouverez dans quelques jours des propositions de correction sur les sites suivants :
- ECE BAC
- Bibliothèque de Capytale (Chercher EP 2026)
- MATHS 93
- PIXEES
- Site de Gilles Lassus
- Site de Fred Peuriere
En attendant, en voici un pris au hasard, le SUJET 10 avec une proposition de correction :
On rappelle à l’élève amnésique qu’il existe une aide dans Python qui peut lui rafraichir la mémoire :
help(dict)
1ère partie
donnees = [
{"jour": "2025-02-04", "heure": "00:00", "chaude": 2, "froide": 3},
{"jour": "2025-02-04", "heure": "01:00", "chaude": 1, "froide": 2},
{"jour": "2025-02-04", "heure": "02:00", "chaude": 0, "froide": 0},
{"jour": "2025-02-04", "heure": "03:00", "chaude": 0, "froide": 0},
{"jour": "2025-02-04", "heure": "04:00", "chaude": 0, "froide": 1},
{"jour": "2025-02-04", "heure": "05:00", "chaude": 0, "froide": 0},
{"jour": "2025-02-04", "heure": "06:00", "chaude": 4, "froide": 6},
{"jour": "2025-02-04", "heure": "07:00", "chaude": 6, "froide": 8},
{"jour": "2025-02-05", "heure": "00:00", "chaude": 0, "froide": 0},
{"jour": "2025-02-05", "heure": "01:00", "chaude": 1, "froide": 1},
{"jour": "2025-02-05", "heure": "02:00", "chaude": 1, "froide": 1},
{"jour": "2025-02-05", "heure": "03:00", "chaude": 1, "froide": 1},
{"jour": "2025-02-05", "heure": "04:00", "chaude": 0, "froide": 0},
{"jour": "2025-02-05", "heure": "05:00", "chaude": 0, "froide": 0},
]
# -----------------------------
# Fonctions à compléter
# -----------------------------
def total_conso(donnees, jour):
resultat = 0
for mesure in donnees:
if mesure["jour"]==jour:
resultat += mesure["chaude"] + mesure["froide"]
return resultat if resultat>0 else None
def fuite_possible(donnees, jour):
serie=0
for mesure in donnees:
if mesure["jour"]==jour:
if mesure["heure"]>="00:00" and mesure["heure"]<="05:00":
if mesure["chaude"] + mesure["froide"]>0 and serie<3:
serie+=1
if serie>2:
return True
else:
serie=0
return False
Version récursive de la fonction total_conso() :
def total_conso(donnees: list, jour: str):
# Cas de base : si la liste est vide, on n'a trouvé aucune mesure pour ce jour
if len(donnees) == 0:
return None
a = donnees[0]
if a['jour'] == jour:
# Si on trouve une mesure du jour, on l'ajoute et on continue
reste = total_conso(donnees[1:], jour)
# Si le reste est None, on retourne juste la mesure courante
if reste is None:
return a['chaude'] + a['froide']
return (a['chaude'Version] + a['froide']) + reste
# Si la mesure courante n'est pas du jour demandé, on continue
return total_conso(donnees[1:], jour)
total_conso(donnees, "2025-02-04"),total_conso(donnees, "2025-02-05"),total_conso(donnees, "2025-02-14")
2ème partie
# -----------------------------
# Fonction fournie (corrigée)
# -----------------------------
def lissage_conso(valeurs):
"""
Calcule une moyenne glissante sur les valeurs.
Pour chaque valeur, on calcule la moyenne avec ses voisins.
"""
n=len(valeurs)
if n<2: #On s'occupe des cas où valeurs est vide ou contient un seul élément
return valeurs
else:
lisse = []
for i in range(n):
if i == 0:
m = (valeurs[i] + valeurs[i+1]) / 2
elif i == n - 1:
m = (valeurs[i-1] + valeurs[i]) / 2
else:
m = (valeurs[i-1] + valeurs[i] + valeurs[i+1]) / 3 #Il faut diviser par 3, pas par 2 !
lisse.append(m)
return lisse
# -----------------------------
# Espace pour les tests
# -----------------------------
def test_lissage():
assert lissage_conso([10])==[10]
assert lissage_conso([10, 20, 33, 40, 50])==[15.0, 21.0, 31.0, 41.0, 45.0]
assert lissage_conso([10, 2])==[6.0, 6.0]