# Créé par Fab Cap2, le 27/05/2026 en Python 3.7
import numpy as np
import matplotlib.pyplot as plt

# =========================================
# DONNÉES DU DOSAGE
# =========================================

# Compléter le volume d'acide prélevé à préciser
Va = ...       # en L

# Compléter la concentration d'hydroxyde de sodium
Cb = ...      # en mol/L

# =========================================
# COURBE DE DOSAGE pH = f(V)
# =========================================

# Volumes d'hydroxyde de sodium versés (mL)
# Compléter la valeur manquante
V = np.array([
     0, 1, 2, 3, 4, ...,
     6, 7, 8, 9, 9.5,
     9.8, 10.0, 10.2, 10.5,
     11, 12, 13, 14, 15,
     16, 17, 18
])

# Valeurs du pH
# Compléter la valeur manquante
pH = np.array([
    3.1, 3.2, 3.3, 3.5, 3.7, ...,
    4.1, 4.4, 4.8, 5.5, 6.2,
    7.0, 8.8, 9.8, 10.3,
    10.6, 10.8, 10.9, 11.0, 11.1,
    11.15, 11.2, 11.25
])

# =========================================
# AFFICHAGE DE LA COURBE
# =========================================

plt.figure(figsize=(8,5))

plt.plot(
    V,
    pH,
    marker="o",
    linewidth=2,
    markersize=5,
    label="Courbe expérimentale"
)

plt.xlabel("Volume de soude versé V (mL)")
plt.ylabel("pH")

plt.title("Dosage pH-métrique de l'acide éthanoïque")

plt.grid()
plt.legend()

plt.show()

# =========================================
# EXPLOITATION
# =========================================

Veq_mL = float(
    input("Entrer le volume équivalent Veq en mL : ")
)

# Conversion en litre
Veq = Veq_mL * 1e-3

# =========================================
# À COMPLÉTER PAR L'ÉLÈVE
# =========================================

# Compléter la ligne suivante :
Ca = ...

# =========================================
# AFFICHAGE DU RÉSULTAT
# =========================================

print("===================================")
print("RÉSULTAT")
print("===================================")

print(f"Va = {Va*1e3:.1f} mL")
print(f"Cb = {Cb:.2e} mol/L")
print(f"Veq = {Veq_mL:.1f} mL")

print(f"Ca = {Ca:.3e} mol/L")
