Sunteți pe pagina 1din 7

INSTITUTO TECNOLÓGICO DE TAPACHULA

MATERIA

PROGRAMACIÓN LÓGICA Y FUNCIONAL

CARRERA

INGENIERÍA EN SISTEMAS COMPUTACIONALES

8° SEMESTRE GRUPO ÚNICO

ACTIVIDAD 2.5

CUADRO MÁGICO

17 DE OCTUBRE 2019

EQUIPO

CASA BETA
CÓDIGO FUENTE
import os #libreria para usar comandos de windows
cmd = 'cls' #comando almacenado

print ("\n~~~~CUADRO MÁGICO IMPAR~~~~\n") #presentación


print ("\nPROGRAMACIÓN LOGICA Y FUNCIONAL\n8VO SEMESTRE\nGRUPO ÚNICO\nACTIVIDAD 2.5\nEQUIPO CASA
BETA\n\n")
while True:
try:
#menu principal
a=int(input ("Selecciona una opción del menú: \n 1: Generar Cuadro\n2.- Imprimir Cuadro Recién
Generado\n3.-Guardar Cuadro Generado a TXT\n4.-Cargar Cuadro Almacenado en TXT\n x: SALIR\n "))

if(a==1):
os.system(cmd)
n = int(input ("¿De qué dimensiones deseas la matriz? ")) #introduccion de datos del usuario
#generacion de matriz dependiendo de n
cuadroMagico = [[0 for x in range(n)]
for y in range(n)]

# obtener posicion inicial del 1


i=n/2
j=n-1

#inicia el llenado del cuadro magico con valor maximo de n*n


num = 1
while num <= (n * n):
if i == -1 and j == n:
j=n-2
i=0
else:

#siguiente numero a la derecha


if j == n:
j=0

#siguiente numero si se pasa de la fila superior


if i < 0:
i=n-1

if cuadroMagico[int(i)][int(j)]: #si ya esta lleno un espacio


j=j-2
i=i+1
continue
else:
cuadroMagico[int(i)][int(j)] = num

2
num = num + 1

j=j+1
i=i-1

if(a==2): #imprimir
os.system(cmd)
for i in range(0, n): #impresion iterativa del cuadro magico
for j in range(0, n):

print('%2d ' % (cuadroMagico[i][j]),


end =
'')

if j == n - 1:
print() #agrega salto de linea cuando imprime

print ("\n\nCuadro mágico de", n, "x", n) #marca las dimensiones de la matriz textualmente

print ("Suma de cada fila o columna: ",


n * (n * n + 1) / 2, "\n")

if(a==3): #guardar en txt


os.system(cmd)
archivo = open("CuadroMagico.txt","w")
archivo.write("\n\n")
for i in range(0, n):
for j in range(0, n):

archivo.write('%2d ' % (cuadroMagico[i][j]))

if j == n - 1:
archivo.write("\n")
#imprimir después de moverse entre la matriz
sum = (n * (n * n + 1) / 2)

archivo.write("\n\n")
archivo.write("Matriz de ")
archivo.write(str(n))
archivo.write(" x ")
archivo.write(str(n))
archivo.write("\n")
archivo.write("Suma de diagonales y lados:\n")
archivo.write(str(sum))

3
archivo.close()

print("Archivo Guardado")

if(a==4): #cargar almacenado


archivo = open("CuadroMagico.txt", "r")
for linea in archivo.readlines():
print (linea)
archivo.close()

print("\n\nArchivo Cargado")

if str(a=='x'):
while True:
try:
print ("\n")
break
except ValueError:
print("Si deseas salir introduce x")

except ValueError:

print("¡Hasta luego!")
break

4
CAPTURAS DEL PROGRAMA CORRIENDO

OPCIÓN 1:

Enter no retorna nada y vuelve al menú.

OPCIÓN 2

5
OPCIÓN 3:

6
OPCION 4:

S-ar putea să vă placă și