Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROYECTO 2
TABLA DE CONTENIDO
INTRODUCCIN ......................................................... 2 DESARROLLO ............................................................ 3 ANLISIS DEL PROBLEMA ........................................... 3 ALGORITMO ........................................................... 5 PRUEBAS DE ESCRITORIO ........................................ 11 CONCLUSIONES ....................................................... 12 BIBLIOGRAFA ......................................................... 13
INTRODUCCIN
El presente trabajo, describe los pasos y secuencias lgicas a seguir en un truco denominado Cuadro Mgico, este consiste en ingresar una matriz , donde cada una de las filas, columnas y diagonales sumen lo mismo. El objetivo general es verificar si la matriz cuadrada ingresada es mgica. Su importancia radica en un med io computacional que agiliza la verificacin de ciertos nmeros ingresados y distribuidos en una matriz corresponden a un cuadro mgico. Las limitaciones esta del presente para trabajo, matrices lentitud por cuanto cuyas
suma todas las filas, columnas y diagonales. Por otro lado la matriz declarada cuadradas dimensin sea menor o igual a treinta.
DESARROLLO
PRIMERA ETAPA
En esta parte se espera como datos de salida los siguientes: La matriz ingresada por el usuario. Si la matriz es un cuadrado mgico o no.
SEGUNDA ETAPA
En
esta
etapa
se
tiene
que
los
datos
de
entrada
son
los
siguientes: La dimensin del cuadrado mgico. Cada una de las entradas del cuadrado mgico.
TERCERA ETAPA
Validacin suma de Diagonales: verifica que la suma de las diagonales den el mismo resultado y reporta True y en caso contrario reporta False. Validacin suma de Horizontales: verifica que la suma de las filas den el mismo resultado y reporta True y en caso contrario reporta False. Validacin suma de Verticales: verifica que la suma de las columnas den el mismo resultado y reporta True y en caso contrario reporta False.
ALGORITMO
Algoritmo CUADRADOMAGICO Cuadrado Mgico 1. Declaraciones Variables n, sumaDiag, sumaHoriz , sumaVert: Entero valideDiag,valideHoriz , valideVert: Booleano desea=Carcter matriz: Arreglo[30][30] Entero sumFila, sumColumna: Arreglo [30] Entero
2. Mtodo Principal a. Do 1. 2. 3. 4. Llamar Lee_Matriz Llamar I mprime_Matriz Llamar Valida_Diagonales I F valideDiag=True THEN a. Llamar Valide_Verticales b. I F valideVert=True THEN 1. IF ((sumaDiag=sumaHoriz )and(suma Diag=sumaVert)) THEN a. I mprimir El cuadrado ingresado es un CUADRADO MGICO 2. ELSE
a.
I mprimir El cuadrado
ingresado No es un cuadrado mgico 3. ENDIF c. ELSE 1. I mprimir El cuadrado ingresado No es un cuadrado mgico d. ENDIF 5. ELSE a. I mprimir El cuadrado ingresado No es un cuadrado mgico 6. ENDIF b. I mprimir Desea validar otro cuadrado? (S/N) c. Solicitar desea d. Leer desea e. WHI LE desea=S f. Fin Mtodo Principal
3. Mtodo Lee_Matriz a. I mprimir Qu dimensin tiene su cuadrado? b. Solicitar n c. Leer n d. FOR fila=1; fila<=4; fila++ 1. FOR columna =1; columna<=n; a. I mprimir Ingrese el +columna+ elemento de la fila +fila+ que tendra su cuadrado b. Leer matriz[fila][columna] columna++
2. e. ENDFOR
ENDFOR
4. Mtodo Imprime_Matriz a. I mprimir El cuadrado mgico que ingreso es el siguiente: b. FOR fila=1; fila<=4; fila++ 1. FOR columna =1; columna<=n; a. I mprimir matriz[fila][columna] 2. c. ENDFOR d. Fin Mtodo Imprime_Matriz ENDFOR columna++
5. Mtodo Valida_Diagonales a. sumDiag=0 b. sumDiag2=0 c. i=1 d. m=n e. DO 1. sumDiag=sumDiag+matriz [i][i] f. WHILE i<n g. I mprimir La suma de la diagonal 1 es: +sumDiag h. i=1 i. DO 1. sumDiag2=sumDiag2+matriz [i][m -j+1]
2.
i=i+1
j. WHILE i<n k. I mprimir La suma de la diagonal 2 es: +sumDiag2 l. I F sumDiag=sumDiag2 1. 2. m. ELSE 1. n. ENDIF valideDiag=False valideDiag=True sumaDiag=sumDiag2
6. Mtodo Valida_Horiz ontales a. i=1 b. DO 1. 2. 3. sumFila[i]=0 j=0 DO a. j=j+1 b. sumFila[i]=sumFila[i]+matriz [i][j] 4. 5. 6. d. i=0 e. DO 1. 2. i=i+1 I F sumFila[i]=sumFila[ i+1] a. valideHoriz =True WHILE j<=n I mprimir La suma de la fila +i+ es i=i+1
3. 4.
f. WHI LE ((i<=n)OR NOT(sumFila[i]=sumFila[i+1])) g. I F valideHoriz=True THEN 1. h. ENDIF i. Fin Mtodo Valida_Horiz ontales sumaHoriz =sumFila[i]
7. Mtodo Valida_Verticales a. j=1 b. DO 1. 2. 3. sumColumna[j]=0 i=0 DO a. i=i+1 b. sumColumna[j]=sumColumna [j]+matriz [i][j] 4. 5. 6. d. j=0 e. DO 1. 2. j=j+1 I F sumColumna[j]=sumColumna[j+1] a. valideVert=True WHILE i<=n I mprimir La suma de la columna +j+ j=j+1
3. 4.
f. WHILE ((j<=n)OR NOT(sumColumna[j]=sumColumna [j+1])) g. I F valideVert=True THEN 1. h. ENDIF i. Fin Mtodo Valida_Verticales sumaVert=sumFila[j]
10
PRUEBAS DE ESCRITORIO
DATOS DE ENTRADA
4 16 1 16 3 10 6 15 2 11 7 14 13 8 12 1
5 9 4
Resultado:
DATOS DE ENTRADA
3 1 9 1 2 5 8 3 6 9
4 7
11
CONCLUSIONES
Segn
la
prueba los
de
escritorio
el
algoritmo La parte
cumple
las
expectativas dado que se lograron las salidas planteadas y se satisfizo objetivos propuestos. matemtica involucrada en los procesos no se sale de la aritmtica bsica de las operaciones fundamentales y el c lculo de porcentajes. Por otro lado, la extensin de los clculos es mnima y adems no est cargado de ciclos por lo que el tiempo de ejecucin es tambin mnimo, por ser un algoritmo lineal. Este trabajo puede ampliarse, en busca de incluir otros
12
BIBLIOGRAFA
http://cibernous.com/logica/enunciados/deduccion.html Lpez Romn, Leobardo / Ramrez, Felipe. Lgica para Com putacin. Primera Edicin Revisada. Alfa omega Grupo Editor, 2006. Curso/Tutorial de Diseo de Algoritm os (n.d.). Extrado el 03 de Octubre del 2012 desde http://www.carlospes.com/curso_de_algoritmos/
13