temporal/ctrl_1/problema_5.py
2024-06-27 11:58:05 -04:00

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()