Que contiennent les flacons A, B, C et D ? Lesquels sont des corps purs ?
Objectifs
- Mesurer une masse volumique avec une pipette jaugée et une balance.
- Comparer des mesures à une table de référence, avec une tolérance.
- Distinguer corps pur et mélange par une courbe de chauffage.
- Croiser deux grandeurs pour identifier une espèce.
Compétences travaillées
- Réaliser : pesée, prélèvement, chauffage en sécurité.
- Analyser : choisir les grandeurs utiles.
- Valider : conclure avec les limites de la mesure.
- Communiquer : rédiger une identification argumentée.
Le code s'exécute réellement dans ton navigateur. Au premier clic sur ▶ Exécuter, Python se télécharge (≈ 7 Mo, une seule fois, connexion Internet nécessaire). Le bouton Télécharger .py donne un fichier utilisable dans EduPython, Thonny, Basthon ou Capytale.
Raccourcis : Ctrl + Entrée exécute, Tab décale la ligne de 4 espaces.
Débutant en Python : fais les cinq activités dans l'ordre, en t'aidant des indices. À l'aise avec les variables et les boucles (en général à partir du deuxième trimestre) : l'activité 1 est facultative, commence directement à l'activité 2 et vise l'activité 5 sans indice.
Matériel
- quatre flacons A, B, C, D de liquides incolores ;
- pipette jaugée de 10,0 mL et propipette, bécher, balance au 0,01 g ;
- plaque chauffante, tube à essai avec pierre ponce, thermomètre ou sonde ;
- lunettes de protection, blouse.
Protocole
| Flacon | A | B | C | D |
|---|---|---|---|---|
| \(m\) pour 10,0 mL (g) | ||||
| Ébullition (°C) |
Jeu de données pédagogique Masses de 10,0 mL : A 9,98 g ; B 7,88 g ; C 12,61 g ; D 10,62 g. Ébullition : A palier à 100 °C ; B palier à 78 °C ; C pas d'ébullition avant 120 °C ; D commence à bouillir vers 101 °C, puis la température continue de monter lentement. Valeurs construites à partir de la table de référence, avec des écarts de mesure réalistes.
| Espèce | ρ (g/mL) | T d'ébullition (°C) |
|---|---|---|
| Eau | 1,00 | 100 |
| Éthanol | 0,79 | 78 |
| Acétone | 0,78 | 56 |
| Cyclohexane | 0,78 | 81 |
| Glycérol | 1,26 | 290 |
Tarer remet l'affichage à zéro avec le bécher posé : la balance indique ensuite directement la masse du liquide seul. La pipette jaugée délivre un volume beaucoup plus précis (10,00 ± 0,02 mL environ) qu'une éprouvette (± 0,2 mL ou plus) : sur 10 mL, une erreur de 0,2 mL fausserait la masse volumique de 2 %, assez pour confondre deux espèces.
À partir de la pesée du flacon B, il calcule la masse volumique et la densité, puis indique si ce liquide flotterait sur l'eau (s'il ne s'y mélangeait pas). Comment lire le résultat ? Deux nombres et une phrase.
À faire : complète le calcul de rho, exécute, puis teste avec le flacon C (12,61 g).
V ; en g et en mL, on obtient directement des g/mL.rho = m / Vm = 7.88
V = 10.0
rho_eau = 1.00
rho = m / V
d = rho / rho_eau
print("rho =", round(rho, 3), "g/mL | d =", round(d, 3))
if d < 1:
print("Moins dense que l'eau : il flotterait dessus.")
else:
print("Plus dense que l'eau : il coulerait au fond.")
Résultats attendus. B : \(\rho = 0{,}788\ \text{g/mL}\), \(d = 0{,}788\), il flotterait. C : \(\rho = 1{,}261\ \text{g/mL}\), il coulerait.
Interprétation. La densité est un rapport sans unité ; elle vaut la masse volumique en g/mL parce que celle de l'eau vaut 1,00 g/mL. B est compatible avec trois espèces de la table (éthanol, acétone, cyclohexane) : une seule mesure ne suffit pas.
Erreurs fréquentes. Diviser par 10 000 en croyant convertir en litres : le résultat (0,000 788) n'a plus d'unité cohérente.
Il calcule la masse volumique des quatre flacons et les classe : moins dense que l'eau, comme l'eau (à ± 0,01 g/mL), ou plus dense. Comment lire le résultat ? Une ligne par flacon.
À faire : complète le calcul de rho dans la boucle, exécute, puis réponds à Q2.
V.rho = m[i] / Vflacons = ["A", "B", "C", "D"]
m = [9.98, 7.88, 12.61, 10.62]
V = 10.0
for i in range(len(flacons)):
rho = m[i] / V
if rho < 0.99:
classe = "moins dense que l'eau"
elif rho <= 1.01:
classe = "comme l'eau"
else:
classe = "plus dense que l'eau"
print("Flacon", flacons[i], ": rho =", round(rho, 3), "g/mL ->", classe)
Résultats attendus. A : 0,998 (comme l'eau) ; B : 0,788 (moins dense) ; C : 1,261 (plus dense) ; D : 1,062 (plus dense).
Interprétation. A a la masse volumique de l'eau ; C celle du glycérol. D est plus dense que l'eau mais ne correspond à aucune espèce de la table : premier indice que ce n'est peut-être pas un corps pur. elif (« sinon si ») permet d'enchaîner trois cas.
Erreurs fréquentes. Tester rho == 1.00 : à cause des incertitudes, A (0,998) ne serait jamais classé « comme l'eau ». On compare toujours avec une tolérance.
A est probablement de l'eau et C probablement du glycérol, mais une seule grandeur reste fragile. B hésite entre éthanol, acétone et cyclohexane (0,78 à 0,79 g/mL). D ne correspond à aucune espèce de la table : un autre corps pur, ou un mélange. La température d'ébullition va permettre de trancher.
Il trace la température en fonction du temps pendant le chauffage des flacons A et D, avec un zoom sur la zone 80 – 105 °C. Pourquoi ? Un corps pur bout à température constante (palier horizontal) ; un mélange bout sur une plage de températures. Comment le lire ? On compare la forme des deux courbes après le début de l'ébullition.
À faire : complète la ligne qui trace la courbe du flacon D, exécute, puis compare les deux courbes.
t.T_D.plt.plot(t, T_D, 'o-', color='red', label='flacon D')import matplotlib.pyplot as plt
t = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
T_A = [20, 38, 55, 71, 86, 97, 100, 100, 100, 100, 100]
T_D = [20, 37, 53, 69, 84, 96, 101.2, 101.6, 102.0, 102.5, 103.0]
plt.plot(t, T_A, 'o-', color='navy', label='flacon A')
plt.plot(t, T_D, 'o-', color='red', label='flacon D')
plt.title("Courbes de chauffage")
plt.xlabel("t (min)")
plt.ylabel("température (°C)")
plt.ylim(80, 105) # zoom sur le début de l'ébullition
plt.legend()
plt.grid()
plt.show()
Résultat attendu. La courbe de A présente un palier horizontal à 100 °C à partir de 6 min. Celle de D continue de monter lentement pendant l'ébullition, de 101,2 à 103,0 °C.
Interprétation. A bout à température constante : c'est un corps pur, et 100 °C confirme l'eau. D bout sur une plage de températures, au-dessus de 100 °C : c'est un mélange. Sa masse volumique (1,062 g/mL) et son ébullition au-dessus de 100 °C sont caractéristiques d'une eau salée : en s'évaporant, l'eau laisse une solution de plus en plus concentrée, dont la température d'ébullition augmente.
Erreurs fréquentes. Tracer plt.plot(T_D, t) : les axes sont inversés, et le palier devient une droite verticale difficile à interpréter.
La fonction identifier(rho, teb) parcourt la table de référence. Une espèce est retenue si la masse volumique mesurée est à au plus 0,02 g/mL de la valeur de référence et si la température d'ébullition en est à au plus 2 °C. Si l'ébullition n'a pas été observée (teb = 0), seule la masse volumique est comparée. Comment lire le résultat ? La liste des espèces compatibles avec chaque flacon : une seule, plusieurs, ou aucune.
À faire : complète le calcul de ecart_rho, exécute, puis réponds à Q3.
i, sans tenir compte du signe.i est rho_ref[i].ecart_rho = abs(rho - rho_ref[i])noms = ["eau", "éthanol", "acétone", "cyclohexane", "glycérol"]
rho_ref = [1.00, 0.79, 0.78, 0.78, 1.26]
teb_ref = [100, 78, 56, 81, 290]
def identifier(rho, teb):
compatibles = []
for i in range(len(noms)):
ecart_rho = abs(rho - rho_ref[i])
if teb == 0:
ecart_teb = 0
else:
ecart_teb = abs(teb - teb_ref[i])
if ecart_rho <= 0.02 and ecart_teb <= 2:
compatibles.append(noms[i])
return compatibles
print("A :", identifier(0.998, 100))
print("B (masse volumique seule) :", identifier(0.788, 0))
print("B :", identifier(0.788, 78))
print("C :", identifier(1.261, 0))
print("D :", identifier(1.062, 101))
Résultats attendus. A : ['eau'] ; B avec la masse volumique seule : ['éthanol', 'acétone', 'cyclohexane'] ; B avec l'ébullition : ['éthanol'] ; C : ['glycérol'] ; D : [].
Interprétation. Le croisement de deux grandeurs lève l'ambiguïté pour B : c'est très probablement de l'éthanol. Pour C, une seule grandeur est disponible : « probablement du glycérol », à confirmer (par exemple sa température de fusion, 18 °C). Pour D, la liste vide signifie qu'aucune espèce de la table ne convient : avec l'activité 3, on conclut à un mélange.
Erreurs fréquentes. Oublier abs : un écart négatif (mesure plus petite que la référence) serait toujours « inférieur à 0,02 », et toutes les espèces plus denses seraient déclarées compatibles.
Avec 5 °C, B devient compatible avec l'éthanol (78 °C) et le cyclohexane (81 °C, écart de 3 °C) : on ne peut plus conclure. Une tolérance trop large rend la méthode incapable de distinguer des espèces voisines ; trop étroite, elle rejetterait la bonne espèce à cause des incertitudes de mesure. La tolérance doit correspondre à la précision réelle des mesures.
Tom n'a pas taré la balance : il a pesé le bécher vide (48,35 g), puis le bécher contenant 10,0 mL du flacon B (56,23 g). Il veut la masse volumique en g/mL puis en kg/m³. Son programme contient quatre erreurs : deux l'empêchent de fonctionner, deux donnent un résultat faux sans message. Résultat attendu : 0,788 g/mL, soit 788 kg/m³.
print ; rho_si → rho_SI ; m = m_plein - m_vide ; rho_SI = rho * 1000.m_vide = 48.35
m_plein = 56.23
V = 10.0
m = m_plein - m_vide # erreur 3 : on retranche la masse du bécher
rho = m / V
rho_SI = rho * 1000 # erreur 4 : 1 g/mL = 1 000 kg/m3
print("rho =", round(rho, 3), "g/mL") # erreur 1 : parenthèse
print("rho =", round(rho_SI), "kg/m3") # erreur 2 : rho_si n'existe pas
Erreur 1 (bloquante). La parenthèse du premier print n'est pas fermée : erreur de syntaxe.
Erreur 2 (bloquante). rho_si n'existe pas (Python distingue majuscules et minuscules) : NameError.
Erreur 3 (silencieuse). La masse du liquide est la différence des deux pesées : en additionnant, on compte deux fois le bécher.
Erreur 4 (silencieuse). \(1\ \text{g/mL} = 1\ \text{kg/L} = 1\,000\ \text{kg/m}^3\) : il faut multiplier par 1 000.
Résultat après correction. rho = 0.788 g/mL et rho = 788 kg/m3.
10,5 g/mL, c'est presque la masse volumique du plomb (11,3) : impossible pour un liquide incolore de la table, dont aucune espèce ne dépasse 1,26 g/mL. Et les deux lignes se contredisent : 10,458 g/mL devrait donner 10 458 kg/m³, pas 1 046. Le premier résultat révèle une erreur sur la masse (le bécher compté deux fois), le second une erreur de conversion.
A : masse volumique 0,998 g/mL et palier d'ébullition à 100 °C : corps pur, très probablement de l'eau (deux grandeurs concordantes). B : 0,788 g/mL et ébullition à 78 °C : corps pur, très probablement de l'éthanol ; la masse volumique seule ne suffisait pas, c'est l'ébullition qui a tranché. C : 1,261 g/mL, pas d'ébullition avant 120 °C : probablement du glycérol (une seule grandeur mesurée, l'absence d'ébullition est cohérente avec 290 °C ; à confirmer). D : 1,062 g/mL, ébullition sur une plage au-dessus de 100 °C, aucune espèce de la table compatible : c'est un mélange, probablement une eau salée. Une identification fiable croise au moins deux grandeurs et se conclut avec ses limites : « très probablement ».
Grille d'auto-évaluation
A = je sais faire seul · B = avec un peu d'aide · C = partiellement · D = à retravailler.
| Compétence | A | B | C | D |
|---|---|---|---|---|
| Mesurer une masse volumique (pipette, balance) | ||||
| Comparer une mesure à une référence avec une tolérance | ||||
| Distinguer corps pur et mélange par une courbe de chauffage | ||||
| Croiser deux grandeurs pour identifier une espèce | ||||
| Écrire et utiliser une fonction Python | ||||
| Repérer une erreur par un ordre de grandeur |
Fiche professeur
Organisation
Durée totale estimée : 120 min. En séance de 1 h 30 : partie expérimentale et activités 1 à 3 ; activités 4 et 5 et conclusion en fin de séance, à la maison ou en séance suivante. Le parcours « à l'aise » (activité 1 facultative) fait gagner environ 10 min.
Préparation
Préparer les quatre flacons : A eau distillée, B éthanol, C glycérol, D eau salée à environ 90 g/L. Étiqueter seulement A, B, C, D. Prévoir une plaque chauffante par îlot.
Sécurité
Éthanol inflammable : plaque chauffante uniquement, aucune flamme dans la salle. Lunettes pendant le chauffage. Le glycérol n'est pas chauffé au-delà de 120 °C.
Points de vigilance
La pipette jaugée doit être rincée avec le liquide à prélever. Le palier de l'eau peut apparaître à 98–99 °C selon l'altitude et l'étalonnage de la sonde : c'est la constance qui compte, pas la valeur exacte.
Différenciation
Aide : Donner la table de référence imprimée ; pour l'activité 4, faire d'abord la recherche « à la main » pour le flacon B.
Approfondissement : Proposer un cinquième flacon (acétone) et faire retrouver qu'il bout à 56 °C ; discuter la tolérance de 2 °C.
Évaluation (sur 20)
Q5 (identification argumentée, 8 pts) ; activité 4 (fonction, 6 pts) ; activité 5 (4 erreurs, 4 pts) ; soin des mesures (2 pts).
Les corrections détaillées des activités Python et des questions sont dans les encadrés de chaque partie.
Pour consolider : exercices 2, 5 et 9, puis le quiz du cours.
Exercices corrigés Retour au cours