CODE PUZZLE

[EP24] - 04.2
On souhaite programmer une fonction donnant la distance la plus courte entre un point de départ et une liste de points. Les points sont tous à coordonnées entières. Les points sont donnés sous la forme d'un tuple de deux entiers. La liste des points à traiter est donc un tableau de tuples. On rappelle que la distance entre deux points du plan de coordonnées $(x;y)$ et $(x';y')$ vérifie la formule : $$d^2=(x-x')^2+(y-y')^2$$ Compléter le code des fonctions `distance_carre` et `point_le_plus_proche` fournies ci-dessous pour qu’elles répondent à leurs spécifications. ``` def distance_carre(point1, point2): """ Calcule et renvoie la distance au carre entre deux points.""" return (...)**2 + (...)**2 def point_le_plus_proche(depart, tab): """ Renvoie les coordonnées du premier point du tableau tab se trouvant à la plus courte distance du point depart.""" min_point = tab[0] min_dist = ... for i in range(1, len(tab)): if distance_carre(tab[i], depart) < ...: min_point = ... min_dist = ... return min_point ``` Exemples : ``` >>> distance_carre((1, 0), (5, 3)) 25 >>> distance_carre((1, 0), (0, 1)) 2 >>> point_le_plus_proche((0, 0), [(7, 9), (2, 5), (5, 2)]) (2, 5) >>> point_le_plus_proche((5, 2), [(7, 9), (2, 5), (5, 2)]) (5, 2) ```
def distance_carre(point1, point2): """ Calcule et renvoie la distance au carre entre deux points.""" return (...)**2 + (...)**2 def point_le_plus_proche(depart, tab): """ Renvoie les coordonnées du premier point du tableau tab se trouvant à la plus courte distance du point depart.""" min_point = tab[0] min_dist = ... for i in range(1, len(tab)): if distance_carre(tab[i], depart) < ...: min_point = ... min_dist = ... return min_point
Test 1
Test 2
Test 3
Test 4
Console

			
Sortie