From a842c668c5757234914e60a39c49ecc831242f7d Mon Sep 17 00:00:00 2001 From: erika <> Date: Thu, 30 Jan 2025 11:52:21 +0100 Subject: [PATCH 1/3] suite3 --- calculette.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/calculette.py b/calculette.py index 36fbcb8..e9a42a9 100644 --- a/calculette.py +++ b/calculette.py @@ -48,18 +48,20 @@ if __name__ =="__main__": + class Conversion: - lst = [self.valeur,self.gauche, self.droite] def npi2tree (lst): - """fonction npi2tree prenant en paramètre une liste correspondant à l’expression en notation + """fonction npi2tree prenant en paramètre une liste correspondant l’expression en notation polonaise inversée et renvoyant l’arbre (de type Expression) correspondant""" - p = Pile(lst) - for i in lst (): - # if + or * : - - - # else : + p = Pile(Expression) + lst = [] + for ele in lst : + if ele == '+' or ele == '*': + exp = Expression(ele, Expression()) + p.empiler(exp) + else: + p.empiler ... + return exp - # return \ No newline at end of file From 60b48962ea72db4e565ed5e7768c6e91c7ec927d Mon Sep 17 00:00:00 2001 From: trystan deneuve <> Date: Tue, 4 Feb 2025 15:06:20 +0100 Subject: [PATCH 2/3] suite5 --- calculette.py | 52 ++++++++++++++++++++++++--------------------------- intergraph.py | 37 ++++++++++++++++++++++-------------- 2 files changed, 47 insertions(+), 42 deletions(-) diff --git a/calculette.py b/calculette.py index dc9034a..49c3d91 100644 --- a/calculette.py +++ b/calculette.py @@ -15,11 +15,13 @@ class Expression: if self.valeur == '+': return self.gauche.evalue() + self.droite.evalue() - if self.valeur == '*': + elif self.valeur == '*': 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() - if self.valeur == '-': + elif self.valeur == '-': return self.gauche.evalue() - self.droite.evalue() @@ -34,31 +36,25 @@ class Expression: return "("+ str (self.gauche) + "/" + str (self.droite) + ")" if self.valeur == '-': return "("+ str (self.gauche) + "-" + str (self.droite) + ")" + + def __repr__(self): + return str(self) if __name__ =="__main__": - e = Expression('*', - Expression(6, None, None), - Expression('+', - Expression(4, None, None), - Expression(3, None, None) - ) - ) - - - - -class Conversion: - def npi2tree (lst): - """fonction npi2tree prenant en paramètre une liste correspondant l’expression en notation - polonaise inversée et renvoyant l’arbre (de type Expression) correspondant""" - p = Pile(Expression) - lst = [] - for ele in lst : - if ele == '+' or ele == '*': - exp = Expression(ele, Expression()) - p.empiler(exp) - else: - p.empiler ... - return exp - \ No newline at end of file + e = Expression('*',Expression(6, None, None),Expression('+',Expression(4, None, None),Expression(3, None, None))) + +def npi2tree(lst): + """fonction npi2tree prenant en paramètre une liste correspondant l’expression en notation + polonaise inversée et renvoyant l’arbre (de type Expression) correspondant""" + exp = [] + for ele in lst : + if ele in ["+","-","/","*"]: + ex = Expression(ele, exp.pop(), exp.pop()) + exp.append(ex) + else: + exp.append(int(ele)) + return exp.pop() + +if __name__ == "__main__": + npi2tree(["3","4","+","6","*"]) diff --git a/intergraph.py b/intergraph.py index 6293be9..16428d3 100644 --- a/intergraph.py +++ b/intergraph.py @@ -1,39 +1,48 @@ 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.grid(row=1, column=0) +bouton1.grid(row=2, column=0) bouton2 = Button(fenetre, text="2") -bouton2.grid(row=1, column=1) +bouton2.grid(row=2, column=1) bouton3 = Button(fenetre, text="3") -bouton3.grid(row=1, column=2) +bouton3.grid(row=2, column=2) bouton4 = Button(fenetre, text="4") -bouton4.grid(row=2, column=0) +bouton4.grid(row=1, column=0) bouton5 = Button(fenetre, text="5") -bouton5.grid(row=2, column=1) +bouton5.grid(row=1, column=1) bouton6 = Button(fenetre, text="6") -bouton6.grid(row=2, column=2) +bouton6.grid(row=1, column=2) bouton7 = Button(fenetre, text="7") -bouton7.grid(row=3, column=0) +bouton7.grid(row=0, column=0) bouton8 = Button(fenetre, text="8") -bouton8.grid(row=3, column=1) +bouton8.grid(row=0, column=1) bouton9 = Button(fenetre, text="9") -bouton9.grid(row=3, column=2) +bouton9.grid(row=0, column=2) 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() \ No newline at end of file From 0fcf23e11827bd5ed1bb0b8128905b142750c2f0 Mon Sep 17 00:00:00 2001 From: trystan deneuve <> Date: Tue, 4 Feb 2025 15:37:25 +0100 Subject: [PATCH 3/3] ajout6 --- intergraph.py | 52 ++++++++++++--------------------------------------- 1 file changed, 12 insertions(+), 40 deletions(-) diff --git a/intergraph.py b/intergraph.py index 16428d3..1bcf3b9 100644 --- a/intergraph.py +++ b/intergraph.py @@ -1,48 +1,20 @@ from tkinter import * +from calculette import * +fenetre=Tk() +fenetre.title("Calculatrice") -fenetre = Tk() +calcLabel = Label(fenetre, text="saisir le calcul") +calcLabel.pack() -bouton1 = Button(fenetre, text="1") -bouton1.grid(row=2, column=0) +calc = StringVar() +calc.set("") +saisie = Entry(fenetre, textvariable=calc, width=10) +saisie.pack() -bouton2 = Button(fenetre, text="2") -bouton2.grid(row=2, column=1) +bouton1 = Button(fenetre, text="CALCULER", width=8) +bouton1.pack() -bouton3 = Button(fenetre, text="3") -bouton3.grid(row=2, column=2) +fenetre.mainloop() -bouton4 = Button(fenetre, text="4") -bouton4.grid(row=1, column=0) - -bouton5 = Button(fenetre, text="5") -bouton5.grid(row=1, column=1) - -bouton6 = Button(fenetre, text="6") -bouton6.grid(row=1, column=2) - -bouton7 = Button(fenetre, text="7") -bouton7.grid(row=0, column=0) - -bouton8 = Button(fenetre, text="8") -bouton8.grid(row=0, column=1) - -bouton9 = Button(fenetre, text="9") -bouton9.grid(row=0, column=2) - -bouton0 = Button(fenetre, text="0") -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() \ No newline at end of file