52 lines
1.4 KiB
Python
52 lines
1.4 KiB
Python
from math import sqrt
|
|
|
|
|
|
def print_arr(*arr):
|
|
for i in arr:
|
|
print(i)
|
|
|
|
|
|
def calc_dist(pto1, pto2):
|
|
return sqrt(((pto2[0] - pto1[0]) ** 2) + ((pto2[1] - pto1[1]) ** 2))
|
|
|
|
|
|
def menor_dist(*args):
|
|
largo = range(len(args[0]))
|
|
for pto_ini in largo:
|
|
dists = []
|
|
x1 = args[0][pto_ini]
|
|
y1 = args[1][pto_ini]
|
|
for pto in largo:
|
|
x2 = args[0][pto]
|
|
y2 = args[1][pto]
|
|
dists.append(calc_dist((x1, y1), (x2, y2)))
|
|
# ordenar distancias de menor a mayor
|
|
dists_orden = sorted(dists)
|
|
# segundo menor valor (el primero es la distancia del punto a si mismo)
|
|
menor = dists_orden[1]
|
|
# índice de la menor distancia
|
|
imd = dists.index(menor)
|
|
print(
|
|
f"Para el punto ({x1},{y1}), el punto más",
|
|
f"cercano está a {dists[imd]:.2f} en",
|
|
f"({args[0][imd]},{args[1][imd]})"
|
|
)
|
|
|
|
|
|
def main():
|
|
largo = 10
|
|
coor_x = []
|
|
coor_y = []
|
|
print("\nSe solicitarán las cordenadas X e Y de los puntos\n")
|
|
for x in range(largo):
|
|
print(f"({x+1}/{largo}) Ingresa la coordenada 'X': ")
|
|
coor_x.append(int(input(" --> ")))
|
|
print(f"({x+1}/{largo}) Ingresa la coordenada 'Y': ")
|
|
coor_y.append(int(input(" --> ")))
|
|
print()
|
|
menor_dist(coor_x, coor_y)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|