From d183d2e05f6d410f94122cef2608b18b24e16302 Mon Sep 17 00:00:00 2001 From: manon Date: Mon, 17 Mar 2025 09:14:29 +0100 Subject: [PATCH] =?UTF-8?q?derni=C3=A8re=20modification?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- temp.py | 49 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 40 insertions(+), 9 deletions(-) diff --git a/temp.py b/temp.py index 6660772..ecad6e4 100644 --- a/temp.py +++ b/temp.py @@ -1,7 +1,8 @@ # BELLYNCK Manon # GUILLAUMIN-TORRES Ambre # COVIN Clara -from Pile.py import Pile_lst as Pile + +from Pile import Pile_lst as Pile import tkinter as tk @@ -11,7 +12,7 @@ fen.title("Calculatrice") #taille de la fenetre fen.geometry("550x450") -canvas=tk.Canvas(fen, width=500, height=300, bg="pink") +canvas = tk.Canvas(fen, width=500, height=300, bg="pink") label = tk.Label(canvas, text='Testing') # canvas.create_window(50, 50, window.label) @@ -78,8 +79,16 @@ class Expression: def evaluer_expression(): expression = entry.get() - arbre = Expression.npi2tree(expression.split()) - resultat = arbre.evalue() + elements = expression.split() + if not elements: + label_2.config(text="Erreur: Expression vide") + return + arbre = Expression.npi2tree(elements) + if arbre is None: + label_2.config(text="Erreur: Expression incorrecte") + else: + resultat = arbre.evalue() + label_2.config(text=f"Résultat: {resultat}") # si l'expression est incorrecte # Label pour l'interface label_1 = tk.Label(fen, text="Entrez l'expression :") @@ -91,11 +100,11 @@ entry.grid() # Bouton pour calculer l'expression btn_calculer = tk.Button(fen, text="Calculer", command=evaluer_expression) -btn_calculer.pack() +btn_calculer.grid(row=4, column=0, columnspan=2) # Label pour afficher le résultat label_2 = tk.Label(fen, text="Résultat: ") -label_2.grid() +label_2.grid(row=5, column=0, columnspan=2) label_2 = tk.Label(fen, text=evaluer_expression().resultat) @@ -122,7 +131,29 @@ assert exp.evalue() == 24 exp = Expression('-', Expression(45,None,None), Expression(3,None,None))#ça marche comme ça assert exp.evalue() == 42 -liste_npi = ["6", "4", "3", "+", "*"] # Correspond à 6 * (4 + 3) -arbre = Expression.npi2tree(liste_npi) # Convertit la liste en un arbre +lst = ["6", "4", "3", "+", "*"] # Correspond à 6 * (4 + 3) +arbre = Expression.npi2tree(lst) # Convertit la liste en un arbre + +print(arbre.evalue()) # Affiche : 42 + +# Test: Expression simple de somme +exp = Expression('+', Expression(8, None, None), Expression(3, None, None)) +assert exp.evalue() == 11, f"Test échoué: {exp.evalue()}" # Vérifie que 8 + 3 = 11 + +# Test: Expression simple de multiplication +exp = Expression('*', Expression(4, None, None), Expression(5, None, None)) +assert exp.evalue() == 20, f"Test échoué: {exp.evalue()}" # Vérifie que 4 * 5 = 20 + +# Test: Expression avec une soustraction +exp = Expression('-', Expression(20, None, None), Expression(5, None, None)) +assert exp.evalue() == 15, f"Test échoué: {exp.evalue()}" # Vérifie que 20 - 5 = 15 + +# Test: Test d'une expression valide en NPI (notation polonaise inversée) +# Correspond à: 6 * (4 + 3) +lst = ["6", "4", "3", "+", "*"] +arbre = Expression.npi2tree(lst) +assert arbre.evalue() == 42, f"Test échoué: {arbre.evalue()}" # Vérifie que 6 * (4 + 3) = 42 -print(arbre.evalue()) # Affiche : 42 \ No newline at end of file +# Test: Expression avec division +exp = Expression('/', Expression(10, None, None), Expression(2, None, None)) +assert exp.evalue() == 5, f"Test échoué: {exp.evalue()}" # Vérifie que 10 / 2 = 5 \ No newline at end of file