You are on page 1of 3

Private Sub Command1_Click() Dim a() As Double, at() As Double, ata() As Double, iden() As Double, inv() As D ouble nfilasa

= InputBox("Numero de filas de la matriz", "Filas de la Matriz A", 0) ncolsa = InputBox("Numero de columnas de la matriz", "Columnas de la Matriz A", 0) ReDim a(nfilasa, ncolsa) As Double 'Genera la matriz de numeros aleatorios de 1 a 20 For i = 1 To nfilasa For j = 1 To ncolsa Randomize a(i, j) = Int(20 * Rnd + 1) Next j Next i For i = 1 To nfilasa For j = 1 To ncolsa If i = 1 And j = 1 Then Picture1.Print " Matriz a"; Picture1.Print End If Picture1.Print a(i, j), Next j Picture1.Print Next i 'Calcula la at ReDim at(ncolsa, nfilasa) As Double For i = 1 To ncolsa For j = 1 To nfilasa at(i, j) = a(j, i) Next j Next i 'Imprimir la matriz at For i = 1 To ncolsa For j = 1 To nfilasa If i = 1 And j = 1 Then Picture1.Print " Matriz at"; Picture1.Print End If Picture1.Print at(i, j); Next j Picture1.Print Next i 'multipliain de at*a ReDim ata(ncolsa, ncolsa) As Double For i = 1 To ncolsa For k = 1 To ncolsa ata(i, k) = 0 For j = 1 To nfilasa ata(i, k) = ata(i, k) + at(i, j) * a(j, k) Next j Next k Next i For i = 1 To ncolsa For j = 1 To ncolsa If i = 1 And j = 1 Then Picture1.Print "ATA"; Picture1.Print End If

Picture1.Print ata(i, j), Next j Picture1.Print Next i 'sumar las filas y olumnas de la matriz ata ReDim sf(ncolsa) As Double, sc(ncolsa) As Double For i = 1 To ncolsa sf(i) = 0 sc(i) = 0 For j = 1 To ncolsa sc(i) = sc(i) + ata(j, i) sf(i) = sf(i) + ata(i, j) Next j Next i For i = 1 To ncolsa If i = 1 Then Picture1.Print "Suma de las filas y su promedio"; Picture1.Print End If Picture1.Print "La suma de los valores de la fila "; i; " es "; sf(i); " y s u promedio es: "; sf(i) / ncolsa; Picture1.Print Next i For i = 1 To ncolsa If i = 1 Then Picture1.Print "Suma de columnas y su promedio"; Picture1.Print End If Picture1.Print "La suma de los valores de la columna "; i; " es "; sc(i); " y su promedio es: "; sc(i) / ncolsa; Picture1.Print Next i 'Matriz Indentidad ReDim iden(ncolsa, ncolsa) As Double For i = 1 To ncolsa For j = 1 To ncolsa If i <> j Then iden(i, j) = 0 Else iden(i, j) = 1 End If Next j Next i For i = 1 To ncolsa For j = 1 To ncolsa If i = 1 And j = 1 Then Picture1.Print "Matriz Identidad"; Picture1.Print End If Picture1.Print iden(i, j); Next j Picture1.Print Next i 'Inversa de la matriz For i = 1 To ncolsa For j = 1 To ncolsa If i <> j Then

d = -(ata(j, i) / ata(i, i)) For k = 1 To ncolsa ata(j, k) = d * ata(i, k) + ata(j, k) ata(j, k) = Format(ata(j, k), "#0.#0") iden(j, k) = d * iden(i, k) + iden(j, k) iden(j, k) = Format(iden(j, k), "#0.#0") Next k End If Next j Next i For i = 1 To ncolsa For j = 1 To ncolsa If i = 1 And j = 1 Then Picture1.Print "Calculo Previo"; Picture1.Print End If Picture1.Print ata(i, j), Next j Picture1.Print Next i For i = 1 To ncolsa For j = 1 To ncolsa If i = 1 And j = 1 Then Picture1.Print "Calculo Previo iden"; Picture1.Print End If Picture1.Print iden(i, j), Next j Picture1.Print Next i 'Hallando la matriz inversa de ata ReDim inv(ncolsa, ncolsa) As Double For i = 1 To ncolsa For j = 1 To ncolsa inv(i, j) = iden(i, j) / ata(i, i) inv(i, j) = Format(inv(i, j), "#0.#0") Next j Next i For i = 1 To ncolsa For j = 1 To ncolsa If i = 1 And j = 1 Then Picture1.Print "Inversa de ata"; Picture1.Print End If Picture1.Print inv(i, j), Next j Picture1.Print Next i End Sub Private Sub Command2_Click() Picture1.Cls End Sub

You might also like