Loi des gaz parfaits

<sxh python; title : gaz_parfait.py> #!/usr/bin/env python # -*- coding: utf-8 -*- # Programme de calculs sur la loi des gaz parfaits # GD, Ba2 chimie 2010-2011 from Tkinter import * #permet l'apparition de l'interface graphique

def isolerP (): #définition de la fonction “isoler P”

  fen2.title("Calcul de la pression par la loi des gaz parfaits")     #donne un titre à la fenêtre 2
  fen2.geometry('400x100')                                            #réglage de la dimension de la fenêtre 2
  txt1 = Label(fen2, text= "Entrez ici le nombre de mole(mol):")      #apparition d'un texte dans la fenêtre 2
  txt2 = Label(fen2, text= "Entrez ici la Température (K):")          #"                 "                    "
  txt3 = Label(fen2, text = "Entrez ici le Volume (m^3) :")           #"                 "                    "
  txt1.grid(row=1, sticky=W)                                          #position du texte 1 dans la fenêtre 2 (ligne 1 et décalé tout à gauche)
  txt2.grid(row=2, sticky=W)                                          #position du texte 2 dans la fenêtre 2 (ligne 2 et décalé tout à gauche)                               
  txt3.grid(row=3, sticky=W)                                          #position du texte 3 dans la fenêtre 2 (ligne 3 et décalé tout à gauche)
  n.grid(row=1, column=3)                                             #position du cadre de la valeur à entrer (ligne 1 et colonne 3)
  T.grid(row=2, column=3)                                             #"                 "                    "(ligne 2 et colonne 3)
  V.grid(row=3, column=3)                                             #"                 "                    "(ligne 3 et colonne 3)
  button = Button(fen2, text='calculer', command=calculerP, bg="gold")#apparition du bouton "calculer" qui renvoie à la définition "calculerP" couleur or sur la fenêtre 2
  button.grid(row=5, column=2)                                        #position du bouton "calculer" (ligne 5 et colonne 2)                                                                        #codage pour calculer la variable P

def calculerP(): #définition de la fonction “calculer P”

  fen3.title("Résultat")                                              #donne un titre à la fenêtre 3
  fen3.geometry('180x30')                                             #réglage de la dimension de la fenêtre 3
  reponse= ((float(n.get())*8.314*float (T.get()))/float(V.get()))    #formule calculant la variable à isoler => float permet le calcul d'un nombre à virgule flottante
  if reponse<0:                                                       #condition dans le cas où la réponse est négative
      c=Label(fen3, text="erreur", fg="red")                          #apparition du texte "erreur" en rouge dans la fenêtre 3
      c.grid(row=0, column=1)                                         #position du texte "erreur" (ligne 0 et colonne 1)
  else:                                                               #condition dans le cas où la réponse est positive
      a=Label(fen3,text=reponse)                                      #apparition de la réponse du calcul dans la fenêtre 3           
      a.grid(row=0,column=1)                                          #position de la réponse (ligne 0 et colonne 1)
      b=Label(fen3,text="Pa")                                         #apparition de l'unité de la variable à isoler (Pa) 
      b.grid(row=0,column=2)                                          #position de l'unité (juste à côté de la réponse)
  

def isolerV():

  fen2.title("Calcul du volume par la loi des gaz parfaits")
  fen2.geometry('400x100')
  txt1 = Label(fen2, text= "Entrez ici le nombre de mole (mol):")
  txt2 = Label(fen2, text= "Entrez ici la Température (K):")
  txt3 = Label(fen2, text = "Entrez ici la Pression (Pa) :")
  txt1.grid(row=1, sticky=W)
  txt2.grid(row=2, sticky=W)
  txt3.grid(row=3, sticky=W)
  n.grid(row=1, column=3)
  T.grid(row=2, column=3)
  P.grid(row=3, column=3)
  button = Button(fen2, text='calculer', command=calculerV, bg="gold")
  button.grid(row=5, column=2)

