﻿#Activité 7
# importation de NUMPY (pour gestion tableaux et calculs) sous l'alias "np"
import numpy as np
# importation de PYPLOT (du module MATPLOTLIB, pour le tracé de courbes) sous l'alias "plt"
import matplotlib.pyplot as plt
# modules permettant d'importer des données tabulées
# le fichier "import_donnees_cinetique.py" est indispensable
from import_donnees_cinetique import traiteDonnees
# Initialisation des tableaux numpy contenant A et t
A=np.array([])
t=np.array([])

Logiciel_Utilise = 'texte'
# récupération des données
t, A = traiteDonnees(Logiciel_Utilise)  #on crée deux tableaux à partir du fichier texte
Nbre_mesures=len(t)

""" TRAVAIL 1
Taper ci-dessous, le code python permettant :
    - d'assigner les valeurs aux variables Vtot et k
    - de calculer C_I2 en fonction de k et A
"""
# Grandeurs de l'énoncé:
Vtot= """ """    # Volume total en L
n_0=4e-4    # quantité de matière de S2O8 2- initiale en mol
k= """ """  # constante Beer-Lambert en L/mol
# formules:
C_I2=""" """                    # calcul de [I2](t)
x=C_I2*Vtot                 # calcul de l'avancement x(t)
C_peroxodisulfate=(n_0-x)/Vtot  # calcul de [S2O8 2-](t)

# 1ère valeur donnée à la vitesse pour que les tableaux numpy aient tous la même dimension
# choix fait: calcul de V avec la méthode de la dérivée numérique à droite (pour V[0] uniquement)
Vd=np.array([-(C_peroxodisulfate[1]-C_peroxodisulfate[0])/(t[1]-t[0])])
Va=np.array([(C_I2[1]-C_I2[0])/(t[1]-t[0])])

""" TRAVAIL 2:
Taper, DANS LA BOUCLE ci-dessous, le code python permettant
de calculer Van (vitesse volumique d'apparition de I2 au point numéro "n")
"""
for n in range(1,Nbre_mesures-1):
    Van=""" """
    Va=np.append(Va,Van)
# ajout d'une dernière valeur au tableau vitesse pour que les tableaux aient tous la même dimension
Va=np.append(Va,(C_I2[-1]-C_I2[-2])/(t[-1]-t[-2]))

""" TRAVAIL 3:
Taper, DANS LA BOUCLE ci-dessous, le code python permettant
de calculer Vdn (vitesse volumique de disparition au point numéro "n")
"""
for n in range(1,Nbre_mesures-1):
    Vdn=""" """     #on aura intérêt à utiliser les valeurs de Va
    Vd=np.append(Vd,Vdn)
# ajout d'une dernière valeur au tableau vitesse pour que les tableaux aient tous la même dimension
Vd=np.append(Vd,-(C_peroxodisulfate[-1]-C_peroxodisulfate[-2])/(t[-1]-t[-2]))

# #####################################
# Tracés de [I2]=f(t)
# #####################################
plt.subplot(221)            # 4 sous-figures (2 ligne,2colonnes, on se place sur la n°1)
plt.grid()
plt.plot(t,C_I2,"r+")
plt.title("COURBE 1: [I2] en fonction de t")          # titre du graphique
plt.xlabel("t en s")                       # nom de la grandeur en abscisse et unité
plt.ylabel("[I2] en mol/L")                # nom de la grandeur en ordonnée et unité

# #####################################
# Tracés de [S2O8 2-]=f(t)
# #####################################
plt.subplot(222)            # 4 sous-figures (2 ligne,2colonnes, on se place sur la n°2)
plt.grid()
plt.plot(t,C_peroxodisulfate,"b+")
plt.title("COURBE 2: [S2O8 2-] en fonction de t")          # titre du graphique
plt.xlabel("t en s")                       # nom de la grandeur en abscisse et unité
plt.ylabel("[S2O8 2-] en mol/L")           # nom de la grandeur en ordonnée et unité

# #####################################
# Tracés de Vd=f(t) et Va=f(t)
# #####################################
plt.subplot(223)            # 4 sous-figures (2 ligne,2colonnes, on se place sur la n°3)
plt.grid()
plt.plot(t,Vd,"k+",label="V disparition peroxodisulfate")
plt.plot(t,Va,"m+",label="V apparition I2")
plt.title("COURBE 3: Vitesses volumiques\n en fonction de t")          # titre du graphique
plt.xlabel("t en s")                        # nom de la grandeur en abscisse et unité
plt.ylabel("V en mol."+r"$L^{-1}.s^{-1}$")  # nom de la grandeur en ordonnée et unité
plt.legend()

# #####################################
# Tracés de V=f([S2O8 2-])
# #####################################
plt.subplot(224)            # 4 sous-figures (2 ligne,2colonnes, on se place sur la n°4)
plt.grid()
""" TRAVAIL 4:
Taper ci-dessous le code Python permettant de tracer V en fonction de [S2O8 2-]  """
plt.plot("""mettre l'abscisse""","""mettre l'ordonnée ""","g+")
""" fin du travail """
plt.title("COURBE 4: Vitesse volumique de disparition\nde en fonction de [S2O8 2-]")          # titre du graphique
plt.xlabel("[S2O8 2-] en mol/L")            # nom de la grandeur en abscisse et unité
plt.ylabel("V en mol."+r"$L^{-1}.s^{-1}$")  # nom de la grandeur en ordonnée et unité

plt.tight_layout() # permet une bonne gestion des marges par matplotlib
# on affiche la fenêtre
#plt.get_current_fig_manager().window.state('zoomed')   # <-- Affiche la fenêtre maximisée sous windows uniquement
plt.show()
