PRACTICA 2
INTEGRANTES:
SINTIA CATALINA VÉLEZ RESTREPO
YEISON GUACA CONTRERAS
CURSO:
PROGRAMACIÓN Y ALGORÍTMIA
TUTOR:
GERMÁN ALCIDES GÓMEZ ZABALA
[pic 1]
UNIVERSIDAD DE ANTIOQUIA
FACULTAD DE INGENIERÍA
MEDELLÍN, NOVIEMBRE 16 DE 2015
INTRODUCCIÓN
Este manual es una guía básica para:
- La elaboración de un programa en visual Basic que a través de una aplica de Excel realiza operaciones (suma, resta y multiplicación) entre dos matrices de 5X5 y adicional muestra la transpuesta.
- El uso correcto del programa.
MANUAL PARA EL PROGRAMADOR
El propósito del presente manual es dar a conocer al programador la estructura del programa realizado en lo que tiene que ver con código o algoritmo
SOFTWARE EMPLEADO:
Microsoft Excel 2013
LENGUAJE DE PROGRAMACIÓN EMPLEADO:
Visual Basic para Aplicaciones VBA
ARCHIVO EJECUTABLE:
El archivo que se ejecutará desde el sistema operativo será el llamado: Practica2_CatalinaVelez_YeisonGuaca.xlsm
VARIABLES PÚBLICAS:
NOMBRE DE VARIABLE | TIPO | EXPLICACIÓN |
matriz1(5, 5) | Integer | Matriz 1 generada por el programa, la cual es utilizada por todos los botones |
matriz2(5, 5) | Integer | Matriz 2 generada por el programa, la cual es utilizada por todos los botones |
matriz3(5, 5) | Integer | Matriz 3 transpuesta de la matriz 1, la cual es utilizada por el botón de transpuestas |
matriz4(5, 5) | Integer | Matriz 4 transpuesta de la matriz 2, la cual es utilizada por el botón de transpuestas |
i | Integer | Orden de filas utilizada en todos los ciclos FOR |
j | Integer | Orden de columnas utilizada en todos los ciclos FOR |
Valor_mult(5, 5) | Integer | Matriz utilizada para almacenar la multiplicación de las matrices 1 y 2 |
VARIABLES LOCALES:
NOMBRE DE VARIABLE | TIPO | EXPLICACIÓN |
k | Integer | Variable utilizada para lograr realizar la multiplicación de filas por columnas en dicho ciclo FOR |
CODIGOS DE PROGRAMACIÓN ALGORÍTMICA:
Código VBA | Explicación Algorítmica |
- For i = 1 To 5
- For j = 1 To 5
- matriz1(i, j) = (Rnd * 100)
- Hoja1.Cells(i + 1, j + 1) = matriz1(i, j)
- Next j
- Next i
- For i = 1 To 5
- For j = 1 To 5
- matriz2(i, j) = (Rnd * 100)
- Hoja1.Cells(i + 1, j + 8) = matriz2(i, j)
- Next j
- Next i
| - Ciclo PARA con orden filas de 1 hasta 5
- Ciclo para con orden columnas de 1 a 5
- Llena la primera matriz de 5x5 con valores aleatorios de 1 a 100
- Ingresa los valores de la primera matriz en la hoja de Excel
- Finalización FOR orden columnas para dicho ciclo
- Finalización FOR orden filas para dicho ciclo
- Ciclo PARA con orden filas de 1 hasta 5
- Ciclo para con orden columnas de 1 a 5
- Llena la segunda matriz de 5x5 con valores aleatorios de 1 a 100
- Ingresa los valores de la segunda matriz en la hoja de Excel
- Finalización FOR orden columnas para dicho ciclo
- Finalización FOR orden filas para dicho ciclo
|
Código VBA | Explicación Algorítmica |
- For i = 1 To 5
- For j = 1 To 5
- matriz1(i, j) = 0
- matriz2(i, j) = 0
- matriz3(i, j) = 0
- matriz4(i, j) = 0
- Valor_mult(i, j) = 0
- Next j
- Next i
- For i = 1 To 5
- For j = 1 To 5
- Hoja1.Cells(i + 1, j + 1)=””
- Hoja1.Cells(i + 1, j + 8) = ""
- Hoja1.Cells(i + 1, j + 14) = ""
- Hoja1.Cells(i + 1, j + 20) = ""
- Hoja1.Cells(i + 1, j + 26) = ""
- Hoja1.Cells(i + 1, j + 32) = ""
- Hoja1.Cells(i + 8, j + 32) = ""
- Next j
- Next i
| - Ciclo PARA con orden filas de 1 hasta 5
- Ciclo para con orden columnas de 1 a 5
- Llena de 0 la matriz generada 1
- Llena de 0 la matriz generada 2
- Llena de 0 la matriz transpuesta 1
- Llena de 0 la matriz transpuesta 2
- Llena de 0 la matriz que almacena la multiplicación
- Finalización FOR orden columnas para dicho ciclo
- Finalización FOR orden filas para dicho ciclo
- Ciclo PARA con orden filas de 1 hasta 5
- Ciclo PARA con orden columnas de 1 a 5
- Llena de valores vacíos la matriz 1 generada en Excel
- Llena de valores vacíos la matriz 2 generada en Excel
- Llena de valores vacíos la matriz suma generada en Excel
- Llena de valores vacíos la matriz resta generada en Excel
- Llena de valores vacíos la matriz multiplicación generada en Excel
- Llena de valores vacíos la matriz transpuesta 1 generada en Excel
- Llena de valores vacíos la matriz transpuesta 2 generada en Excel
- Finalización FOR orden columnas para dicho ciclo
- Finalización FOR orden filas para dicho ciclo
|
- BOTÓN SUMA DE LAS MATRICES:
Código VBA | Explicación Algorítmica |
- For i = 1 To 5
- For j = 1 To 5
- Hoja1.Cells(i + 1, j + 14) = matriz1(i, j) + matriz2(i, j)
- Next j
- Next i
| - Ciclo PARA con orden filas de 1 hasta 5
- Ciclo PARA con orden columnas de 1 a 5
- Realiza la suma factor a factor e ingresa el resultado en la hoja de Excel
- Finalización FOR orden columnas para dicho ciclo
- Finalización FOR orden filas para dicho ciclo
|
- BOTÓN RESTA DE LAS MATRICES:
Código VBA | Explicación Algorítmica |
- For i = 1 To 5
- For j = 1 To 5
- Hoja1.Cells(i + 1, j + 14) = matriz1(i, j) - matriz2(i, j)
- Next j
- Next i
| - Ciclo PARA con orden filas de 1 hasta 5
- Ciclo PARA con orden columnas de 1 a 5
- Realiza la resta factor a factor e ingresa el resultado en la hoja de Excel
- Finalización FOR orden columnas para dicho ciclo
- Finalización FOR orden filas para dicho ciclo
|
Código VBA | Explicación Algorítmica |
- Dim k As Integer
- For i = 1 To 5
- For j = 1 To 5
- For k = 1 To 5
- Valor_mult(i, j) = Valor_mult(i, j) + matriz1(i, k) * matriz2(k, j)
- Next k
- Next j
- Next i
- For i = 1 To 5
- For j = 1 To 5
- Hoja1.Cells(i + 1, j + 26) = Valor_mult(i, j)
- Next j
- Next i
| - Declaración de la variable k utilizada en la mutiplicación tipo entero
- Ciclo PARA con orden filas de 1 hasta 5
- Ciclo PARA con orden columnas de 1 a 5
- Ciclo PARA con orden especial de 1 a 5
- Se acumula en la matriz de multiplicación el valor de las filas por las columnas, por ello se toman los órdenes (i,k)*(k,j)
- Finalización FOR orden especial k para dicho ciclo
- Finalización FOR orden columnas para dicho ciclo
- Finalización FOR orden filas para dicho ciclo
- Ciclo PARA con orden filas de 1 hasta 5
- Ciclo PARA con orden columnas de 1 a 5
- Se llevan los valores de la multiplicación a Excel
- Finalización FOR orden columnas para dicho ciclo
- Finalización FOR orden filas para dicho ciclo
|
- BOTÓN TRANSPUESTA DE AMBAS MATRICES:
Código VBA | Explicación Algorítmica |
- For i = 1 To 5
- For j = 1 To 5
- matriz3(i, j) = matriz1(j, i)
- Hoja1.Cells(i + 1, j + 32) = matriz3(i, j)
- matriz4(i, j) = matriz2(j, i)
- Hoja1.Cells(i + 8, j + 32) = matriz4(i, j)
- Next j
- Next i
| - Ciclo PARA con orden filas de 1 hasta 5
- Ciclo PARA con orden columnas de 1 a 5
- Lleva el valor de la matriz 1 (fila, columna) a la matriz 3 (columna, fila) que es transpuesta de la 1
- Lleva los valores de la transpuesta 1 a Excel
- Lleva el valor de la matriz 2 (fila, columna) a la matriz 4 (columna, fila) que es transpuesta de la 2
- Lleva los valores de la transpuesta 2 a Excel
- Finalización FOR orden columnas para dicho ciclo
- Finalización FOR orden filas para dicho ciclo
|
MANUAL PARA EL USUARIO
El propósito del presente manual es presentar al usuario una guía básica para la manipulación del programa.
La estructura del programa está compuesto por 6 módulos:
En este módulo se generaran 2 matrices de 5X5 con números aleatorios, dando clic en el botón:
[pic 2]
En este módulo se pueden limpiar o borrar los números aleatorios que forman las dos matrices generadas en el módulo anterior, además de borrar los resultados de las matrices Suma, Resta, Multiplicación y Transpuesta, dando clic en el botón: