{
 "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 INTERMEDIAIRE**"
   ]
  },
  {
   "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 = ...à 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=...à 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=...à compléter..."
   ]
  },
  {
   "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": [
    "...à compléter...:       # pour chaque réactif...\n",
    "    ...à compléter...    # ... demande la quantité initiale de réactif à l'utilisateur\n",
    "    ...à compléter...    # ... ajoute la quantité correspondante à 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=...à compléter...      # Initialise la liste des rapports à calculer.\n",
    "...à compléter...:                       # Pour chaque réactif...\n",
    "    ...à compléter...                    # ... 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": [
    "...à 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": [
    "...à compléter... # Affiche la valeur de l'avancement maximal"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Calcul et affichage de la quantité restante à l'état final en chacun des réactifs :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "...à compléter...:            # Pour chaque réactif...\n",
    "    ...à compléter...         # ... calcule la quantité de réactif restant à l'état final \n",
    "    ...à compléter...         # ... et affiche la valeur correspondante"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Calcul et affichage de la quantité formée à l'état final en chacun des produits :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "...à compléter...:            # Pour chaque produit...\n",
    "    ...à compléter...         # ... calcule la quantité de produit formée à l'état final\n",
    "    ...à compléter...         # ... et affiche la valeur correspondante"
   ]
  }
 ],
 "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
}
