Exercices d'application

Exercice 1. (dilution)

On veut préparer \(V_f = 100~{\rm mL}\) d'une solution fille d'eau salé de concentration \(C_f = 5~\rm g\cdot L^{-1}\) à partir d'une solution mère de concentration \(C_m = 30~{\rm g \cdot L^{-1}}\).

Écrire un programme Python qui calcule :

  • le facteur de dilution \(F\) ;

  • le volume de la solution mère \(V_m\) à prélever ;

  • le volume d'eau \(V_{eau}\) à compléter ;

et qui affiche un message de la forme suivante :

Prélever ?  mL de solution mère.
Puis ajouter ? mL d eau pour obtenir ? mL de solution fille.
Le facteur de dilution est de ?.

Exercice 2. (distance focale)

Le tableau ci-dessous donne plusieurs mesures de la distance focale d'une lentille.

\(f'\) (cm)

19,1

18,9

18,7

19,0

18,9

19,2

18,8

18,9

  1. Mettre ce tableau dans une liste.

  2. Comment obtenir la valeur de la première mesure ? De la dernière ?

  3. Comment ajouter une nouvelle mesure égale à \(19,3~{\rm cm}\) à la fin du tableau ?

  4. Comment obtenir la taille de ce tableau ?

  5. Comment obtenir la moyenne, la valeur maximale et la valeur minimale de cette série de mesures ?

  6. Comment supprimer la première valeur et la dernière valeur de ce tableau ?

Exercice 3. (célérité son)

Compléter le code suivant qui doit calculer la moyenne de la liste c.

c = [335, 338, 341, 339, 340, 336, 343, 337, 341, 339, 337] # (m/s) célérité son

somme = 0

for i in range(?):
    somme = somme + ?

moyenne = ?
print("Moyenne =", moyenne)

Exercice 4. (vitesse)

On donne les valeurs de l'altitude \(z\) d'une balle de tennis en chute libre en fonction du temps \(t\).

Compléter le code ci-dessous qui doit calculer les valeurs prises par la vitesse \(v\) de cette balle pour chaque instant à partir de la relation :

\[v_n = \dfrac{z_{n+1}-z_{n-1}}{t_{n+1}-t_{n-1}} \hspace{1cm}\text{ou}\hspace{1cm} v_n = \dfrac{z_{n+1}-z_{n}}{t_{n+1}-t_{n}}\]
t = [0. , 0.04, 0.08, 0.12, 0.16, 0.20, 0.24, 0.28, 0.32, 0.36, 0.40, 0.44, 0.48] # (s)
z = [1.66, 1.61, 1.53, 1.45, 1.35, 1.23, 1.10, 0.96, 0.79, 0.61, 0.42, 0.21, 0. ] # (m)

v = []  # Initialisation d'une liste vide

for i in range(?):
    V = ?           # Calcul la vitesse en cours
    v.append(?)     # Mémorisation de la vitesse

print(v)

Exercice 5. (énergies)

On souhaite faire l'étude énergétique de cette même balle de tennis de masse \(m =55~\rm g\).

Compléter le code ci-dessous afin de déterminer les valeurs prises par l'énergie potentielle de pesanteur \(E_{pp}\), l'énergie cinétique \(E_C\) et l'énergie mécanique \(E_m\) pour chaque position de la balle.

z = [1.61, 1.53, 1.45, 1.35, 1.23, 1.10, 0.96, 0.79, 0.61, 0.42, 0.21] # (m)
v = [1.58, 1.95, 2.27, 2.69, 3.12, 3.49, 3.91, 4.38, 4.65, 4.91, 5.23] # (m/s)

Epp, Ec, Em = [], [], []  # Initialisations des tableaux

for i in range(?):
    EPP = ?       # Calcul l'énergie potentielle de pesanteur en cours
    EC = ?        # Calcul l'énergie cinétique en cours
    Epp.append(?) # Complète le tableau Epp
    Ec.append(?)  # Complète le tableau Ec
    Em.append(?)  # Complète le tableau Em

# Faire ici l'affichage

Exercice 6. (énergies)

Compléter le code ci-dessous qui reprend l'exercice précédent par compréhension de liste.

z = [1.61, 1.53, 1.45, 1.35, 1.23, 1.10, 0.96, 0.79, 0.61, 0.42, 0.21] # (m)
v = [1.58, 1.95, 2.27, 2.69, 3.12, 3.49, 3.91, 4.38, 4.65, 4.91, 5.23] # (m/s)

m = 55E-3  # (kg)   Masse de la balle
g = 9.81   # (m/s²) Accélération de la pesanteur

Epp = [? for Z in z]           # Tableau des énergies potentielles de pesanteur
Ec  = [?           ]           # Tableau des énergies cinétiques
Em  = [? for i in range(?)]  # Tableau des énergies mécaniques

# Faire ici l'affichage

Exercice 7. (nombre de dilutions)

Compléter le code ci-dessous qui calcule le nombre de dilutions par 10 d'une solution mère de concentration \(C_m\) pour obtenir une solution fille de concentration \(C_f\).

Cm = 1.0    # Concentration solution mère
Cf = 1.0e-3 # Concentration solution fille
Nb = ?    # Nombre de dilution

while ?:
    Nb = Nb + 1
    Cm = ?

print("Il faut réaliser", ?, "dilutions !")

Modifier le programme pour prendre en compte un facteur de dilution quelconque.

Exercice 8. (avancement)

Soit une réaction chimique totale décrite par l'équation suivante :

\[\rm a \cdot A + b \cdot B = c\cdot C + d \cdot D\]
  • A et B sont les réactifs

  • C et D sont les produits.

  • a, b, c, d sont les coefficients stœchiométriques.

Compléter le programme ci-dessous qui doit déterminer l'avancement final et toutes les quantités de matière à l'état final.

a, b, c, d = 1, 2, 3, 2                   # coefficients stoechiométiques
n_A, n_B, n_C, n_D = 0.5, 0.5, 0, 0       # (mol) Quantités de matière initiales

x = ?        # Initialisation de l'avancement
dx = ?       # Pas de l'avancement

while ? :
    x = x + dx     # Incrémentation de l'avancement
    n_A = ?
    n_B = ?
    n_C = ?
    n_D = ?

# Faire ici l'affichage

Exercice 9. (dilution)

On considère la dilution de l'exercice 1.

  1. Ecrire d'une fonction dilution qui renvoie le volume \(V_m\) de la solution mère à prélever à partir de \(C_m\), \(C_f\) et \(V_f\).

  2. Améliorer cette fonction dilution pour qu'elle retourne le volume \(V_m\), le volume d'eau \(V_{eau}\) à compléter et le facteur de dilution \(F\).

Exercice 10. (pH)

  • Ecrire une fonction potentiel_hydrogene qui calcule le \(pH\) d'une solution à partir de la relation :

\[pH = -\log(\dfrac{[H_3O^+]}{C_0}) \hspace{1cm}\text{avec}\hspace{1cm} C_0 = 1~{\rm mol\cdot L^{-1}}\]
  • Ecrire également une fonction concentration_ion_hydronium qui fait l'opération inverse.

Exercice 11. (énergies)

Reprendre l'exercice 5 en calculant les énergies \(E_{pp}\), \(E_c\) et \(E_m\) à partir de tableaux Numpy des grandeurs \(z\) et \(v\).

import numpy as np

z = [1.61, 1.53, 1.45, 1.35, 1.23, 1.10, 0.96, 0.79, 0.61, 0.42, 0.21] # (m)
v = [1.58, 1.95, 2.27, 2.69, 3.12, 3.49, 3.91, 4.38, 4.65, 4.91, 5.23] # (m/s)

Exercice 12. (positions et vecteurs vitesse)

Représenter sur un repère les positions des points de la balle de tennis de l'exercice 4 lors de sa chute libre.

Faire apparaître également le vecteur vitesse pour chaque point. La composante en x du vecteur vitesse est considérée comme nulle !

import matplotlib.pyplot as plt

x = [.014, .014, .014, .009, .009, .005, .005, .001, .001, .001, .003] # (m)
z = [1.61, 1.53, 1.45, 1.35, 1.23, 1.10, 0.96, 0.79, 0.61, 0.42, 0.21] # (m)
v = [1.58, 1.95, 2.27, 2.69, 3.12, 3.49, 3.91, 4.38, 4.65, 4.91, 5.23] # (m/s)

Exercice 13. (positions et vecteurs vitesse)

Faire le même travail pour un lancé d'une balle. Les composantes \(v_x\) et \(v_y\) sont à calculer.

t = [0.0, 0.0667, 0.1334, 0.2001, 0.2668, 0.3335, 0.4002, 0.4669, 0.5336, 0.6003, 0.667, 0.7337, 0.8004, 0.8671, 0.9338]
x = [0.003, 0.141, 0.275, 0.410, 0.554, 0.686, 0.820, 0.958, 1.089, 1.227, 1.359, 1.490, 1.599, 1.705, 1.801]
y = [0.746, 0.990, 1.175, 1.336, 1.432, 1.505, 1.528, 1.505, 1.454, 1.355, 1.207, 1.018, 0.797, 0.544, 0.266]

Exercice 14. (histogramme et incertitude-type A)

Reprendre la répétition des mesures de la distance focale d'une lentille de l'exercice 2.

f = [19.1, 18.9, 18.7, 19.0, 18.9, 19.2, 18.8, 18.7] # (mm)
  1. Tracer l'histogramme de cette série de mesures.

  2. Déterminer la valeur moyenne, l'écart-type et l'évaluation de l'incertitude du type A.

  3. Afficher le résultat de la mesure sous la forme suivante :

\[X = \bar{x} \pm u(\bar{x})~\text{unité}\]