{"id":1295,"date":"2014-08-04T14:05:14","date_gmt":"2014-08-04T19:05:14","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/icm00794\/?p=1295"},"modified":"2026-04-05T18:29:30","modified_gmt":"2026-04-05T23:29:30","slug":"s3eva2003ti_t2-verificar-un-cuadrado-magico","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-s3eva10\/s3eva2003ti_t2-verificar-un-cuadrado-magico\/","title":{"rendered":"s3Eva2003TI_T2 Verificar un cuadrado m\u00e1gico"},"content":{"rendered":"\n<p><em><strong>Ejercicio<\/strong><\/em>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-3eva10\/3eva2003ti_t2-verificar-un-cuadrado-magico\/\" data-type=\"post\" data-id=\"2492\">3Eva2003TI_T2 Verificar un cuadrado m\u00e1gico<\/a><\/p>\n\n\n\n<p>El problema se separa en sus partes principales.<\/p>\n\n\n\n<p>Primero se revisa el n\u00famero de veces que aparece cada n\u00famero en el cuadrado. Luego se suma cada fila y columna, guardando los resultados en vectores.<\/p>\n\n\n\n<p>La suma de las diagonales se las hace aparte pues solo se necesita mover un \u00edndice; la diagonal principal tiene el mismo \u00edndice en la fila y columna; y la diagonal segunda, en cambio la columna es decreciente.<\/p>\n\n\n\n<p>Se validan los resultados parciales con las condiciones para que sea m\u00e1gico y se muestra el resultado.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Algoritmo en Python<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# ICM00794-Fundamentos de Computaci\u00f3n - FCNM-ESPOL\n# 3Eva_IT2003_T2 Verificar un cuadrado m\u00e1gico\n# Propuesta: edelros@espol.edu.ec\n\nimport numpy as np\n\n# INGRESO\nn = int(input(&quot;tama\u00f1o cuadrado: &quot;))\n\nwhile (n&gt;10):\n    n = int(input(&quot;tama\u00f1o cuadrado(n&lt;10): &quot;))\n\ncuadrado = np.zeros(shape=(n,n),dtype=int)\nfor i in range(0,n,1):\n    for j in range(0,n,1):\n        cuadrado&#x5B;i,j] = input(&quot;cuadrado &#x5B;&quot;+str(i+1)+&quot;,&quot;+str(j+1)+&quot;]: &quot;)\n\n# PROCEDIMIENTO\n# verifica numeros repetidos\nm = n*n\nrepetido = np.zeros(m+1,dtype=int)\nmasdeuno = 0\nfor i in range(0,n,1):\n    for j in range(0,n,1):\n        k = cuadrado&#x5B;i,j]\n        repetido&#x5B;k]=repetido&#x5B;k]+1\n        if (repetido&#x5B;k]&gt;1):\n            masdeuno = k\n            \n#suma de filas y columnas\nsfila = np.zeros(n,dtype=int)\nscolumna = np.zeros(n,dtype=int)\nfor i in range(0,n,1):\n    for j in range(0,n,1):\n        sfila&#x5B;i] = sfila&#x5B;i] + cuadrado&#x5B;i,j]\n        scolumna&#x5B;i] = scolumna&#x5B;i] + cuadrado&#x5B;j,i]\n        \n# Suma diagonales\nsdiagonal  = 0\nsdiagonal2 = 0\nfor i in range(0,n,1):\n    sdiagonal  = sdiagonal + cuadrado&#x5B;i,i]\n    sdiagonal2 = sdiagonal2 + cuadrado&#x5B;i,n-1-i]\n\n# verifica condiciones magico\nmagico = 1\nif (masdeuno&gt;0):\n    magico = 0\nif not(sdiagonal==sdiagonal2):\n    magico = 0\nfor i in range(0,n,1):\n    if not(sdiagonal==sfila&#x5B;i]):\n        magico = 0\n    if not(sdiagonal==scolumna&#x5B;i]):\n        magico = 0\n\n# SALIDA\nprint(&quot;El resultado es:&quot;)\nprint(magico)\n<\/pre><\/div>\n\n\n<p>resultado del algoritmo<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tama\u00f1o cuadrado: 3\ncuadrado &#091;1,1]: 4\ncuadrado &#091;1,2]: 9\ncuadrado &#091;1,3]: 2\ncuadrado &#091;2,1]: 3\ncuadrado &#091;2,2]: 5\ncuadrado &#091;2,3]: 7\ncuadrado &#091;3,1]: 8\ncuadrado &#091;3,2]: 1\ncuadrado &#091;3,3]: 6\nEl resultado es:\n1\n&gt;&gt;&gt; <\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 3Eva2003TI_T2 Verificar un cuadrado m\u00e1gico El problema se separa en sus partes principales. Primero se revisa el n\u00famero de veces que aparece cada n\u00famero en el cuadrado. Luego se suma cada fila y columna, guardando los resultados en vectores. La suma de las diagonales se las hace aparte pues solo se necesita mover un [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-fp-ejemplos","format":"standard","meta":{"footnotes":""},"categories":[138],"tags":[58,157],"class_list":["post-1295","post","type-post","status-publish","format-standard","hentry","category-fp-s3eva10","tag-ejemplos-python","tag-fundamentos-programacion"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1295","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/comments?post=1295"}],"version-history":[{"count":3,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1295\/revisions"}],"predecessor-version":[{"id":23747,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1295\/revisions\/23747"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=1295"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=1295"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=1295"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}