From 6ae2ba269fde1393a7db0d9e9e3086f7641def7a Mon Sep 17 00:00:00 2001 From: manon Date: Sun, 16 Mar 2025 16:49:10 +0100 Subject: [PATCH] =?UTF-8?q?j'ai=20enlev=C3=A9=20tout=20les=20fichier=20inu?= =?UTF-8?q?tile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- arbre.py | 113 ---------------------------------------------- interface.py | 9 ---- oui.py | 1 + sanstitre0.py | 94 -------------------------------------- sanstitre1.py | 123 -------------------------------------------------- 5 files changed, 1 insertion(+), 339 deletions(-) delete mode 100644 arbre.py delete mode 100644 interface.py delete mode 100644 sanstitre0.py delete mode 100644 sanstitre1.py diff --git a/arbre.py b/arbre.py deleted file mode 100644 index b5efbbf..0000000 --- a/arbre.py +++ /dev/null @@ -1,113 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -Created on Sat Jan 23 19:23:01 2021 - -@author: manu -""" - -from File import File_chaine as File -from Pile import Pile_chaine as Pile - - -class Arbre: - """Un arbre binaire.""" - def __init__(self, val): - self.valeur = val - self.gauche = None - self.droit = None - - def insere_gauche(self, val): - """Insère la valeur val à la racine du fils gauche de l'arbre. - L'ancien fils gauche devient le fils gauche du nouveau nœud. - Renvoie le sous arbre créé.""" - nouvel_arbre = Arbre(val) - nouvel_arbre.gauche = self.gauche - self.gauche = nouvel_arbre - return nouvel_arbre - - def insere_droit(self, val): - """Insère la valeur val à la racine du fils droit de l'arbre. - L'ancien fils droit devient le fils gauche du nouveau nœud. - Renvoie le sous arbre créé.""" - nouvel_arbre = Arbre(val) - nouvel_arbre.gauche = self.droit - self.droit = nouvel_arbre - return nouvel_arbre - - -def taille(a): - """Renvoie la taille de l'arbre a.""" - if a is None: - return 0 - return 1 + taille(a.gauche) + taille(a.droit) - - -def hauteur(a): - """Renvoie la hauteur de l'arbre a.""" - if a is None: - return 0 - return 1 + max(hauteur(a.gauche), hauteur(a.droit)) - - -def parcours_bfs(a): - """Affiche tous les nœuds de l'arbre non vide a par un parcours BFS.""" - a_traiter = File() - a_traiter.enfiler(a) - while not a_traiter.est_vide(): - noeud = a_traiter.defiler() - print(noeud.valeur) - if noeud.gauche is not None: - a_traiter.enfiler(noeud.gauche) - if noeud.droit is not None: - a_traiter.enfiler(noeud.droit) - - -def parcours_dfs_iter(a): - """Affiche tous les nœuds de l'arbre non vide a par un parcours DFS.""" - a_traiter = Pile() - a_traiter.empiler(a) - while not a_traiter.est_vide(): - noeud = a_traiter.depiler() - print(noeud.valeur) - if noeud.droit is not None: - a_traiter.empiler(noeud.droit) - if noeud.gauche is not None: - a_traiter.empiler(noeud.gauche) - - -def parcours_dfs_prefixe(a): - """Affiche tous les nœuds de l'arbre a par un parcours DFS préfixé.""" - if a is None: - return - print(a.valeur) - parcours_dfs_prefixe(a.gauche) - parcours_dfs_prefixe(a.droit) - - -def parcours_dfs_infixe(a): - """Affiche tous les nœuds de l'arbre a par un parcours DFS préfixé.""" - if a is None: - return - parcours_dfs_infixe(a.gauche) - print(a.valeur) - parcours_dfs_infixe(a.droit) - - -def parcours_dfs_postfixe(a): - """Affiche tous les nœuds de l'arbre a par un parcours DFS préfixé.""" - if a is None: - return - parcours_dfs_postfixe(a.gauche) - parcours_dfs_postfixe(a.droit) - print(a.valeur) - - -if __name__ == "__main__": - a = Arbre("A") - a.insere_gauche("B") - a.insere_droit("C") - a.gauche.insere_gauche("D") - a.gauche.insere_droit("E") - a.gauche.gauche.insere_droit("G") - a.droit.insere_gauche("F") diff --git a/interface.py b/interface.py deleted file mode 100644 index 4412959..0000000 --- a/interface.py +++ /dev/null @@ -1,9 +0,0 @@ -from tkinter import * - -fenetre = Tk() - -label = Label(fenetre, text = "Hello world") -label.pack() - -bouton = Button(fenetre, -fenetre.mainloop() \ No newline at end of file diff --git a/oui.py b/oui.py index 7fecce1..de81096 100644 --- a/oui.py +++ b/oui.py @@ -1,6 +1,7 @@ # BELLYNCK Manon # GUILLAUMIN-TORRES Ambre # COVIN Clara + from Pile import Pile_lst as Pile class Expression: diff --git a/sanstitre0.py b/sanstitre0.py deleted file mode 100644 index d021739..0000000 --- a/sanstitre0.py +++ /dev/null @@ -1,94 +0,0 @@ -import tkinter as tk - -fen = tk.Tk() -fen.title("Calculatrice") - -#taille de la fenetre -fen.geometry("550x450") - -canvas=tk.Canvas(fen, width=500, height=300, bg="pink") - -label = tk.Label(canvas, text='Testing') -# canvas.create_window(50, 50, window.label) -canvas.grid(column=0,row=0) - - - -class Expression: - """représente une expression arithmétique sous forme d'un arbre""" - def __init__ (self, valeur_racine, fils_gauche, fils_droit): - self.val_racine = valeur_racine - self.gauche = fils_gauche - self.droit = fils_droit - - def evalue (self) : - if self.gauche == None and self.droit == None : - return self.val_racine - - if self.gauche != None: #on ne met pas elif car les cas sont indépendants" - gauche_val = self.gauche.evalue() - else: - gauche_val = 0 - - if self.droit != None: - droite_val = self.droit.evalue() - else: - droite_val = 0 - - if self.val_racine == '+': - return gauche_val + droite_val - elif self.val_racine == '-': - return gauche_val - droite_val - elif self.val_racine == '*': - return gauche_val * droite_val - else : - raise ValueError ("Cette commande ne peut pas être effectuer") - - def __str__(self): - result = "" - if self.droit: - result = result + str(self.droit) - result = result + str(self.val_racine) + "\n" """le "/n" c'est pour avoir une nouvelle ligne de l'arbre""" - if self.gauche: - result += str(self.gauche) - return result - - def multiplication(self): - """Multiplie la valeur des fils gauche et droits""" - if self.gauche == int and self.droit == int : - return self.gauche * self.droit - - def addition(self): - """Additionne les valeurs des fils gauche et droits""" - if self.gauche == int and self.droit == int : - return self.gauche + self.droit - - #test -exp = Expression('*', - Expression(6, None, None), - Expression('+', - Expression(4, None, None), - Expression(3, None, None) - ) - ) - - - -# Label pour l'interface -label_1 = tk.Label(fen, text="Entrez l'expression :") -label_1.grid() - -# Champ de texte pour l'entrée de l'expression -entry = tk.Entry(fen, width=30) -entry.grid() - -# Bouton pour calculer l'expression -#btn_calculer = tk.Button(fenetre, text="Calculer", command=evaluer_expression) -#btn_calculer.pack() - -# Label pour afficher le résultat -label_2 = tk.Label(fen, text="Résultat: ") -label_2.grid() - -# Lancement de l'interface graphique -fen.mainloop() diff --git a/sanstitre1.py b/sanstitre1.py deleted file mode 100644 index c7e0411..0000000 --- a/sanstitre1.py +++ /dev/null @@ -1,123 +0,0 @@ -import tkinter as tk - -from decimal import * - -import numpy as np - -from matplotlib.figure import Figure -from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg - -fen = tk.Tk() -home = tk.Frame() -fen.title("Calculateur d'IMC") - -#taille de la fenetre -fen.geometry("950x750") - -canvas=tk.Canvas(fen, width=600, height=500, bg="white") #canvas de droite -blanc1 = tk.PhotoImage(file = 'blanc1.png')#image cachée -image_container1= canvas.create_image(0, 0,anchor=tk.NW,image = blanc1)#son placement -canvas.grid(column=1,row=0) #placement canvas - -canvas2=tk.Canvas(fen, width=225, height=500, bg="white") #canvas de gauche -blanc = tk.PhotoImage(file = 'blanc.png')#image cachée -image_container2= canvas2.create_image(40, 10,anchor=tk.NW, image = blanc)#son placement -canvas2.grid(column=0, row=0) #placement canvas - -lbl1=tk.Label(fen, text="votre poids (en kg)", font='Arial') #label poids -lbl1.grid(column=0, columnspan=2, padx=10, pady=10, row=1) - -entree_kg = tk.Entry(fen) #entry poids -entree_kg.grid(column=0, columnspan=2,ipadx=50, padx=10, pady=10, row=2) - -lbl2=tk.Label(fen, text="votre taille (en cm)", font='Arial') #label taille -lbl2.grid(column=0, columnspan=2, padx=10, pady=10, row=3) - -entree_cm = tk.Entry(fen) #entry taille -entree_cm.grid(column=0, columnspan=2,ipadx=50, padx=10, pady=10, row=4) - -Label1=tk.Label(fen, text=" ", font=('Arial'))#texte de droite caché -Label1.grid(column=1, row=1, sticky="e", padx=50, pady=10) - -#photos - -image_norm = tk.PhotoImage(file = 'normal.png') -image_obes_s = tk.PhotoImage(file = 'obesite severe.png') -image_obes = tk.PhotoImage(file = 'obesite.png') -image_sousp = tk.PhotoImage(file = 'sous poids.png') -image_surpoids = tk.PhotoImage(file = 'surpoids.png') - - -#fonction qui affiche image imc+petite phrase+graphique -def afficher_imc(): - if float(entree_cm.get()) < 100: - Label1.config(text="Veuillez entrer une valeur plus haute(cm)") - - elif float(entree_cm.get()) > 210: - Label1.config(text="Veuillez entrer une valeur plus basse(cm)") - - elif float(entree_kg.get()) <= 0: - Label1.config(text="Veuillez entrer une valeur plus basse(kg)") - - elif float(entree_kg.get()) > 210: - Label1.config(text="Veuillez entrer une valeur plus haute(kg)") - - else: - taille = float(entree_cm.get())/100 #convertir cm en m - poids= float(entree_kg.get()) - - imc =float(poids/taille**2) #calcul imc - - if imc <=18.4: - Label1.config(text="Vous êtes en sous-poids") - canvas2.itemconfig(image_container2,image=image_sousp) - - if imc >=18.5 and imc<=24.9: - Label1.config(text="Votre poids est normal") - canvas2.itemconfig(image_container2,image=image_norm) - - if imc >=25.0 and imc<=29.9: - Label1.config(text="Vous êtes en sur poids") - canvas2.itemconfig(image_container2,image=image_surpoids) - - if imc >=30.0 and imc<=34.9: - Label1.config(text="Vous etes en obesité") - canvas2.itemconfig(image_container2,image=image_obes) - - if imc >=35.0: - Label1.config(text="Vous etes en obesité sévere") - canvas2.itemconfig(image_container2, image=image_obes_s)#l'image de l'obésité sévère est un peu décalée, - #je ne suis pas arrivé à la redimensionner - imc2=Decimal(imc) - imc_simple = imc2.quantize(Decimal('.01')) #deux chiffres après la virgule - - lbl=tk.Label(fen, text="Votre imc est de :", font='Arial') - lbl.grid(column=0,row=1) - lbl=tk.Label(fen, text=imc_simple, font='Arial') #afficher le resultat calcul imc - lbl.grid(column=0, row=2) - - # graphique - fig = Figure(figsize=(7.2, 5.2), dpi=96) - ax = fig.add_subplot(111) - ax.axis([100, 220, 0, 180]) #limite du graphe - x = np.linspace(100, 220) # les tailles extrèmes en cm - # cm//m - ax.fill_between(x, 0, 18.4 * (x/100)**2, label="sous poids",color="LightBlue") # sous poids si 0 <= y <= 18.4 * x² - ax.fill_between(x, 18.5 * (x/100)**2, 24.9 * (x/100)**2, label="poids idéal",color="green") # idéal si 18.5 * x² <= y <= 24.9 * x² - ax.fill_between(x, 25 * (x/100)**2, 29.9 * (x/100)**2, label="surpoids",color="yellow") # surpoids si 25 * x² <= y <= 29.9 * x² - ax.fill_between(x, 30 * (x/100)**2, 34.9 * (x/100)**2, label="obesité",color="orange") # obésité si 30 * x² <= y <= 34.9 * x² - ax.fill_between(x,180, 35 * (x/100)**2, 40 * (x/100)**2, label="obesité sévère",color="red") # obesité sevère si 35 * x² <= y - ax.scatter(taille*100, poids, color='black')#point a placer sur le graphique. il ne s'affiche qu'une fois - #parce que je ne suis pas arrivé a ne pas le réinitialisé - - - graph = FigureCanvasTkAgg(fig, master=fen) - canvas = graph.get_tk_widget() - canvas.grid(row=0, column=1) - -bouton=tk.Button(fen, text="Afficher l'IMC", command=afficher_imc) #bouton pour afficher tout -bouton.grid(column=0, columnspan=2,ipadx=50, padx=10, pady=10, row=6) - - - -fen.mainloop()