Una de las aplicaciones que se le puede dar a una matriz
es en la implementación de un cuadro mágico, el cual de acuerdo a un algoritmo
llena sus casillas, esto con la ayuda de un vector, el propósito del cuadro es
que cuando se sumen los lados el resultado debe de dar 15 en todos sus lados.
Es importante mencionar que algoritmo
empleado para la r4ealizacion del cuadro mágico solo es aplicable para números
impares.
En este ejemplo de empleará un cuadro de 3 x3.
El algoritmo trata de colocar los números de la siguiente
forma.
·
Colocar el primer número en cualquier
casilla.
·
A partir de ese aplicar la siguiente
condición “arriba derecha”, y se coloca el siguiente número.
·
Si esa casilla está ocupada de aplica “arriba
izquierda”.
Para realizar esta aplicación, primero es necesario crear
una interfaz, que contendrá lo
siguiente:
·
1 DataGridView(con nomenclatura dgvcuadro).
·
3 Botones
Como la siguiente:
Para poder realizar el
procedimiento es necesario declarar 2 variables.
Dim filas As Integer 'variable para las filas
Dim columnas As
Integer ' variable
para las columnas
Para determinar las
propiedades del DataGridView se da doble clic al formulario y se coloca el
siguiente código:
dgvCuadro.RowCount = 3 'Indica la cantidad de filas
dgvCuadro.ColumnCount = 3 'Indica la cantidad
de columnas
dgvCuadro.Columns(0).Width = 60 ' indica el
tamaño de las columnas
dgvCuadro.Columns(1).Width = 60 ' indica el
tamaño de las columnas
dgvCuadro.Columns(2).Width = 60 ' indica el
tamaño de las columnas
Para poder aplicar las
condiciones de “arriba derecha” y “arriba izquierda”, es necesario crear 3
funciones, que se presentan a continuación.
Private Sub Arriba()
filas = filas - 1
If filas < 0 Then
filas = 2
End
If
End
Sub
Private Sub derecha()
columnas = columnas + 1
If columnas >
2 Then
columnas = 0
End
If
End Sub
Private Sub
izquierda()
columnas = columnas - 1
If columnas < 0 Then
columnas = 2
End
If
End Sub
Para poder validar en donde se coloca
el primer número, es necesario cambiar el evento del datagridview a CellEndEdit e ingresar el siguiente
código.
filas = dgvCuadro.CurrentCellAddress.Y
columnas = dgvCuadro.CurrentCellAddress.X
Después de haber realizado esto,
colocar el siguiente código en el botón terminar.
For i As Integer = (2) To (9) 'ciclo para realizar
la inserción de los números
Arriba() 'indica
que debe ir hacia arriba
derecha() 'indica
que debe ir hacia la derecha
If
dgvCuadro.Item(columnas, filas).Value <> Nothing
Then 'valida si la
fila y columna esta vacia
Arriba() ' indica que debe ir hacia arriba y a la izquierda
izquierda()
End If
dgvCuadro.Item(columnas, filas).Value = i
Next
Para limpiar los datos del
datagridview aplicarlo siguiente, en el botón limpiar.
dgvCuadro.Rows.Clear() 'limpia el datagridview
dgvCuadro.RowCount = 3 'Indica la cantidad de
filas
dgvCuadro.ColumnCount = 3 'Indica la cantidad
de columnas
dgvCuadro.Columns(0).Width = 60 ' indica el
tamaño de las columnas
dgvCuadro.Columns(1).Width = 60
' indica el tamaño de las columnas
dgvCuadro.Columns(2).Width = 60 ' indica el
tamaño de las columnas
Y finalmente para el botón salir.
Que buen aporte!!
ResponderEliminarMuchas gracias.
y como se podria hacer con un lisbox agradesiria su respuesta muchas gracias
ResponderEliminar