besoin d'aide pour le projet d'isn de terminale

a marqué ce sujet comme résolu.

nous avons un probleme tout est redigé mais nous n’arrivons pas à integrer notre algorithme por qu’il reagisse avc l’interface graphique. notre application consiste a aider les personnes diabétique et non diabétique si quelqu’un pouvait m’aider ce serait trés gentils merci d’avance

voici notre algorithme:

# Hyperglycemie à jeun Superieur a  1.10g/l
# Hypoglycemie Inferieur à 0.60g/l
# Glycemie normale  A jeun : entre 0.70g/l et 1.10g/l
# 1h30 apres un repas : inferieur à 1.40g/l
# ecart a  corriger ÷ facteur de sensibilite = dose de correction
# Formule : premiere etape : glycemie actuelle – glycemie cible = ecart à corriger

# Il existe plusieurs facteurs pouvant faire varier la glycemie :
# la quantite de la prise alimentaire ;
# la temps par rapport au repas ;
# l’exercice physique réalise ; varie enormement le calcul, on considerera une absence d'activite physique
# On considere un diabete de type1 ou il y a absence d'insuline regulatrice

# nombre de litre de sang chez un homme : 75 ml/kg par kg
# nombre de litre de sang chez une femme :  65 ml/kg par kg
#Nombre de glucide par 100 g donc division par quantite consommer

# ex de dico : glucide_15_100 = {"Haricot noir","Pois chiche","Coing"} ----> 15 g de glucide pour 100g , chaque return renvoie un aliment

def diabete_etape1(glycemie,heure): # Glycemie en mg/l et heure apres repas
    if glycemie < 60: 
        return "hypoglycemie"  # Il faut aussi que ca retourne les valeurs du dictionnaire/base de donnée
    elif 110<glycemie and heure>8 or glycemie>= 180 and heure>2:
        return "hyperglycemie"
    elif 70<glycemie<110 and heure >= 1 or glycemie<140 and heure>8:
        return "glycemie normal"

def diabete_etape2(glycemie,heure,age): #Le but est de remettre la glycemie de facon immediate a la normal
     if age<6 and heure>8 :
        glycemiecible1 = 70
        glycemiecible2 = 110
        ecart1 = int(glycemie - glycemiecible1)
        ecart2 = int(glycemie - glycemiecible2)        
        return ecart1 and ecart2
     elif 6<age<12 and heure>=1 :
        glycemiecible1 = 72
        glycemiecible2 = 80
        ecart1 = int(glycemie - glycemiecible1)
        ecart2 = int(glycemie - glycemiecible2)        
        return ecart1 and ecart2
     elif age>12 and heure>=1 :
        glycemiecible1 = 72
        glycemiecible2 = 44
        ecart1 = int(glycemie - glycemiecible1)
        ecart2 = int(glycemie - glycemiecible2)        
        return ecart1 and ecart2
     elif age>12 and heure>=1 :
        glycemiecible1 = 72
        glycemiecible2 = 44
        ecart1 = int(glycemie - glycemiecible1)
        ecart2 = int(glycemie - glycemiecible2)        
        return ecart1 and ecart2
    


def diabete_etape3(glycemie,glucide,poids,sexe,heure): #on calcul l'augmentation de glycemie en fonction des quantites de sucre ingerer dans un repas
    if sexe == 1:        # 1 = homme
        sang = int((75*poids)/1000)  #sang en l
        glycemie_actuelle = int(glycemie + glucide/sang)
        if 70<glycemie_actuelle<110 and 8<heure>= 1 or glycemie>140 and heure>8:
            return "glycemie normal"
        elif glycemie < 60: 
            return "hypoglycemie" 
        elif 110<glycemie and heure>8 or glycemie>= 180 and 8<heure>2:
            return "hyperglycemie"
    if sexe == 2:        # 2 = femme
        sang = int((65*poids)/1000)
        glycemie_actuelle = int(glycemie + glucide/sang)
        if 70<glycemie_actuelle<110 and 8<heure>= 1 or glycemie>140 and heure>8:
            return "glycemie normal"
        elif glycemie < 60: 
            return "hypoglycemie" 
        elif 110<glycemie and heure>8 or glycemie>= 180 and 8<heure>2:
            return "hyperglycemie"
    
    # L'idée pour l'interface est que une quatrieme fonction integre le nom d'aliment, renvoie la quantite de sucre et son impact sur la glycemie




