{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Chapitre 3 : Evolution d'un système chimique\n", "## Activité 2 p61 : Des outils numériques à l'aide du chimiste\n", "**Niveau INITIATION**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " Le programme suivant permet de déterminer l'avancement maximal et\n", " la composition à l'état final d'un système siège d'une glycolyse, transformation\n", " chimique (suposée totale), modélisée par la réaction d'équation :\n", " \n", ">$ C_6 H_{12}O_6 + 2~ADP^{3–} + 2~HPO_4^{2-} + 2~NAD^+ → 2~C_3 H_3 O_3^– + 2~ATP^{4–} + 2~NADH + 2~H_3O^+$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Objectifs**\n", "\n", "Les objectifs de l'activité sont les suivants :\n", "- repérer le nombre de réactifs initialement présents, ainsi que le nombre de produits formés;\n", "- associer les nombres stoechiométriques à chaque réactif et à chaque produit;\n", "- demander à l'utilisateur de rentrer les quantités initiales en réactif (celles en produits seront choisies nulles);\n", "- calculer et afficher l'avancement maximal;\n", "- calculer et afficher les quantités de matière à l'état final de la transformation, considérée comme totale." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Programme**\n", "\n", "Affectation (multiple) du nombre de réactifs et du nombre de produits de la réaction :" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "nbeR,nbeP=4,...à compléter..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Affectation (multiple) des nombres stoechiométriques associés aux réactifs dans une première liste et associés aux produits dans une seconde liste :" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "liste_a,liste_b=[1,2,2,2],...à compléter..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Initialisation de la liste des quantités initiales en réactifs :" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "liste_nR=list() # ou bien : liste_nR = []" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Demande des quantités initiales en réactifs à l'utilisateur, et stockage dans la liste précédemment initialisée :" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "for k in range(...à compléter...): # pour chaque réactif...\n", " nR=float(input(\"Quantité initiale en réactif R\"+str(k+1)+\" : \")) # ... demande la quantité initiale à l'utilisateur\n", " liste_nR.append(...à compléter...) # ... ajoute cette quantité à la liste des quantités initiales en réactifs." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Création de la liste des quantités initiales en produits (supposées nulles) :" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "liste_nP=...à compléter..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Calcul, pour chaque réactif, de la valeur du rapport $\\displaystyle \\frac{quantité~initiale}{nombre~stoechiométrique}$\n", "et stockage des résultats dans une nouvelle liste :" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "candidats=list() # Initialise la liste des rapports à calculer.\n", "for k in range(...à compléter...): # Pour chaque réactif...\n", " candidats.append(liste_nR[k]/liste_a[k]) # ... stocke la valeur calculée du rapport {quantité initiale / \n", " # nombre stoechiométrique} dans la liste des valeurs à calculer." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Calcul de l'avancement maximal de la réaction :" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "xmax=min(...à compléter...) # Détermine le plus petit élément de la liste des rapports calculés." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Affichage de la valeur de l'avancement final (transformation supposée totale) :" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "print(\"Si la transformation est totale, l'avancement final vaut : xmax =\",...à compléter...,\"mol.\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Calcul et affichage de la quantité restante en chacun des réactifs :" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "for k in range(...à compléter...): # Pour chaque réactif...\n", " nRk_final=liste_nR[k]-liste_a[k]*xmax # ... calcule la quantité de réactif restant à l'état final\n", " print(\"Quantité finale en réactif R\"+str(k+1)+\" : \"+str(...à compléter...)+\" mol\") # ... et affiche la valeur" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Calcul et affichage de la quantité formée en chacun des produits :" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "for k in range(...à compléter...): # Pour chaque produit...\n", " nPk_final=...à compléter... # ... calcule la quantité de produit présente à l'état final\n", " print(...à compléter...) # ... et affiche la valeur" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.1" } }, "nbformat": 4, "nbformat_minor": 2 }