Tableau d’avancement pour un élève en physique-chimie
Par
, , en novembre 2019Ce projet a été réalisé par des élèves en spécialité NSI du Lycée Louis Pasteur. Ils sont également les auteurs de ce compte rendu. Pour en savoir plus : Les projets en spécialité NSI
Introduction
Le tableau d’avancement est un outil utilisé principalement en physique chimie, il permet d’établir un bilan de matière à l’état initial, pendant la réaction et à l’état final. Il est ensuit utilisé pour connaitre les quantités de matières finales.
- Tableau d’avancement exemple
Présentation du projet
Le programme python créé ici permet de calculer les quantités de matières finales lors d’une réaction chimique produite afin d’aider un élève de physique chimie à calculer le tableau d’avancement de cette réaction.
Le programme est un programme simple basé sur une boucle while, étudiée en classe de première de NSI. La boucle permet ici de soustraire une valeur calculée par le programme à une valeur donnée initialement par l’utilisateur jusqu’au nombre minimum de zéro.
L’utilisateur du programme se doit de rentrer en premier les informations dont le programme se base ensuite, telles les coefficients stœchiométriques et les quantités de matières initiales. Le pas d’avancement n’est pas obligatoire, c’est pour cela qu’il a été décidé de le rajouter dans la 2ème étape du projet. C’est lors de la dernière étape que le programme a été peaufiné.
Etape 1 :
- print("Donner les valeurs des coefficients stœchiométriques")
- a=int(input("Valeur a="))
- b=int(input("Valeur b="))
- c=int(input("Valeur c="))
- d=int(input("Valeur d="))
- print("Donner les valeurs des quantités")
- na=float(input("Quantité de a"))
- nb=float(input("Quantité de b"))
Etape 2 :
- print("Donner les valeurs des coefficients stœchiométriques ")
- a=int(input("Valeur a="))
- b=int(input("Valeur b="))
- c=int(input("Valeur c="))
- d=int(input("Valeur d="))
- pas=float(input("Donner le pas d'avancement="))
- print("Donner les valeurs des quantités")
- na=float(input("Quantité de a"))
- nb=float(input("Quantité de b"))
Etape 3 :
- print("Quelles sont les valeurs des coefficients stochiométriques ?")
- a=int(input("Donnez la valeur de a="))
- b=int(input("Donnez la valeur de b="))
- c=int(input("Donnez la valeur de c="))
- d=int(input("Donnez la valeur de d="))
- pas=float(input("Donner le pas d'avancement="))
- print("Donner les valeurs des quantités na et nb")
- nai=float(input("La quantité de a est:"))
- nbi=float(input("La quantité de b est:"))
C’est aussi lors de l’étape 2 que la boucle while a été mise en place :
- while na>0.0 and nb>0.0:
- na=nai-a*x
- nb=nbi-b*x
- nc=nci+c*x
- nd=ndi+d*x
- print("na=",na,"\tnb=",nb,"\tnc=",nc,"\tnd=",nd)
- x=x+pas
- print("Xmax est",x)
Quelques difficultés ont été rencontrées avec le « x » car il fallait le définir avant la boucle, l’insérer ainsi dans le programme ne fonctionnait pas.
La boucle while est composée de formules qui permettent de calculer les proportions restantes des réactifs et des produits jusqu’au moment où soit « a » soit « b » est égal à zéro.
L’étape 3 a permis de rajouter les dernières lignes du programme qui commentent et nous dis lequel des réactifs est limitant dans le cas où soit « a » soit « b » est atteint zéro, ou dans le cas où les deux réactifs ont atteint en même temps le palier de zéro, c’est-à-dire que le mélange a été introduit dans les proportions stœchiométriques.
- if na==0 and nb==0:
- print("Le mélange a été introduit dans des proportions stœchiométriques.")
- elif na==0:
- print("Le réactif limitant est na.")
- elif nb==0:
- print("Le réactif limitant est nb.")