diff --git a/calculette.py b/calculette.py index 4c0e2c3..c9b68f7 100644 --- a/calculette.py +++ b/calculette.py @@ -4,7 +4,6 @@ from Pile import Pile_chaine as Pile class Expression: def __init__(self, valeur, gauche=None, droite=None): - self.valeur = valeur self.gauche = gauche self.droite = droite @@ -18,13 +17,25 @@ class Expression: return self.gauche.evalue() + self.droite.evalue() if self.valeur == '*': return self.gauche.evalue() * self.droite.evalue() + if self.valeur == '/': + return self.gauche.evalue() / self.droite.evalue() + if self.valeur == '-': + return self.gauche.evalue() - self.droite.evalue() + def __str__(self): if type(self.valeur) == int: return str(self.valeur) - else : - return "({str(self.gauche)} {self.valeur} {str(self.droite)})" + if self.valeur == '+': + return "("+ str (self.gauche) + "+" + str (self.droite) + ")" + if self.valeur == '*': + return "("+ str (self.gauche) + "*" + str (self.droite) + ")" + if self.valeur == '/': + return "("+ str (self.gauche) + "/" + str (self.droite) + ")" + if self.valeur == '-': + return "("+ str (self.gauche) + "-" + str (self.droite) + ")" +<<<<<<< HEAD # class Conversion: # lst = [self.valeur,self.gauche, self.droite] # def npi2tree (lst): @@ -38,6 +49,28 @@ class Expression: # for i in lst (): +======= + + +if __name__ =="__main__": + e = Expression('*', + Expression(6, None, None), + Expression('+', + Expression(4, None, None), + Expression(3, None, None) + ) + ) + + + +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 + polonaise inversée et renvoyant l’arbre (de type Expression) correspondant""" + p = Pile(lst) + for i in lst (): +>>>>>>> 8b723c77703eb3cfad29b15dc55e72efae56af2a # if + or * :