Matriz Caracol
11111
12345
16
333333
123456
444444
123456
555555
123456
22222
12345
666666
1 2 3 4 26
56
Es una matriz que genera lo siguiente tomamos como ejemplo unas matriz cuadrada de 6x6
1
20
19
18
17
16
Entonces vemos que el camino que sigue matriz caracol ser el siguiente si solo colocamos
los ndices de la matriz (cada par se representara como fila columna )
Como primer punto podramos decir que el valor que ira dejando el caracol en cada variable
es decir 1, 2, 3, ., 36 (en este caso 36 porque el tamao de nuestra matriz ejemplo es 6 y el
ultimo valor que pondr el caracol en la celda de la matriz ser 36 que tambien podra ser
(6*6=36)) este valor lo podramos controlar con una variable que la llamaremos num la cual se
iniciara en cero es decir num=0 y luego se incrementara en uno a medida que el caracol
avance por las celdas de la matriz es decir num=num+1
Podemos observar se repiten los mismos pasos en tres vueltas que dar el caracol, este
valor de 3 vueltas lo podemos sacar de dividir el tamao de la matriz (en nuestro ejemplo es
el 6, pero podramos controlar este valor con una variable que comnmente la
llamamos N )entre dos y luego sacar la parte entera (sacamos la parte entera porque si
tendramos que el tamao de la matriz fuera 5 entonces 5/2=2.5 pero la parte entera ser dos,
generalizando tendramos que int (N/2) ), con eso ya obtenemos cuantas vueltas dar el
caracol. Pero si se tratara de una matriz de tamao impar vemos conveniente colocar
manualmente el ltimo valor de tal manera que el programa nos sirva para tamao para e
impar
Analizando la Lnea 1 vemos un valor que va rebajando desde 6, luego 5 (6-1), y luego 4 (51). Si controlramos ese valor mediante una variable (por ejemplo V de variable) que
vayamos rebajando en 1 su valor en cada vuelta que de el caracol, es decir primero
empezamos guardando en la variable el valor de 6 (V=6 : este valor de 6 vendra a ser el
tamao de la matriz que comnmente la llamamos N entonces tendramos V=N), y este valor
decrecer en cada vuelta que de el caracol de la siguiente manera V =V-1
Analizando la Lnea 2 vemos un valor que va incrementado su valor as como las vueltas, a
este valor tambin podramos controlarlo con una variable que se vaya acumulando y
entonces nos damos cuenta de que casualmente este valor coincide con el nmero de
vueltasque el caracol estar dando (convenientemente nombramos este valor
como vuelta que empezara en cero; vuelta = 0 ; y aumentar su valor cuando el caracol
empiece a dar sus vueltas vuelta = vuelta +1)
En cada vuelta que de el caracol tendr que seguir cuatro caminos a excepcin de la ltima
vuelta donde solo recorrer tres caminos :
Vemos que se puede controlar esos valores con variables llamemos Fila y COL (columna) a
las mismas (vemos tambin que la forma en que varan en este caso las columnas las
podemos controlar con una estructura conocida como FOR que es nuestro contador
automtico )
Analizando el primer camino tendramos la variable COL (para controlar las variaciones de
la columna) , que ira desde 1 (vuelta) hasta 6 (V) adems de eso podemos notar que
las filas se mantiene constantes en 1 (vuelta)
Analizando el segundo camino las que varan son las filas y la variable del FOR se
llamara Fila que variar desde 2 (vuelta+1 ) hasta 6 (V) adems de eso podemos notar que
las columnas se mantiene constantes en 6 (V)
Analizando el tercer camino Donde nos damos cuenta que otra vez variaran las
columnas COL pero esta vez su valor ira decreciendodesde 5 (V - 1) hasta 1 (vuelta) adems
de eso podemos notar que las filas se mantiene constantes en 6 (V)
Antes de analizar el cuarto camino vemos que en la ltima vuelta EL CARACOL NO DEBE
recorrer el cuarto camino por lo que tendremos que colocar una condicin para pasar al cuarto
camino y esta seria si vuelta <> V-1 ? (3 es distinto de 3 ?) es decir si las fila y columna son
diferentes iguales si es asi entonces recin el caracol recorrer el cuarto camino.
Analizando el cuarto camino las que varan son las filas y la variable del FOR se
llamara Fila que variar desde 5 (V - 1 ) hasta 2 (vuelta + 1) adems de eso podemos notar
que las columnas se mantiene constantes en 1 (vuelta)
Entonces nuestro diagrama de flujo quedara de la siguiente manera
La interfaz sera
Matriz Caracol
11111
12345
16
333333
123456
444444
123456
555555
123456
22222
12345
666666
1 2 3 4 26
56
Es una matriz que genera lo siguiente tomamos como ejemplo unas matriz cuadrada de 6x6
1
20
19
18
17
16
Entonces vemos que el camino que sigue matriz caracol ser el siguiente si solo colocamos
los ndices de la matriz (cada par se representara como fila columna )
Como primer punto podramos decir que el valor que ira dejando el caracol en cada variable
es decir 1, 2, 3, ., 36 (en este caso 36 porque el tamao de nuestra matriz ejemplo es 6 y el
ultimo valor que pondr el caracol en la celda de la matriz ser 36 que tambien podra ser
(6*6=36)) este valor lo podramos controlar con una variable que la llamaremos num la cual se
iniciara en cero es decir num=0 y luego se incrementara en uno a medida que el caracol
avance por las celdas de la matriz es decir num=num+1
Podemos observar se repiten los mismos pasos en tres vueltas que dar el caracol, este
valor de 3 vueltas lo podemos sacar de dividir el tamao de la matriz (en nuestro ejemplo es
el 6, pero podramos controlar este valor con una variable que comnmente la
llamamos N )entre dos y luego sacar la parte entera (sacamos la parte entera porque si
tendramos que el tamao de la matriz fuera 5 entonces 5/2=2.5 pero la parte entera ser dos,
generalizando tendramos que int (N/2) ), con eso ya obtenemos cuantas vueltas dar el
caracol. Pero si se tratara de una matriz de tamao impar vemos conveniente colocar
manualmente el ltimo valor de tal manera que el programa nos sirva para tamao para e
impar
Analizando la Lnea 1 vemos un valor que va rebajando desde 6, luego 5 (6-1), y luego 4 (51). Si controlramos ese valor mediante una variable (por ejemplo V de variable) que
vayamos rebajando en 1 su valor en cada vuelta que de el caracol, es decir primero
empezamos guardando en la variable el valor de 6 (V=6 : este valor de 6 vendra a ser el
tamao de la matriz que comnmente la llamamos N entonces tendramos V=N), y este valor
decrecer en cada vuelta que de el caracol de la siguiente manera V =V-1
Analizando la Lnea 2 vemos un valor que va incrementado su valor as como las vueltas, a
este valor tambin podramos controlarlo con una variable que se vaya acumulando y
entonces nos damos cuenta de que casualmente este valor coincide con el nmero de
vueltasque el caracol estar dando (convenientemente nombramos este valor
como vuelta que empezara en cero; vuelta = 0 ; y aumentar su valor cuando el caracol
empiece a dar sus vueltas vuelta = vuelta +1)
En cada vuelta que de el caracol tendr que seguir cuatro caminos a excepcin de la ltima
vuelta donde solo recorrer tres caminos :
Vemos que se puede controlar esos valores con variables llamemos Fila y COL (columna) a
las mismas (vemos tambin que la forma en que varan en este caso las columnas las
podemos controlar con una estructura conocida como FOR que es nuestro contador
automtico )
Analizando el primer camino tendramos la variable COL (para controlar las variaciones de
la columna) , que ira desde 1 (vuelta) hasta 6 (V) adems de eso podemos notar que
las filas se mantiene constantes en 1 (vuelta)
Analizando el segundo camino las que varan son las filas y la variable del FOR se
llamara Fila que variar desde 2 (vuelta+1 ) hasta 6 (V) adems de eso podemos notar que
las columnas se mantiene constantes en 6 (V)
Analizando el tercer camino Donde nos damos cuenta que otra vez variaran las
columnas COL pero esta vez su valor ira decreciendodesde 5 (V - 1) hasta 1 (vuelta) adems
de eso podemos notar que las filas se mantiene constantes en 6 (V)
Antes de analizar el cuarto camino vemos que en la ltima vuelta EL CARACOL NO DEBE
recorrer el cuarto camino por lo que tendremos que colocar una condicin para pasar al cuarto
camino y esta seria si vuelta <> V-1 ? (3 es distinto de 3 ?) es decir si las fila y columna son
diferentes iguales si es asi entonces recin el caracol recorrer el cuarto camino.
Analizando el cuarto camino las que varan son las filas y la variable del FOR se
llamara Fila que variar desde 5 (V - 1 ) hasta 2 (vuelta + 1) adems de eso podemos notar
que las columnas se mantiene constantes en 1 (vuelta)
Entonces nuestro diagrama de flujo quedara de la siguiente manera
La interfaz sera
El codigo seria el siguiente
' *************************************************************************
'TODO LO QUE SE ESCRIBA CON "'**" ES UN COMENTARIO NO ES PARTE DEL
PROGRAMA
' **************************************************************************
Option Explicit '**NOS OBLIGA A DECLARAR TODAS LAS VARIABLES
'** DEFINIMOS TODAS LAS VARIABLES QUE UTILIZAREMOS EN EL PROGRAMA
Dim V As Integer, N As Integer, COL As Integer
Dim FILA As Integer, VUELTA As Integer
Dim k As Integer
'**LA DEFINICION DE UNA MATRRIZ ES COMO SIGUE
Dim MATRIZ(1 To 20, 1 To 20) As Integer, NUM As Integer
'**DAMOS DOBLE CLIC SOBRE EL FORMULARIO PARA QUE APAREZCA ESTA OPCION
.
'**ESTA OPCION SUCEDERA CADA VEZ QUESE HAGA CLIC ENEL BOTON DEL CARACOL
Private Sub caracol_Click()
N = Val(Text1.Text)
..
Private Sub NUEVO_Click()
'**LIMPIAMOS EL TEXTBOX
Text1.Text = ""
'**LIMPIAMOS EL MSFLEXGRID1
For FILA = 1 To N
For COL = 1 To N
MSFlexGrid1.TextMatrix(FILA, COL) = ""
Next COL
Next FILA
Text1.SetFocus
End Sub
..
'** BOTON PARA SALIR DEL PROGRAMA
Private Sub SALIR_Click()
'** UNLOAD (DESCARGAR) ME (YO ES DECIR EL FORMULARIO ACTIVO)
Unload Me
End Sub
-9Vemos que varan las filas desde 4 a 3
Vemos que varan las columnas desde 4 a 2
Vemos que varan las filas desde 3 a 5
Vemos que varan las columnas desde 2 a 5