Programme pour tableau avancement chimie terminale
Fermé
chu123
-
31 oct. 2021 à 17:55
yg_be Messages postés 23361 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 novembre 2024 - 1 nov. 2021 à 09:55
yg_be Messages postés 23361 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 novembre 2024 - 1 nov. 2021 à 09:55
A voir également:
- Programme python tableau d'avancement
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Programme demarrage windows 10 - Guide
- Trier tableau excel - Guide
2 réponses
yg_be
Messages postés
23361
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 novembre 2024
Ambassadeur
1 556
31 oct. 2021 à 21:30
31 oct. 2021 à 21:30
bonjour,
1) utilise les balises de code quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
2) tu dois compléter un code, ne penses-tu pas utile de nous montrer le code de départ?
3) tu as une erreur à une ligne où tu compares deux variables.
as-tu écrit cette ligne? à quoi sert-elle?
as-tu visualisé le contenu de ces deux variables?
1) utilise les balises de code quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
2) tu dois compléter un code, ne penses-tu pas utile de nous montrer le code de départ?
3) tu as une erreur à une ligne où tu compares deux variables.
as-tu écrit cette ligne? à quoi sert-elle?
as-tu visualisé le contenu de ces deux variables?
Merci beaucoup de votre réponse!
Voilà les questions de l'exercice:
1. Le programme, dans un premier temps, doit pouvoir calculer les quantités de matière à chaque nouvel avancement x. À l’aide d’un tableau d’avancement, compléter les lignes 22 à 25 permettant de calculer les quantités de matière nA, nB, nC et nD.
2. Décommenter les lignes 42 à 45 permettant de représenter l’évolution des quantités de matière au cours de l’avancement x.
Le quotient de réaction Qr est une grandeur ne dépendant que des concentrations des espèces chimiques en solution. Le solvant et les solides n’ont pas d’influence :
Qr=((n_C/V)**c*(n_D/V)**d)/((n_A/V)**a*(n_B/V)**b)
On considère un volume V constant au cours de la réaction. La concentration standard c°, évoquée dans le chapitre, n'est pas abordée ici.
3. Compléter la ligne 26 permettant de calculer le quotient de réaction Qr à chaque avancement x.
4. Décommenter la ligne 55 permettant d’afficher l’évolution de Qr
en fonction de l’avancement x.
La boucle permettant la détermination de l’avancement final xf, entre les lignes 29 et 34, nécessite une condition pour être fonctionnelle. Pour une réaction chimique, si Qr atteint la constante d’équilibre K, l’avancement final xf est atteint.
5. Décommenter les lignes 29 à 34 ainsi que les lignes 41, 52 et 60. Écrire la condition permettant la détermination de l’avancement final xf et lancer le programme.
(les lignes ne correspondent pas, mais celles à compléter sont signalées par #A complete)
Et le programme donné:
Le lien de l'exercice: https://www.lelivrescolaire.fr/page/14270721
Mon code:
Jusqu'à la question 4 tout marche bien, les graphes s'affichent correctement. Pour la question 5, je déduis de l'énoncé que la boucle doit continuer tant que Qr est inférieur à K. C'est pour cela que je complète la condition par "Qr<K". Mais quand je lance le programme, le message d'erreur s'affiche.
J'espère que c'est plus complet!
Voilà les questions de l'exercice:
1. Le programme, dans un premier temps, doit pouvoir calculer les quantités de matière à chaque nouvel avancement x. À l’aide d’un tableau d’avancement, compléter les lignes 22 à 25 permettant de calculer les quantités de matière nA, nB, nC et nD.
2. Décommenter les lignes 42 à 45 permettant de représenter l’évolution des quantités de matière au cours de l’avancement x.
Le quotient de réaction Qr est une grandeur ne dépendant que des concentrations des espèces chimiques en solution. Le solvant et les solides n’ont pas d’influence :
Qr=((n_C/V)**c*(n_D/V)**d)/((n_A/V)**a*(n_B/V)**b)
On considère un volume V constant au cours de la réaction. La concentration standard c°, évoquée dans le chapitre, n'est pas abordée ici.
3. Compléter la ligne 26 permettant de calculer le quotient de réaction Qr à chaque avancement x.
4. Décommenter la ligne 55 permettant d’afficher l’évolution de Qr
en fonction de l’avancement x.
La boucle permettant la détermination de l’avancement final xf, entre les lignes 29 et 34, nécessite une condition pour être fonctionnelle. Pour une réaction chimique, si Qr atteint la constante d’équilibre K, l’avancement final xf est atteint.
5. Décommenter les lignes 29 à 34 ainsi que les lignes 41, 52 et 60. Écrire la condition permettant la détermination de l’avancement final xf et lancer le programme.
(les lignes ne correspondent pas, mais celles à compléter sont signalées par #A complete)
Et le programme donné:
import numpy as np import matplotlib.pyplot as plt # La reaction consideree est A + B -> C + D # Coefficients stoechiometriques a, b, c, d = 1, 1, 1, 1 # Quantites de matiere initiales et volume initial n_iA, n_iB, n_iC, n_iD = 0.1, 0.1, 0, 0 V = 100.0e-3 # Constante d'equilibre K = 1e-1 # Calcul de l'avancement final et generation des valeurs de x entre 0 mol et xmax xmax = min(n_iA/a, n_iB/b) x = np.arange(0, xmax, xmax/10000.0) tau = x/xmax # Calcul des quantites de matiere et du quotient de reaction a chaque avancement x #n_A = # A complete #n_B = # A complete #n_C = # A complete #n_D = # A complete #Q_r = # A complete # Determination de l'avancement final x_f #for i in range(len(x)) : # if (# A complete) : # x_f = x[i] # i = i+1 # else : # continue plt.subplot(2,1,1) plt.ylabel('Quantites de matiere \n de A, B, C et D (mol/L)', fontsize=8) plt.title('Evolutions des concentrations', fontsize=8) plt.grid() plt.axis(xmin=0, xmax=1) #plt.axvline(x = x_f/xmax, label = '$\\tau_f$') #plt.plot(tau, n_A, color = 'red', label='$n_A$') #plt.plot(tau, n_B, color = 'blue', label='$n_B$') #plt.plot(tau, n_C, color = 'green', label='$n_C$') #plt.plot(tau, n_D, color = 'orange', label='$n_D$') plt.legend() plt.show() plt.subplot(2,1,2) plt.xlabel('Taux d\'avancement $\\tau$', fontsize=8) plt.ylabel('Constante de reaction $Q_r$ \n et constante d\'equilibre $K$', fontsize=8) plt.title('Evolution du quotient de reaction \n en fonction de l\'avancement', fontsize=8) #plt.axvline(x = x_f/xmax, label = '$\\tau_f$') plt.axis(xmin=0, xmax=1) plt.plot(tau, K*np.ones(len(x)), color = 'blue', label='$K$') #plt.plot(tau, Q_r, color = 'red', label='$Q_r$') plt.yscale('log') plt.legend() plt.show() #print('L\'avancement final correspond a x_f = ' + str(x_f) + ' mol, soit un taux d\'avancement final tau_f = ' + str(x_f/xmax) + '.')
Le lien de l'exercice: https://www.lelivrescolaire.fr/page/14270721
Mon code:
import numpy as np import matplotlib.pyplot as plt # La reaction consideree est A + B -> C + D # Coefficients stoechiometriques a, b, c, d = 1, 1, 1, 1 # Quantites de matiere initiales et volume initial n_iA, n_iB, n_iC, n_iD = 0.1, 0.1, 0, 0 V = 100.0e-3 # Constante d'equilibre K = 1e-1 # Calcul de l'avancement final et generation des valeurs de x entre 0 mol et xmax xmax = min(n_iA/a, n_iB/b) x = np.arange(0, xmax, xmax/10000.0) tau = x/xmax # Calcul des quantites de matiere et du quotient de reaction a chaque avancement x n_A = n_iA-a*x n_B = n_iB-b*x n_C = n_iC+c*x n_D = n_iD+d*x Q_r = ((n_C/V)**c*(n_D/V)**d)/((n_A/V)**a*(n_B/V)**b) # Determination de l'avancement final x_f for i in range(len(x)) : if Q_r<K: x_f = x[i] i = i+1 else : continue plt.subplot(2,1,1) plt.ylabel('Quantites de matiere \n de A, B, C et D (mol/L)', fontsize=8) plt.title('Evolutions des concentrations', fontsize=8) plt.grid() plt.axis(xmin=0, xmax=1) plt.axvline(x = x_f/xmax, label = '$\\tau_f$') plt.plot(tau, n_A, color = 'red', label='$n_A$') plt.plot(tau, n_B, color = 'blue', label='$n_B$') plt.plot(tau, n_C, color = 'green', label='$n_C$') plt.plot(tau, n_D, color = 'orange', label='$n_D$') plt.legend() plt.show() plt.subplot(2,1,2) plt.xlabel('Taux d\'avancement $\\tau$', fontsize=8) plt.ylabel('Constante de reaction $Q_r$ \n et constante d\'equilibre $K$', fontsize=8) plt.title('Evolution du quotient de reaction \n en fonction de l\'avancement', fontsize=8) plt.axvline(x = x_f/xmax, label = '$\\tau_f$') plt.axis(xmin=0, xmax=1) plt.plot(tau, K*np.ones(len(x)), color = 'blue', label='$K$') plt.plot(tau, Q_r, color = 'red', label='$Q_r$') plt.yscale('log') plt.legend() plt.show() print('L\'avancement final correspond a x_f = ' + str(x_f) + ' mol, soit un taux d\'avancement final tau_f = ' + str(x_f/xmax) + '.')
Jusqu'à la question 4 tout marche bien, les graphes s'affichent correctement. Pour la question 5, je déduis de l'énoncé que la boucle doit continuer tant que Qr est inférieur à K. C'est pour cela que je complète la condition par "Qr<K". Mais quand je lance le programme, le message d'erreur s'affiche.
J'espère que c'est plus complet!
yg_be
Messages postés
23361
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 novembre 2024
1 556
1 nov. 2021 à 09:55
1 nov. 2021 à 09:55
as-tu visualisé le contenu des deux variables que tu compares?
n'observes-tu pas une anomalie dans les lignes 22 à 27? à quoi sert le test en ligne 23, alors qu'aucune des deux variables n'est modifiée dans la boucle?
n'observes-tu pas une anomalie dans les lignes 22 à 27? à quoi sert le test en ligne 23, alors qu'aucune des deux variables n'est modifiée dans la boucle?