Browse Source

Ajout documentation

master
FORESTIER Alexi 9 months ago
parent
commit
00fda29f94
  1. 25
      Calc.py

25
Calc.py

@ -1,13 +1,17 @@
import tkinter as tk import tkinter as tk
from Pile import Pile_chaine from Pile import Pile_chaine
import random
class Expression: class Expression:
"""Implémentation d'une expression mathématique dans un arbre binaire"""
def __init__(self, valeur, gauche, droit): def __init__(self, valeur, gauche, droit):
"""Crée un arbre binaire vide"""
self.valeur = valeur self.valeur = valeur
self.gauche = gauche self.gauche = gauche
self.droit = droit self.droit = droit
def evalue(self): def evalue(self):
"""Calcule l'expression mathématique d'un arbre binaire"""
if self.valeur == '+': if self.valeur == '+':
self.valeur = self.gauche.evalue() + self.droit.evalue() self.valeur = self.gauche.evalue() + self.droit.evalue()
if self.valeur == '*': if self.valeur == '*':
@ -15,6 +19,7 @@ class Expression:
return self.valeur return self.valeur
def __str__(self): def __str__(self):
"""Affiche l'expression mathématique d'un arbre binaire"""
if self.gauche is None and self.droit is None: if self.gauche is None and self.droit is None:
return str(self.valeur) return str(self.valeur)
expr = "" expr = ""
@ -33,6 +38,7 @@ class Expression:
def npi2tree(ch): def npi2tree(ch):
"""Convertit une expression en notation polonaise inversée à un arbre binaire"""
ch = ch.split() ch = ch.split()
Expr = Pile_chaine() Expr = Pile_chaine()
for elmt in ch: for elmt in ch:
@ -44,12 +50,25 @@ def npi2tree(ch):
return Expr.sommet() return Expr.sommet()
def calculer(): def calculer():
"""Affiche l'expression ainsi que son résultat dans l'interface Tkinter"""
déception = ["Peut mieux faire.",
"Va t'entraîner, t'es nul...",
"Ah nan, tu pues vraiment.",
"Skill issue.",
"Je souhaite que tu arrêtes tout.",
"Il a eu 0/20",
"Apprends à lire.",
"Arrête de déconner.",
"Abandonne au pire.",
"42",
"Va faire un tour dehors."
]
expression = entry.get() expression = entry.get()
try: try:
resultat = npi2tree(expression).evalue() resultat = npi2tree(expression).evalue()
result_label.config(text="Résultat: " + str(resultat)) result_label.config(text="Résultat: " + str(npi2tree(expression)) + " = " + str(resultat))
except Exception as erreur: except:
result_label.config(text="Erreur: " + str(erreur)) result_label.config(text=random.choice(déception))
root = tk.Tk() root = tk.Tk()
root.title("Calculatrice rudimentaire") root.title("Calculatrice rudimentaire")

Loading…
Cancel
Save