Browse Source

dernière modification

master
manon 1 month ago
parent
commit
d183d2e05f
  1. 47
      temp.py

47
temp.py

@ -1,7 +1,8 @@
# BELLYNCK Manon # BELLYNCK Manon
# GUILLAUMIN-TORRES Ambre # GUILLAUMIN-TORRES Ambre
# COVIN Clara # COVIN Clara
from Pile.py import Pile_lst as Pile
from Pile import Pile_lst as Pile
import tkinter as tk import tkinter as tk
@ -11,7 +12,7 @@ fen.title("Calculatrice")
#taille de la fenetre #taille de la fenetre
fen.geometry("550x450") 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') label = tk.Label(canvas, text='Testing')
# canvas.create_window(50, 50, window.label) # canvas.create_window(50, 50, window.label)
@ -78,8 +79,16 @@ class Expression:
def evaluer_expression(): def evaluer_expression():
expression = entry.get() expression = entry.get()
arbre = Expression.npi2tree(expression.split()) elements = expression.split()
resultat = arbre.evalue() 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 pour l'interface
label_1 = tk.Label(fen, text="Entrez l'expression :") label_1 = tk.Label(fen, text="Entrez l'expression :")
@ -91,11 +100,11 @@ entry.grid()
# Bouton pour calculer l'expression # Bouton pour calculer l'expression
btn_calculer = tk.Button(fen, text="Calculer", command=evaluer_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 pour afficher le résultat
label_2 = tk.Label(fen, text="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) 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 exp = Expression('-', Expression(45,None,None), Expression(3,None,None))#ça marche comme ça
assert exp.evalue() == 42 assert exp.evalue() == 42
liste_npi = ["6", "4", "3", "+", "*"] # Correspond à 6 * (4 + 3) lst = ["6", "4", "3", "+", "*"] # Correspond à 6 * (4 + 3)
arbre = Expression.npi2tree(liste_npi) # Convertit la liste en un arbre arbre = Expression.npi2tree(lst) # Convertit la liste en un arbre
print(arbre.evalue()) # Affiche : 42 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
# 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
Loading…
Cancel
Save