@ -46,12 +46,18 @@ et renvoie la distance **euclidienne**"""
minJours = min ( [ lst1 [ 0 ] , lst2 [ 0 ] ] )
minJours = min ( [ lst1 [ 0 ] , lst2 [ 0 ] ] )
maxJours = max ( [ lst1 [ 0 ] , lst2 [ 0 ] ] )
maxJours = max ( [ lst1 [ 0 ] , lst2 [ 0 ] ] )
DiffJours = min ( [ maxJours - minJours , 365 - maxJours + minJours ] )
DiffJours = min ( [ maxJours - minJours , 365 - maxJours + minJours ] )
return sqrt ( DiffJours * * 2 + ( lst1 [ 1 ] - lst2 [ 1 ] ) * * 2 + ( lst1 [ 2 ] - lst2 [ 2 ] ) * * 2 )
def distanceManhattan ( Tuple1 , Tuple2 ) :
def distanceManhattan ( Tuple1 , Tuple2 ) :
""" prend en parametre 2 tuples avec (numero du jour, Valeur1, Valeur2)
""" prend en parametre 2 tuples avec (numero du jour, Valeur1, Valeur2)
et renvoie la distance de manhattan """
et renvoie la distance de manhattan """
lst1 = transfoEnFloat ( Tuple1 )
lst2 = transfoEnFloat ( Tuple2 )
minJours = min ( [ lst1 [ 0 ] , lst2 [ 0 ] ] )
maxJours = max ( [ lst1 [ 0 ] , lst2 [ 0 ] ] )
DiffJours = min ( [ maxJours - minJours , 365 - maxJours + minJours ] )
return DiffJours + abs ( lst1 [ 1 ] - lst2 [ 1 ] ) + abs ( lst1 [ 2 ] - lst2 [ 2 ] )
return sqrt ( DiffJours * * 2 + ( lst1 [ 1 ] - lst2 [ 1 ] ) * * 2 + ( lst1 [ 2 ] - lst2 [ 2 ] ) * * 2 )
def kPlusProches ( point , lstRepre , k ) : #je ne sais pas si il faut mettre k ce n'est pas demandé dans l'ennoncé mais cela ne servirait à rien d'en mettre plus
def kPlusProches ( point , lstRepre , k ) : #je ne sais pas si il faut mettre k ce n'est pas demandé dans l'ennoncé mais cela ne servirait à rien d'en mettre plus
""" Prend en parametre un tuple avec (Numéro du jour, Température moyenne,
""" Prend en parametre un tuple avec (Numéro du jour, Température moyenne,
température de référence ) correspondant au point à verifier , une liste de
température de référence ) correspondant au point à verifier , une liste de
@ -62,6 +68,7 @@ def kPlusProches(point,lstRepre,k): #je ne sais pas si il faut mettre k ce n'est
if k > len ( lstRepre ) :
if k > len ( lstRepre ) :
k = len ( lstRepre )
k = len ( lstRepre )
for i in range ( len ( lstRepre ) ) :
for i in range ( len ( lstRepre ) ) :
d = distance ( point , lstRepre [ i ] )
d = distance ( point , lstRepre [ i ] )
lstvoisins . append ( ( d , i ) )
lstvoisins . append ( ( d , i ) )
lstvoisins . sort ( )
lstvoisins . sort ( )
@ -101,7 +108,8 @@ def lancerTest():
ConsoMoy = round ( puissanceMoyenne ( listeVoisins , fichier ) , 2 )
ConsoMoy = round ( puissanceMoyenne ( listeVoisins , fichier ) , 2 )
affichageResultats . configure ( text = " La consommation électrique devrait être d ' environ " + str ( ConsoMoy ) + " MW " )
affichageResultats . configure ( text = " La consommation électrique devrait être d ' environ " + str ( ConsoMoy ) + " MW " )
def changeDistance ( ) :
print ( " e " )
fenetre = tk . Tk ( )
fenetre = tk . Tk ( )
fenetre [ ' bg ' ] = " lavender "
fenetre [ ' bg ' ] = " lavender "
@ -112,46 +120,50 @@ fenetre.resizable(False,False)
canva = tk . Canvas ( fenetre , bg = " lavender " , highlightthickness = 0 , width = 10 ,
canva = tk . Canvas ( fenetre , bg = " lavender " , highlightthickness = 0 , width = 10 ,
height = 13.5 )
height = 13.5 )
canva . grid ( )
canva . grid ( columnspan = 2 )
# Boutons valeur de k
# Boutons valeur de k
valeurk = tk . StringVar ( )
valeurk = tk . StringVar ( )
labelk = tk . Label ( fenetre , text = " choisir le nombre de k plus proches voisin voulus : " ,
labelk = tk . Label ( fenetre , text = " choisir le nombre de k plus proches voisin voulus : " ,
width = 50 , bg = " lavender " )
width = 50 , bg = " lavender " )
labelk . grid ( row = 1 , column = 0 )
labelk . grid ( row = 1 , column = 0 , columnspan = 2 )
entreek = tk . Entry ( fenetre , textvariable = valeurk , width = 30 )
entreek = tk . Entry ( fenetre , textvariable = valeurk , width = 30 )
entreek . grid ( row = 2 , column = 0 )
entreek . grid ( row = 2 , column = 0 , columnspan = 2 )
# Boutons date
# Boutons date
canvadate = tk . Canvas ( fenetre , bg = " lavender " , width = 350 , height = 20 ,
canvadate = tk . Canvas ( fenetre , bg = " lavender " , width = 350 , height = 20 ,
highlightthickness = 0 )
highlightthickness = 0 )
canvadate . create_line ( 0 , 10 , 350 , 10 , fill = " black " )
canvadate . create_line ( 0 , 10 , 350 , 10 , fill = " black " )
canvadate . grid ( row = 3 )
canvadate . grid ( row = 3 , columnspan = 2 )
valeurdate = tk . StringVar ( )
valeurdate = tk . StringVar ( )
labeldate = tk . Label ( fenetre , text = " choisir la date au format aaaa-mm-jj : " , width = 50 , bg = " lavender " )
labeldate = tk . Label ( fenetre , text = " choisir la date au format aaaa-mm-jj : " , width = 50 , bg = " lavender " )
labeldate . grid ( row = 4 , column = 0 )
labeldate . grid ( row = 4 , column = 0 , columnspan = 2 )
entreedate = tk . Entry ( fenetre , textvariable = valeurdate , width = 30 )
entreedate = tk . Entry ( fenetre , textvariable = valeurdate , width = 30 )
entreedate . grid ( row = 5 , column = 0 )
entreedate . grid ( row = 5 , column = 0 , columnspan = 2 )
# Boutons température
# Boutons température
canvatemp = tk . Canvas ( fenetre , bg = " lavender " , width = 350 , height = 20 ,
canvatemp = tk . Canvas ( fenetre , bg = " lavender " , width = 350 , height = 20 ,
highlightthickness = 0 )
highlightthickness = 0 )
canvatemp . create_line ( 0 , 10 , 350 , 10 , fill = " black " )
canvatemp . create_line ( 0 , 10 , 350 , 10 , fill = " black " )
canvatemp . grid ( row = 6 )
canvatemp . grid ( row = 6 , columnspan = 2 )
valeurtemp = tk . StringVar ( )
valeurtemp = tk . StringVar ( )
labeltemp = tk . Label ( fenetre , text = " La température moyenne et de référence avec un espace: " ,
labeltemp = tk . Label ( fenetre , text = " La température moyenne et de référence avec un espace: " ,
width = 50 , bg = " lavender " )
width = 50 , bg = " lavender " )
labeltemp . grid ( row = 7 , column = 0 )
labeltemp . grid ( row = 7 , column = 0 , columnspan = 2 )
entreetemp = tk . Entry ( fenetre , textvariable = valeurtemp , width = 30 )
entreetemp = tk . Entry ( fenetre , textvariable = valeurtemp , width = 30 )
entreetemp . grid ( row = 8 , column = 0 )
entreetemp . grid ( row = 8 , column = 0 , columnspan = 2 )
canvaRecup = tk . Canvas ( fenetre , bg = ' lavender ' , width = 1 , height = 10 , highlightthickness = 0 )
canvaRecup = tk . Canvas ( fenetre , bg = ' lavender ' , width = 1 , height = 10 , highlightthickness = 0 )
canvaRecup . grid ( row = 9 )
canvaRecup . grid ( row = 9 , columnspan = 2 )
boutonRecup = tk . Button ( fenetre , command = lancerTest , bg = ' lavender ' , text = ' Valider ' ,
boutonRecup = tk . Button ( fenetre , command = lancerTest , bg = ' lavender ' , text = ' Valider ' ,
cursor = ' hand2 ' )
cursor = ' hand2 ' )
boutonRecup . grid ( row = 10 )
boutonRecup . grid ( row = 10 )
boutonDistance = tk . Button ( fenetre , command = changeDistance , text = " Distance de Manhattan "
, bg = ' snow ' )
boutonDistance . grid ( row = 10 , column = 1 )
affichageResultats = tk . Label ( fenetre , bg = ' lavender ' , text = ' ' , font = ' TkDefaultFont 8 bold ' ) #J'ai du chercher parce qu'on ne peut
affichageResultats = tk . Label ( fenetre , bg = ' lavender ' , text = ' ' , font = ' TkDefaultFont 8 bold ' ) #J'ai du chercher parce qu'on ne peut
affichageResultats . grid ( )
affichageResultats . grid ( row = 11 )
fenetre . mainloop ( )
fenetre . mainloop ( )