# Estimation expérimentale de la capacité thermique du calorimètre et de l'incertitude associée à cette mesure.
# importation de la bibliothèque numpy
import numpy as np
# =====================================
# PARTIE À COMPLÉTER PAR LE CANDIDAT
# =====================================
N= ...   # nombre d'essais pour la simulation
m1= ...  # exprimée en gramme
T1= ...  # exprimée en degré Celsius
m2= ...  # exprimée en gramme
T2= ...  # exprimée en degré Celsius
Tf= ...  # exprimée en degré Celsius
c_eau= 4.18 # capacité thermique de l'eau exprimée en joule par kelvin par gramme
u_dT= ... # u(ΔT) incertitude type associée à une différence de température

# =====================================
# PARTIE À COMPLÉTER PAR LE PROFESSEUR
# =====================================
u_m= ... # u(m) précision associée à la mesure d'une masse

# creation d'un liste
capacite=[]
variation_eau_chaude_sim=[]
# Algorithme de Monte Carlo
for k in range(N):
    T1_sim=np.random.uniform(T1-u_dT,T1+u_dT)
    T2_sim=np.random.uniform(T2-u_dT,T2+u_dT)
    Tf_sim=np.random.uniform(Tf-u_dT,Tf+u_dT)
    m1_sim=np.random.uniform(m1-u_m,m1+u_m)
    m2_sim=np.random.uniform(m2-u_m,m2+u_m)
    variation_eau_chaude=Tf_sim-T2_sim
    variation_eau_froide=Tf_sim-T1_sim
# PARTIE À COMPLÉTER PAR LE CANDIDAT avec la formule littérale de la capacité thermique du calorimètre
    capacite.append(...) 
# Calcul de la capacité thermique du calorimètre
capa_calculee=sum(capacite)/N
# Calcul de l'incertitude type du calorimètre
ucapa_calculee=int(np.floor(np.std(capacite,ddof=1))+1)
# Affichage des résultats
print("Valeur de la capacité thermique du calorimètre : C =",capa_calculee,'J/K')
print("Incertitude type de la capacité thermique du calorimètre u(C) =",ucapa_calculee,'J/K')
