Browse Source

suite5

master
trystan deneuve 3 weeks ago
parent
commit
60b48962ea
  1. 52
      calculette.py
  2. 37
      intergraph.py

52
calculette.py

@ -15,11 +15,13 @@ class Expression:
if self.valeur == '+': if self.valeur == '+':
return self.gauche.evalue() + self.droite.evalue() return self.gauche.evalue() + self.droite.evalue()
if self.valeur == '*': elif self.valeur == '*':
return self.gauche.evalue() * self.droite.evalue() return self.gauche.evalue() * self.droite.evalue()
if self.valeur == '/': elif self.valeur == '/':
if self.droite.valeur == 0:
raise ValueError ("division par 0 impossible !! ")
return self.gauche.evalue() / self.droite.evalue() return self.gauche.evalue() / self.droite.evalue()
if self.valeur == '-': elif self.valeur == '-':
return self.gauche.evalue() - self.droite.evalue() return self.gauche.evalue() - self.droite.evalue()
@ -34,31 +36,25 @@ class Expression:
return "("+ str (self.gauche) + "/" + str (self.droite) + ")" return "("+ str (self.gauche) + "/" + str (self.droite) + ")"
if self.valeur == '-': if self.valeur == '-':
return "("+ str (self.gauche) + "-" + str (self.droite) + ")" return "("+ str (self.gauche) + "-" + str (self.droite) + ")"
def __repr__(self):
return str(self)
if __name__ =="__main__": if __name__ =="__main__":
e = Expression('*', e = Expression('*',Expression(6, None, None),Expression('+',Expression(4, None, None),Expression(3, None, None)))
Expression(6, None, None),
Expression('+', def npi2tree(lst):
Expression(4, None, None), """fonction npi2tree prenant en paramètre une liste correspondant l’expression en notation
Expression(3, None, None) polonaise inversée et renvoyant larbre (de type Expression) correspondant"""
) exp = []
) for ele in lst :
if ele in ["+","-","/","*"]:
ex = Expression(ele, exp.pop(), exp.pop())
exp.append(ex)
else:
class Conversion: exp.append(int(ele))
def npi2tree (lst): return exp.pop()
"""fonction npi2tree prenant en paramètre une liste correspondant l’expression en notation
polonaise inversée et renvoyant larbre (de type Expression) correspondant""" if __name__ == "__main__":
p = Pile(Expression) npi2tree(["3","4","+","6","*"])
lst = []
for ele in lst :
if ele == '+' or ele == '*':
exp = Expression(ele, Expression())
p.empiler(exp)
else:
p.empiler ...
return exp

37
intergraph.py

@ -1,39 +1,48 @@
from tkinter import * from tkinter import *
fenetre = Tk()
label = Label(fenetre, text="Calculatrice")
label.grid(row=0, column=0)
# Creating the buttons fenetre = Tk()
bouton1 = Button(fenetre, text="1") bouton1 = Button(fenetre, text="1")
bouton1.grid(row=1, column=0) bouton1.grid(row=2, column=0)
bouton2 = Button(fenetre, text="2") bouton2 = Button(fenetre, text="2")
bouton2.grid(row=1, column=1) bouton2.grid(row=2, column=1)
bouton3 = Button(fenetre, text="3") bouton3 = Button(fenetre, text="3")
bouton3.grid(row=1, column=2) bouton3.grid(row=2, column=2)
bouton4 = Button(fenetre, text="4") bouton4 = Button(fenetre, text="4")
bouton4.grid(row=2, column=0) bouton4.grid(row=1, column=0)
bouton5 = Button(fenetre, text="5") bouton5 = Button(fenetre, text="5")
bouton5.grid(row=2, column=1) bouton5.grid(row=1, column=1)
bouton6 = Button(fenetre, text="6") bouton6 = Button(fenetre, text="6")
bouton6.grid(row=2, column=2) bouton6.grid(row=1, column=2)
bouton7 = Button(fenetre, text="7") bouton7 = Button(fenetre, text="7")
bouton7.grid(row=3, column=0) bouton7.grid(row=0, column=0)
bouton8 = Button(fenetre, text="8") bouton8 = Button(fenetre, text="8")
bouton8.grid(row=3, column=1) bouton8.grid(row=0, column=1)
bouton9 = Button(fenetre, text="9") bouton9 = Button(fenetre, text="9")
bouton9.grid(row=3, column=2) bouton9.grid(row=0, column=2)
bouton0 = Button(fenetre, text="0") bouton0 = Button(fenetre, text="0")
bouton0.grid(row=4, column=1) bouton0.grid(row=3, column=1)
boutonadd = Button(fenetre, text="+")
boutonadd.grid(row=0, column=3)
boutonmultiplie = Button(fenetre, text="*")
boutonmultiplie.grid(row=2, column=3)
boutonminus = Button(fenetre, text="-")
boutonminus.grid(row=1, column=3)
boutondivide = Button(fenetre, text="/")
boutondivide.grid(row=3, column=3)
fenetre.mainloop() fenetre.mainloop()
Loading…
Cancel
Save