from tkinter import *





main = Tk()




main.title("Mon Appli diabète")
main.config(background='#41B77F')


           
frame = Frame(main, bg='#41B77F')   
              
right_frame = Frame(frame, bg='red')
valeur_entry = Entry(right_frame, text="valeur", font=("Courrier"), bg='red', fg='white')
valeur_entry.pack()


label_title = Label(main, text="Bienvenue sur notre application", font=("Courrier", 40), bg='#41B77F', fg="white" )
label_title.pack(expand=YES)


label_subtitle = Label(main, text="entrez votre glycémie ci-dessous (en mg/L):", font=("Courrier", 20), bg='#41B77F', fg="white" )
label_subtitle.pack(expand=YES)
ma_saisie = Entry()
ma_saisie.pack()

label_subtitle = Label(main, text="entrez votre poids ci-dessous (en kg):", font=("Courrier", 20), bg='#41B77F', fg="white" )
label_subtitle.pack(expand=YES)
ma_saisie = Entry()
ma_saisie.pack()


label_subtitle = Label(main, text="entrez votre sexe (notez 1 pour homme ou notez 2 pour femme):", font=("Courrier", 20), bg='#41B77F', fg="white" )
label_subtitle.pack(expand=YES)
ma_saisie = Entry(main)
ma_saisie.pack()

label_subtitle = Label(main, text="entrez votre temps depuis que vous n'avez pas prit de repas ci-dessous (en heure):", font=("Courrier", 20), bg='#41B77F', fg="white" )
label_subtitle.pack(expand=YES)
ma_saisie = Entry(main)
ma_saisie.pack()


menu_bar=Menu(main)
file_menu=menu(menu_bar, tearoff=0)
menu_bar.add_cascade(label="Fichier", menu=file_menu)

main.config(menu=menu_bar)



#ajouter premier bouton
new_button = Button(frame, text="valider", font=("Courrier", 15), bg='white', fg='#41B77F')

                
new_button.pack(pady= 25, fill=X)
                    
frame.pack(expand=YES)





main.mainloop()
+0 -0

Salut ! :-°

On ne pourra pas t’aider avec le formatage que tu as fait. Retire tout ces titres en orange. Si tu tiens à faire une liste, écrit un tiret suivi d’un espace et d’un élément de liste puis tu sautes une ligne et réitères pour le reste de la liste. Exemple :

  • citron
  • orange
  • Clem'

Ensuite, ton code n’est pas lisible en l’état, pour y remédier, encadre ton code par trois tildet (~) suivi du nom du langage souhaité (ici python). Ensuite tu colles ton code et tu refermes le bloc de code avec trois tildets de nouveau. Exemple :

def jeneconnaispaslepython():
    pass

Je te conseille vivement de lire ce tutoriel pour apprendre à rédiger pleinement avec le markdown. :zorro:

Bonjour,