def calculerV():

  fen3.title("Résultat")
  fen3.geometry('180x30')
  reponse= ((float(n.get())*8.314*float(T.get()))/float(P.get()))
  if reponse<0:
      c=Label(fen3, text="erreur", fg="red")
      c.grid(row=0, column=1)
  else:
      a=Label(fen3, text=reponse)
      a.grid(row=0,column=1)
      b=Label(fen3,text="m^3")
      b.grid(row=0,column=2)

def isolern():

  fen2.title("Calcul du nombre de mole par la loi des gaz parfaits")
  fen2.geometry('400x100')
  txt1 = Label(fen2, text= "Entrez ici la Pression (Pa):")
  txt2 = Label(fen2, text= "Entrez ici le Volume (m^3):")
  txt3 = Label(fen2, text = "Entrez ici la Température (K) :")
  txt1.grid(row=1, sticky=W)
  txt2.grid(row=2, sticky=W)
  txt3.grid(row=3, sticky=W)
  P.grid(row=1, column=3)
  V.grid(row=2, column=3)
  T.grid(row=3, column=3)
  button = Button(fen2, text='calculer', command=calculern, bg="gold")
  button.grid(row=5, column=2)

def calculern():

  fen3.title("Résultat")
  fen3.geometry('180x30')
  reponse= ((float(P.get())*float(V.get()))/(float(T.get())*8.314))
  if reponse<0:
      c=Label(fen3, text="erreur", fg="red")
      c.grid(row=0, column=1)
  else:
      a=Label(fen3, text=reponse)
      a.grid(row=0,column=1)
      b=Label(fen3,text="mol")
      b.grid(row=0,column=2)

def isolerT():

  fen2.title("Calcul de la Température par la loi des gaz parfaits")
  fen2.geometry('400x100')
  txt1 = Label(fen2, text= "Entrez ici la Pression (Pa):")
  txt2 = Label(fen2, text= "Entrez ici le Volume (m^3):")
  txt3 = Label(fen2, text = "Entrez ici le nombre de mole (mol) :")
  txt1.grid(row=1, sticky=W)
  txt2.grid(row=2, sticky=W)
  txt3.grid(row=3, sticky=W)
  P.grid(row=1, column=3)
  V.grid(row=2, column=3)
  n.grid(row=3, column=3)
  button = Button(fen2, text='calculer', command=calculerT, bg="gold")
  button.grid(row=5, column=2)

def calculerT():

  fen3.title("Résultat")
  fen3.geometry('180x30')
  reponse= ((float(P.get())*float(V.get()))/(float(n.get())*8.314))
  if reponse<0:
      c=Label(fen3, text="erreur",fg="red")
      c.grid(row=0, column=1)
  else:
      a=Label(fen3,text=reponse)
      a.grid(row=0,column=1)
      b=Label(fen3,text="K")
      b.grid(row=0,column=2)

fen1=Tk() #création de l'interface graphique “fenêtre 1” fen2=Toplevel(fen1) #création de l'interface graphique “fenêtre 2” fen3=Toplevel(fen2) #création de l'interface graphique “fenêtre 3” n = Entry(fen2) #permet de définir la variable “n” T = Entry(fen2) #“ ” “T” V = Entry(fen2) #“ ” “V” P = Entry(fen2) #“ ” “P” fen1.title(“Equation d'état des gaz parfaits”) #titre de la fenêtre 1 Label(fen1, text=“Veuillez choisir une inconnue à isoler”).grid() #texte apparaissant sur la fenêtre 1 Button(fen1, text='Isoler P', command= isolerP, bg=“yellow”).grid() #création du bouton qui renvoie à la définition “isoler P” Button(fen1, text='Isoler V', command= isolerV, bg=“green”).grid() #“ ” “isoler V” Button(fen1, text='Isoler n', command= isolern, bg=“blue”).grid() #“ ” “isoler n” Button(fen1, text='Isoler T', command= isolerT, bg=“red”).grid() #“ ” “isoler T” fen1.mainloop() #permet le démarrage du programme. </sxh>