@ -46,12 +46,18 @@ et renvoie la distance **euclidienne**"""
minJours = min ( [ lst1 [ 0 ] , lst2 [ 0 ] ] )
maxJours = max ( [ lst1 [ 0 ] , lst2 [ 0 ] ] )
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 ) :
""" prend en parametre 2 tuples avec (numero du jour, Valeur1, Valeur2)
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
""" 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
@ -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 ) :
k = len ( lstRepre )
for i in range ( len ( lstRepre ) ) :
d = distance ( point , lstRepre [ i ] )
lstvoisins . append ( ( d , i ) )
lstvoisins . sort ( )
@ -101,7 +108,8 @@ def lancerTest():
ConsoMoy = round ( puissanceMoyenne ( listeVoisins , fichier ) , 2 )
affichageResultats . configure ( text = " La consommation électrique devrait être d ' environ " + str ( ConsoMoy ) + " MW " )
def changeDistance ( ) :
print ( " e " )
fenetre = tk . Tk ( )
fenetre [ ' bg ' ] = " lavender "
@ -112,46 +120,50 @@ fenetre.resizable(False,False)
canva = tk . Canvas ( fenetre , bg = " lavender " , highlightthickness = 0 , width = 10 ,
height = 13.5 )
canva . grid ( )
canva . grid ( columnspan = 2 )
# Boutons valeur de k
valeurk = tk . StringVar ( )
labelk = tk . Label ( fenetre , text = " choisir le nombre de k plus proches voisin voulus : " ,
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 . grid ( row = 2 , column = 0 )
entreek . grid ( row = 2 , column = 0 , columnspan = 2 )
# Boutons date
canvadate = tk . Canvas ( fenetre , bg = " lavender " , width = 350 , height = 20 ,
highlightthickness = 0 )
canvadate . create_line ( 0 , 10 , 350 , 10 , fill = " black " )
canvadate . grid ( row = 3 )
canvadate . grid ( row = 3 , columnspan = 2 )
valeurdate = tk . StringVar ( )
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 . grid ( row = 5 , column = 0 )
entreedate . grid ( row = 5 , column = 0 , columnspan = 2 )
# Boutons température
canvatemp = tk . Canvas ( fenetre , bg = " lavender " , width = 350 , height = 20 ,
highlightthickness = 0 )
canvatemp . create_line ( 0 , 10 , 350 , 10 , fill = " black " )
canvatemp . grid ( row = 6 )
canvatemp . grid ( row = 6 , columnspan = 2 )
valeurtemp = tk . StringVar ( )
labeltemp = tk . Label ( fenetre , text = " La température moyenne et de référence avec un espace: " ,
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 . 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 . grid ( row = 9 )
canvaRecup . grid ( row = 9 , columnspan = 2 )
boutonRecup = tk . Button ( fenetre , command = lancerTest , bg = ' lavender ' , text = ' Valider ' ,
cursor = ' hand2 ' )
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 . grid ( )
affichageResultats . grid ( row = 11 )
fenetre . mainloop ( )