Je me suis occupé du formatage de tes messages afin d’aider à la compréhension de ton problème. Pour poster ton code, penses à l’entourer de `. Il existe un bouton code <> qui permet de facilement faire cela, mon voisin du dessus t’as donné un lien qui explique le principe. C’est bien mieux qu’une photo que l’on ne peut pas copier/coller.

Je te fait un exemple :

~~~python
def qsd():
  pass
~~~

Ce code python entouré de ~~~python donne :

def qsd():
  pass

Et non ce truc moche :

def qsd(): pass

Cependant, pour ce qui est du problème il est très mal posé. Que n’arrives-tu pas à faire ? Qu’as-tu essayé ? Où bloques-tu ?

+1 -0

Question, d’où sortent tes valeurs de glycémie ? Dans quel cadre s’inscrit ton projet ? Car bon, une glycémie à 1,1 g/L au réveil, c’est un peu élevé mais il n’y a pas besoin de corriger. Le diabète débutant à 1,26 g/L à jeun par définition.

Étant diabétique de type I je t’assure que si ma glycémie matinale était toujours à 1,1 g/L je serais content. :D

+1 -0

on les a prit sur un site et vue qu’il y’avait bcp trop de diversité au niveaux des types de diabètes il a fallut faire certain choix et surtout que l’on pouvait pas tous mettre donc on a du faire un choix

notre projet s’inscrit dans le cadre du baccalauréats et on a voulut développer une application pour diabétique qui se base sur différent facteurs et notre code est réalisé mais notre interface on sait pas trop comment la faire de manière a ce que ce code puisse être fonctionnelle

+0 -0
from tkinter import *
from programme import diabete_etape3
main = Tk()
main.title("Mon Appli diabète")
main.config(background='#41B77F')
main.minsize(width=300, height=300)
frame = Frame(main, bg='#41B77F')

zone_question = Frame(main, bg='#41B77F')
# La liste saisie contient les widgets Entry correspondant aux zones pour entrer du texte
# Cette liste est une variable globale pour simplifier les choses
saisies = [Entry(zone_question), Entry(zone_question), Entry(zone_question),
           Entry(zone_question), Entry(zone_question)]

def validation():
    """ Validation des réponses, à améliorer pour vérifier que les réponses
    sont valides """
    reponses = []
    # On va ajouter dans la liste réponses, toutes les réponses issues des widgets
    # Entry appelé saisies
    for saisie in saisies:
        reponses.append(saisie.get())
    # On détruit la zone de question et on affiche les réponses
    zone_question.destroy()
    affiche_reponse(reponses)



def affiche_questions():
    """ Affiche la zone de questions """
    label_title = Label(zone_question, text="Veuillez entrer les informations suivantes:", font=("Courrier", 40), bg='#41B77F', fg="white" )
    # La liste labels questions contient les labels contenant les différentes questions
    labels_questions = [Label(zone_question, text="Votre glycémie :", font=("Courrier", 40), bg='#41B77F', fg="white" ),
                        Label(zone_question, text="Votre ?? glucide :", font=("Courrier", 40), bg='#41B77F', fg="white" ),
                        Label(zone_question, text="Votre poids :", font=("Courrier", 40), bg='#41B77F', fg="white" ),
                        Label(zone_question, text="Votre sexe:", font=("Courrier", 40), bg='#41B77F', fg="white" ),
                        Label(zone_question, text="L'heure de ???", font=("Courrier", 40), bg='#41B77F', fg="white" )]
    # Crée un bouton qui permet d'appeler la fonction validation
    bouton_validation = Button(zone_question, text='Valider vos reponses', command=validation)
    # On place maintenant la zone question dans la fenêtre principale, puis
    # on place les autres widgets dans la frame zone_question
    # La qualité du placement est à améliorer.
    zone_question.pack()
    label_title.grid(row=0)
    for i in range(len(labels_questions)):
        saisies[i].grid(row=i+1, column=1,sticky=W)
        labels_questions[i].grid(row=i+1, column=0)
    bouton_validation.grid(row=len(labels_questions) + 2)

def affiche_reponse(reponses):
    """ On traite les réponses avec la fonction diabete_etape3
    et on réagit selon """
    zone_reponses = Frame(main, bg='#41B77F')
    #on récupére la situation glycémique
    situation_glycemique = diabete_etape3(reponses[0],reponses[1],reponses[2],reponses[3],reponses[4])
    blablah_reponse = ""
    # definition des listes de je sais pas quoi possible
    liste = Listbox(zone_reponses)
    liste_hypo = ["machin", "bidule"]
    liste_hyper = ["truc", "bidule", "a faire"]
    liste_normale = ["truc", "bidule", "a faire"]
    if situation_glycemique == "hypoglycemie":
        blablah_reponse = "a faire"
        for i in range(1,len(liste_hypo)+1):
            liste.insert(i, liste_hypo[i])
    elif situation_glycemique == "hyperglycemie":
        blablah_reponse = "a faire aussi "
        for i in range(1,len(liste_hyper)+1):
            liste.insert(i, liste_hyper[i])
    elif situation_glycemique == "glycemie normal":
        blablah_reponse = "pareil"
        for i in range(1,len(liste_normale)+1):
            liste.insert(i, liste_normal[i])
    else:
        blablah_reponse = "erreur"
        print(situation_glycemique)
    label_subtitle = Label(zone_reponses, text=blablah_reponse, font=("Courrier", 20), bg='#41B77F', fg="white" )
    label_subtitle.pack(expand=YES)
    liste.pack()
    zone_reponses.pack()


affiche_questions()

main.mainloop()

j’aimerai utiliser les autres fonctions que j’ai codé mais sur tk inter dois-je importer encore la fonction diabète étape 2 et 1 a la suite svp une réponse rapide est attendue car j’aimerais terminer ça ce soir si possible

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte