MALDITO CUADRADO MAGICO PROGRAMACION El cuadrado mágico, es uno de esos ejercicios que siempre vienen cuando se estudia programación; como cuando haces algoritmos para imprimir los 10 primeros números pares, impares o primos; todos lo que hemos estudiado programación hacemos el factorial de un numero o fibonacci de otro; bueno cosas como esas. Les cuento algo yo tenia examen de TECNICAS DE PROGRAMACION, y como la verdad estaba un poco mal en este curso, conseguí el examen de años anteriores, donde vi que pregunto el famoso cuadrado mágico. Un cuadrado mágico , es aquel cuya fila ,columnas y diagonales suman los mismo, a esto se le llama constante mágica. Aquí esta mi solución (bueno no fue algo así como, que bruto, que solucion que hicistes, pero ahí le doy…), solo se que lo hice en todo un día y medio, es bonito cuando algo te va saliendo, tu mente te va dando soluciones de poco a poco. Falta perfeccionarlo pero que diablos la cosa es que salio… Aquí esta el código, lo hice en Visual Basic Express 2005 (APLICACIÓN CONSOLA)… Module Module1 Sub Main() 'declaracion de variables Dim m, n, f, c, nromov, i, liming As Integer 'establece el tamaño de la matrix Console.WriteLine("Por favor coloque el tamaño de la matriz: ") n = Console.ReadLine() n = (n - 1) Dim matriz(n, n) As Integer 'detalle de movimiento liming = ((n + 1) * (n + 1)) + 1 f = 0 c = Int((n + 1) / 2) nromov = n 'la primera piedra matriz(f, c) = 1 i = 2 For k = 0 To n For j = 1 To nromov f = f - 1 c = c + 1 If (f = -1) Then f = n If (c = n + 1) Then c = 0 matriz(f, c) = i i = i + 1 Next If (i = liming) Then Exit For f = f + 1 matriz(f, c) = i i = i + 1 Next 'grafica la matriz Console.WriteLine("Aprete cualquier tela para graficar la matriz...") Console.ReadLine() For k = 0 To n For l = 0 To n If matriz(k, l) < 10 Then
Console.Write("[ ") Else Console.Write("[") End If Console.Write("{0}{1}", matriz(k, l), "] ") Next Console.WriteLine() Console.WriteLine() Next 'salida Console.WriteLine("Presione cualquier tecla para salir...") Console.ReadLine() End Sub End Module Aquí funcionando……