Foro de elhacker.net

Foros Generales => Dudas Generales => Mensaje iniciado por: Tachikomaia en 25 Febrero 2023, 08:43 am



Título: ¿Cómo describir los modos de recorrer una tabla incrementable?
Publicado por: Tachikomaia en 25 Febrero 2023, 08:43 am
Supongamos que tenemos una tabla de 3x3, no incrementable (que no aumentará de tamaño), cuyo contenido son sólo números.
Para simplificar, las celdas no sólo se llamarán A1, A2, etc, sino también así:
123
456
789

Si hacemos A1^B1^C1^A2, etc, o dato1^dato2^dato3^dato4, etc, el resultado no será necesariamente el mismo que si hacemos A1^A2^A3^B1, etc.
Esos son 2 modos distintos de recorrerla, o de operar su contenido sin repetirlo ni modificarlo.
Un modo es 1, 2, 3, 4, etc, y el otro es 1, 4, 7, 2, etc.

Si la tabla fuera de 1x1, no sé si sería una tabla pero sólo habría un modo de recorrerla, porque se empieza por el único dato que hay, y no hay otro por el que seguir.

Si fuera 1x2 o 2x1, se me ocurren:
-> 1, 2
-> 2, 1
...
-> Si hay valor mínimo, empezar por él, luego usar el otro. Sino 1, 2
-> Si hay valor mínimo, empezar por él, luego usar el otro. Sino 2, 1
-> Si hay valor máximo, empezar por él, luego usar el otro. Sino 1, 2
-> Si hay valor máximo, empezar por él, luego usar el otro. Sino 2, 1
...
-> Si un valor es par y el otro no, empezar por el par. Sino 1, 2
-> Si un valor es par y el otro no, empezar por el par. Sino 2, 1
-> Si un valor es impar y el otro no, empezar por el impar. Sino 1, 2
-> Si un valor es impar y el otro no, empezar por el impar. Sino 2, 1
->
Código:
Si un valor es par y el otro no, empezar por el par.
Sino, si hay un valor mínimo, empezar por él.
Sino 1, 2
->
Código:
Si un valor es par y el otro no, empezar por el par.
Sino, si hay un valor mínimo, empezar por él.
Sino 2, 1
->
Código:
Si un valor es par y el otro no, empezar por el par.
Sino, si hay un valor máximo, empezar por él.
Sino 1, 2
->
Código:
Si un valor es par y el otro no, empezar por el par.
Sino, si hay un valor máximo, empezar por él.
Sino 2, 1
->
Código:
Si un valor es impar y el otro no, empezar por el impar.
Sino, si hay un valor mínimo, empezar por él.
Sino 1, 2
->
Código:
Si un valor es impar y el otro no, empezar por el impar.
Sino, si hay un valor mínimo, empezar por él.
Sino 2, 1
->
Código:
Si un valor es impar y el otro no, empezar por el impar.
Sino, si hay un valor máximo, empezar por él.
Sino 1, 2
->
Código:
Si un valor es impar y el otro no, empezar por el impar.
Sino, si hay un valor máximo, empezar por él.
Sino 2, 1
...
Es decir, hay MUCHOS posibles modos de iniciar y de continuar, pero lo que implique azar no me sirve (ejemplo: Empezar por 1 o 2 elegido al azar).

De hecho, no sabía que fuera tanto un tema de sentencias condicionales y características, así que visto eso, una lista de esas cosas no me vendría mal.

Pensé más bien en cosas como "desde arriba izquierda yendo por el borde, comenzando hacia abajo"
187
296
345
o "desde el centro hacia la izquierda, zigzagueando hacia arriba"
345
219
876

Pero no siempre hay centro, puede haber 2 o 4.
1234
5XX8
9ABC
o
1234
5XX8
9XXC
DEFG

Además quiero que la descripción sirva para el caso en que aumente la cantidad de filas y/o columnas de la tabla (en algunos casos sé que la cantidad de columnas o filas no aumentará, pero en general ambos incrementos pueden ocurrir).

Y que la descripción sea seleccionable, más o menos como se selecciona el avatar aquí
https://www.youtube.com/watch?v=XJhh0fBgzCc
1:00
Es decir, que uno tenga por ejemplo:
El dato inicial es...   El dato2º es...   El dato3º es...
Opción1                  Opción1          Opción1
Opción2                  Opción2          Opción2
etc                          etc                 etc
Mi idea es hacer eso así, en Excel, en la columna 1 poner las opciones de cómo se decide cual es el dato por el que empezar, en la columna 2 poner las opciones de cómo se dedide el 2ndo dato a operar o cual es el 1er paso (luego de establecer el punto de partida), y así sucesivamente con otras columnas.
Algunas opciones ocuparían más de 1 columna (como en las descripciones que di entre comillas).

En fin, parece más difícil de lo que pensé, pero si tienen ideas de cómo hacerlo... me pueden decir.

Gracias.