#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# ================================================================================
# 1C03 Activité 2 page 61                                               INITIATION
# Programme permettant de déterminer l'avancement maximal et
# la composition à l'état final d'un système siège d'une glycolyse, transformation
# chimique (suposée totale), modélisée par la réaction d'équation :
# C6H12O6 + 2 ADP3–  + 2 HPO42- + 2 NAD+ → 2 C3H3O3– + 2 ATP4– + 2 NADH + 2 H3O+
# ================================================================================

# Affectation du nombre de réactifs et du nombre de produits de la réaction :
nbeR,nbeP=4,...à compléter...

# Affectation des nombres stoechiométriques des réactifs dans une première liste, 
# et de ceux des produits dans une seconde liste :
liste_a,listeb=[1,2,2,2],...à compléter...

# Initialisation de la liste des quantités initiales en réactifs :
liste_nR=list()  # ou liste_nR =[]

# Demande des quantités initiales en réactifs à l'utilisateur
# et stockage dans la liste précédemment créée :
for k in range(...à compléter...):
    nR=float(input("Quantité initiale en réactif R"+str(k+1)+" : "))
    liste_nR.append(...à compléter...)

# Création de la liste des quantités initiales en produits (supposées nulles) :
liste_nP=...à compléter...

# Calcul, pour chaque réactif, de la valeur du rapport
# "quantité initiale / nombre stoechiométrique"
# et stockage des résultats dans une nouvelle liste :
candidats=list()
for k in range(...à compléter...):
    candidats.append(liste_nR[k]/liste_a[k])

# Calcul de l'avancement maximal de la réaction :
xmax=min(...à compléter...)

# Affichage de la valeur de l'avancement final (transformation supposée totale) :
print("Si la transformation est totale, l'avancement final vaut : xmax =",...à compléter...,"mol.")

# Calcul et affichage de la quantité restante à l'état final en chacun des réactifs :
for k in range(...à compléter...):
    nRk_final=liste_nR[k]-liste_a[k]*xmax
    print("Quantité finale en réactif R"+str(k+1)+" : "+str(...à compléter...)+" mol")

# Calcul et affichage de la quantité formée à l'état final en chacun des produits :
for k in range(...à compléter...):
    nPk_final=...à compléter...
    print(...à compléter...)
