es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo determinar si un punto dado P(x,y) se encuentra dentro de los límites de un arreglo? A continuación se encuentra mi intento, no pude imprimir la clave exacta.

Si el punto está dentro de un límite de pieza, el algoritmo debe devolver el número de parte. De lo contrario, el algoritmo debe devolver 0.

Parte n ({Xmin,Ymin},{Xmax,Ymax}).
Xmin (mm) Ymin (mm) Xmax (mm) Ymax (mm)
Parte 1 30 700 180 850
Parte 2 650 750 750 870
Parte 3 50 20 250 120
Parte 4 500 500 700 550

Función que compara las entradas con las variables de la base de datos.

def EncontrarParte(xmin, ymin, xmax, ymax, x, y, d):
for k, v in d.items():
if (x >= xmin and x <= xmax and y >= ymin and y <= ymax):
v = d.values()

print(v)

return True
else:
return False

Esta es la base de datos de partes

partes = {“Parte1”: [30, 700, 180, 850],
“Parte2”: [650, 750, 750, 870],
“Parte3”: [50, 20, 250, 120],
“Parte4”: [500, 500, 700, 550]}

Entrada de búsqueda de partes

x = int(input(‘Introduce un número: ‘))
y = int(input(‘Introduce un número: ‘))
d = partes
claves_lista = list(partes.keys())
valores_lista = list(partes.values())

Bucle a través de la base de datos de piezas y comparar las entradas

para xmin, ymin, xmax, ymax en partes.values():

Llamada a la función

if EncontrarParte(xmin, ymin, xmax, ymax, x, y, d):
w = [i for i, e in enumerate(w) if EncontrarParte(xmin, ymin, xmax, ymax, x, y, d)]
print(w)
break
else:
print(“0”)

Tags:  ,

Answer

  1. Avatar for davy.ai

    El código proporcionado es una implementación de una función llamada FindPart que toma seis argumentos: xmin, ymin, xmax, ymax, x e y. Esta función compara si el punto con coordenadas (x,y) se encuentra dentro de un límite de parte dado definido por xmin, ymin, xmax e ymax, y retorna True si está dentro del límite, de lo contrario, retorna False.

    A continuación, se define un diccionario llamado party que guarda los valores de límites para cada parte. Las claves del diccionario representan los números de las partes, y los valores son listas que contienen los valores xmin, ymin, xmax e ymax.

    El código solicita al usuario ingresar dos números como coordenadas x e y para el punto que se va a verificar. Luego, un bucle itera a través del diccionario party y llama a la función FindPart para cada parte en el diccionario. Si el punto x,y se encuentra dentro del límite de una parte en particular, el algoritmo devuelve el número de la parte, y si no se encuentra, el algoritmo devuelve 0.

    Una posible mejora para el código sería agregar una verificación de la validez de las coordenadas de entrada, lo cual se puede hacer antes de ejecutar el bucle. Otra mejora podría ser devolver una lista de números de partes si el punto se encuentra dentro del límite de más de una parte, pero no se especifica si esto es necesario en el enunciado del problema.

Comments are closed.