Rincón Matemático

Disciplinas relacionadas y temas generales => Foro general => Mensaje iniciado por: Tachikomaia en 14 Marzo, 2024, 02:09 am

Título: Averiguar columna y fila de un casillero.
Publicado por: Tachikomaia en 14 Marzo, 2024, 02:09 am
Supongamos que tenemos casilleros nombrados así:
123
456
789

Necesito un método tal que si digo uno de esos números, me diga en qué columna y fila está.

Por ejemplo si le digo 4 debe decirme 1 y 2.

El tamaño del cuadro aumenta con el tiempo así que el método debe tener en cuenta el largo. Es claro que la cantidad de casilleros también aumenta.

Gracias.

Creo que:
Fila = RedondearMás(Casillero/Largo)

Creo que para Columnas hay que hallar una relación tal que a partir de Casillero resulte Columna:
Casillero   Columna
1              1
2              2
3              3
4              1
5              2
6              3
7              1
8              2
9              3
¿Pero qué operación hace semejante zig zag? Parece algo relacionado con el resto de una división.

Veo:
Columna = Resto de Casillero/Largo
Si Columna = 0 entonces ahora Columna = Largo.
Si tienen algo menos enredado avisen.
Título: Re: Averiguar columna y fila de un casillero.
Publicado por: Abdulai en 14 Marzo, 2024, 02:42 am
Efectivamente, tenés que sacar el resto de la división.

En C

    #define NCOL 3   
    int fila=1+n/NCOL ;   // En C la división trunca la parte entera
    int col=1+n%NCOL  ;   // % Resto de la división
Título: Re: Averiguar columna y fila de un casillero.
Publicado por: Tachikomaia en 16 Marzo, 2024, 04:52 am
Lo probé en Excel usando largo 4 y me dió esto:
(https://foro.rinconmatematico.com/index.php?action=dlattach;topic=126225.0;attach=30586)
Título: Re: Averiguar columna y fila de un casillero.
Publicado por: Luis Fuentes en 16 Marzo, 2024, 10:30 am
Hola

Lo probé en Excel usando largo 4 y me dió esto:
Spoiler
(https://foro.rinconmatematico.com/index.php?action=dlattach;topic=126225.0;attach=30586)
[cerrar]

Las fórmulas de Abdulai funcionan si la tabla empieza a contar en el cero. Si empiezas en el uno, simplemente hay que desplazarlas:

En C

    #define NCOL 3   
    int fila=1+(n+1)(n-1)/NCOL ;   // En C la división trunca la parte entera
    int col=1+(n+1)(n-1)%NCOL  ;   // % Resto de la división

Saludos.

CORREGIDO!!!
Título: Re: Averiguar columna y fila de un casillero.
Publicado por: Abdulai en 16 Marzo, 2024, 01:07 pm
...Las fórmulas de Abdulai funcionan si la tabla empieza a contar en el cero. Si empiezas en el uno, simplemente hay que desplazarlas:
Hola Luis, efectivamente si la tabla empieza en 1 hay que desplazarla, pero para el otro lado \( (n-1) \)  ;) 
Título: Re: Averiguar columna y fila de un casillero.
Publicado por: Richard R Richard en 16 Marzo, 2024, 03:16 pm
Hola si haces una subrutina o llamada a un procedimiento con las tres variables:

$$x$$ para el número de la posición que deseas en la tabla, de $$m$$ columnas y $$n$$ filas

haces

Código: [Seleccionar]
funcion cualquiera (posicion  as x, mro_col as m, nro_fil as n)

/ usas la funcion int , integer o cortas con cero decimales lo siguiente

$$fila=int((x-1)/m)+1$$

$$columna=x-(fila-1) * m $$

end

si $$fila > n$$ entonces la posición está fuera de la tabla o lo que es lo mismo $$x>m\cdot n$$

Saludos

Pd. adjunto excel prueba