temporal/ctrl_1/problema_5.py

52 lines
1.4 KiB
Python
Raw Permalink Normal View History

2024-06-12 15:39:29 -04:00
from math import sqrt
2024-06-12 15:50:32 -04:00
2024-06-12 15:39:29 -04:00
def print_arr(*arr):
for i in arr:
print(i)
2024-06-12 15:50:32 -04:00
2024-06-12 15:39:29 -04:00
def calc_dist(pto1, pto2):
2024-06-12 15:50:32 -04:00
return sqrt(((pto2[0] - pto1[0]) ** 2) + ((pto2[1] - pto1[1]) ** 2))
2024-06-12 15:39:29 -04:00
def menor_dist(*args):
2024-06-12 15:50:32 -04:00
largo = range(len(args[0]))
2024-06-12 15:39:29 -04:00
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]
2024-06-12 15:50:32 -04:00
dists.append(calc_dist((x1, y1), (x2, y2)))
2024-06-12 15:39:29 -04:00
# ordenar distancias de menor a mayor
dists_orden = sorted(dists)
2024-06-12 16:35:29 -04:00
# segundo menor valor (el primero es la distancia del punto a si mismo)
2024-06-12 15:39:29 -04:00
menor = dists_orden[1]
# índice de la menor distancia
imd = dists.index(menor)
2024-06-12 15:50:32 -04:00
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]})"
)
2024-06-12 15:39:29 -04:00
def main():
2024-06-12 15:50:32 -04:00
largo = 10
2024-06-12 15:39:29 -04:00
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()