Cuadrado Magico VB
Publicado por k0n3 (2 intervenciones) el 09/09/2007 01:58:32
Necesita saber como calcular Cuadrados Magicos PARES.
El siguiente codigo calcula cuadrados magicos IMPARES (esos que suman la misma cifra en todas las direcciones, mas info aca: http://es.wikipedia.org/wiki/Cuadrado_m%C3%A1gico ) comparto aqui su codigo:
[code]Option Explicit
Dim m() As Long
Dim n, num, f, c As Long
Private Sub command1_Click()
'verifico si es par o impar
If (Text1.Text Mod 2 = 0 Or Text1.Text < 1) Then
Label1.Caption = "Solo calcula impares"
Exit Sub
End If
Calcular Text1.Text
End Sub
Sub Calcular(cDim As Integer)
ReDim m(1 To cDim, 1 To cDim)
f = 1
c = Abs(cDim / 2) + 1
Text2.Text = ""
For num = 1 To cDim * cDim
m(f, c) = num
If (num Mod cDim = 0) Then
f = f + 1
Else
If f = 1 Then
f = cDim
Else
f = f - 1
End If
If c = cDim Then
c = 1
Else
c = c + 1
End If
m(f, c) = num
End If
Next num
For f = 1 To cDim
For c = 1 To cDim
Text2.Text = Text2.Text & m(f, c) & vbTab
Next c
Text2.Text = Text2.Text & vbCrLf
Debug.Print Text2.Text
Next f
End Sub
Private Sub Command2_Click()
Text1.Text = ""
Text2.Text = ""
End Sub
Private Sub Command3_Click()
End
End Sub
[/code]
ahora estoy intentando modificar este codigo para que acepte cuadrados magicos de dimension PAR, he averiguado sobre el tema y en wikipedia aparece el metodo de LUX, para realizar estas operaciones, pero no he podido implementarlo en VB, dejo aki la informacion, por si a alguien le interesa ya que es algo ilustrativo para desarrollar la logica de la programacion
http://es.wikipedia.org/wiki/Cuadrado_m%C3%A1gico
y si alguien se anima y me lanza ideas para seguir desarollando mi proyecto.
saludos a tod@s y de antemano gracias.
El siguiente codigo calcula cuadrados magicos IMPARES (esos que suman la misma cifra en todas las direcciones, mas info aca: http://es.wikipedia.org/wiki/Cuadrado_m%C3%A1gico ) comparto aqui su codigo:
[code]Option Explicit
Dim m() As Long
Dim n, num, f, c As Long
Private Sub command1_Click()
'verifico si es par o impar
If (Text1.Text Mod 2 = 0 Or Text1.Text < 1) Then
Label1.Caption = "Solo calcula impares"
Exit Sub
End If
Calcular Text1.Text
End Sub
Sub Calcular(cDim As Integer)
ReDim m(1 To cDim, 1 To cDim)
f = 1
c = Abs(cDim / 2) + 1
Text2.Text = ""
For num = 1 To cDim * cDim
m(f, c) = num
If (num Mod cDim = 0) Then
f = f + 1
Else
If f = 1 Then
f = cDim
Else
f = f - 1
End If
If c = cDim Then
c = 1
Else
c = c + 1
End If
m(f, c) = num
End If
Next num
For f = 1 To cDim
For c = 1 To cDim
Text2.Text = Text2.Text & m(f, c) & vbTab
Next c
Text2.Text = Text2.Text & vbCrLf
Debug.Print Text2.Text
Next f
End Sub
Private Sub Command2_Click()
Text1.Text = ""
Text2.Text = ""
End Sub
Private Sub Command3_Click()
End
End Sub
[/code]
ahora estoy intentando modificar este codigo para que acepte cuadrados magicos de dimension PAR, he averiguado sobre el tema y en wikipedia aparece el metodo de LUX, para realizar estas operaciones, pero no he podido implementarlo en VB, dejo aki la informacion, por si a alguien le interesa ya que es algo ilustrativo para desarrollar la logica de la programacion
http://es.wikipedia.org/wiki/Cuadrado_m%C3%A1gico
y si alguien se anima y me lanza ideas para seguir desarollando mi proyecto.
saludos a tod@s y de antemano gracias.
Valora esta pregunta


0