Browse Source

petites modifications

master
clara 1 month ago
parent
commit
c44454bcff
  1. 21
      projet_calculatrice.py

21
projet_calculatrice.py

@ -3,13 +3,15 @@
# COVIN Clara # COVIN Clara
class Expression : class Expression :
"""Permet de représenter et manipuler une expression arithmétique sous la forme d'un arbre"""
def __init__ (valeur_racine, fils_gauche, fils_droit): def __init__ (valeur_racine, fils_gauche, fils_droit):
"""Constructeur"""
self.valeur = valeur_racine self.valeur = valeur_racine
self.gauche = fils_gauche self.gauche = fils_gauche
self.droit = fils_droit self.droit = fils_droit
def évalue (self): def évalue (self):
"""Renvoie le résultat de l'expression"""
if self.valeur == '*': if self.valeur == '*':
return multiplication(valeur.gauche, valeur.droit) return multiplication(valeur.gauche, valeur.droit)
@ -17,21 +19,28 @@ class Expression :
return addition(valeur.gauche, valeur.droit) return addition(valeur.gauche, valeur.droit)
def __str__ (self): def __str__ (self):
"""Affiche tous les nœuds de l'arbre a par un parcours DFS préfixé.""" """Affiche tous les nœuds de l'arbre a par un parcours DFS préfixé."""
if a is None: if a is None:
return return
parcours_dfs_infixe(a.gauche) parcours_dfs_infixe(a.gauche)
print(a.valeur) print(a.valeur)
parcours_dfs_infixe(a.droit) parcours_dfs_infixe(a.droit)
def multiplication (valeur.gauche, valeur.droit): def multiplication (valeur.gauche, valeur.droit):
"""multiplie la valeur des fils gauche et droits""" """Multiplie la valeur des fils gauche et droits"""
if valeur.gauche == int and valeur.droit == int : if valeur.gauche == int and valeur.droit == int :
return valeur.gauche * valeur.droit return valeur.gauche * valeur.droit
def addition (valeur.gauche, valeur.droit): def addition (valeur.gauche, valeur.droit):
"""additionne les valeurs des fils gauche et droits""" """Additionne les valeurs des fils gauche et droits"""
if valeur.gauche == int and valeur.droit == int : if valeur.gauche == int and valeur.droit == int :
return valeur.gauche + valeur.droit return valeur.gauche + valeur.droit
#test
exp = Expression('*',
Expression(6, None, None),
Expression('+',
Expression(4, None, None),
Expression(3, None, None)
)
)
Loading…
Cancel
Save