Codigo Calculadora Matrices Visual Basic

Sub Macro1() ' 'CALCULADORA_MATRICES Macro 'declaracion de variables Dim i, j, k, numfa, numfb, numca, muncb, flag, opci

Views 153 Downloads 1 File size 11KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Sub Macro1() ' 'CALCULADORA_MATRICES Macro 'declaracion de variables Dim i, j, k, numfa, numfb, numca, muncb, flag, opcion As Integer Dim matrizA(300, 300) As Double Dim matrizB(300, 300) As Double Dim matrizC(300, 300) As Double flag = 0 'Dimension de la matriz A e ingreso numfa = InputBox("Ingrese el numero de filas de la matriz A") numca = InputBox("Ingrese el numero de columnas de la matriz A") For i = 1 To numfa For j = 1 To numca matrizA(i, j) = InputBox("Elemento A " & i & "-" & j) Next Next 'Dimension de la matriz B e ingreso numfb = InputBox("Ingrese el numero de filas de la matriz B") numcb = InputBox("Ingrese el numero de columnas de la matriz B") For i = 1 To numfb For j = 1 To numcb matrizB(i, j) = InputBox("Elemento B " & i & "-" & j) Next Next 'menu de opciones opcion = InputBox("Elija la opcion:" + Chr(13) + "1: suma" + Chr(13) + "2: resta " + Chr(13) + "3: multiplicacion" + Chr(13) + "4: divisón") Select Case opcion Case 1 If (numfa = numfb And numca = numcb) Then For i = 1 To numfa For j = 1 To numcb matrizC(i, j) = matrizA(i, j) + matrizB(i, j) Next Next Else flag = 1 End If Case 2 If (numfa = numfb And numca = numcb) Then For i = 1 To numfa For j = 1 To numcb matrizC(i, j) = matrizA(i, j) - matrizB(i, j) Next Next Else flag = 1 End If Case 3 If (numca = numfb) Then For i = 1 To numfa For j = 1 To numcb

matrizC(i, j) = 0 For k = 1 To numca matrizC(i, j) = matrizC(i, j) + matrizA(i, k ) * matrizB(k, j) Next Next Next Else flag = 2 End If Case 4 If (numfa = numfb And numca = For i = 1 To numfa For j = 1 To numcb If (matrizB(i, j) matrizC(i, j) Else matrizC(i, j) End If Next Next Else flag = 1 End If

numcb) Then = 0) Then = 9999 = matrizA(i, j) / matrizB(i, j)

Case Else MsgBox ("Error de opcion") End Select 'Impresion de la matriz A Worksheets("hoja1").Cells(2, 2).Value = ("MATRIZ A") For i = 1 To numfa For j = 1 To numca Worksheets("hoja1").Cells(i + 3, j).Value = (matrizA(i, j)) Next Next 'Impresion de la matriz B Worksheets("hoja1").Cells(2, j + 2).Value = ("MATRIZ B") For i = 1 To numfb For j = 1 To numcb Worksheets("hoja1").Cells(i + 3, j + (numca + 1)).Value = (matrizB(i, j) ) Next Next 'Acción de la bandera If (flag = 1) Then MsgBox ("ERRROR") MsgBox ("Para la suma, resta o división de matrices" + Chr(13) + "Debe n tener el mismo numero de filas y columnas" + Chr(13) + "Es decir misma dimensión ") Else If (flag = 2) Then MsgBox ("ERRROR") MsgBox ("Para la multiplicación de matrices" + Chr(13) + "El numero de col umnas de la matriz A dede ser igual" + Chr(13) + "al numero de columnas de la ma

triz B") End If End If 'Impresion de la matriz C Worksheets("hoja1").Cells(2, ((2 * j) + 2)).Value = ("MATRIZ RESULTADO") For i = 1 To numfa For j = 1 To numcb If (matrizC(i, j) = 9999) Then Worksheets("hoja1").Cells(i + 3, j + ((2 * numcb) + 2)).Value = Erro r Else Worksheets("hoja1").Cells(i + 3, j + ((2 * numcb) + 2)).Value = (mat rizC(i, j)) End If Next Next End Sub