Multiplicar Duas Matrizes 3×3 em Vba\Excel
Posted by admin on 30 de Dezembro de 2011 | Filed under Exercícios, Línguagens de Programação, Programação
Continuando com a resolução dos meus primeiros exercícios em Vba aqui fica mais um:
Elabore um algoritmo que permita Somar 5 Células na Horizontal a Partir da Célula Seleccionada.
Aqui fica o código que resolve o exercício:
Sub MatrixMult() Dim a(1 To 3, 1 To 3) As Double, b(1 To 3, 1 To 3) As Double Dim m(1 To 3, 1 To 3) As Double Dim i As Integer, j As Integer, k As Integer Dim s As Double Dim aCell As Range, bCell As Range, mCell As Range ' guardar valores das células A1:C3 na matriz a() Set aCell = Range("A1") For i = 1 To 3 ' linha For j = 1 To 3 ' coluna a(i, j) = aCell.Offset(i - 1, j - 1).Value Next j Next i ' guardar valores das células E1:G3 na matriz b() Set bCell = Range("E1") For i = 1 To 3 ' linha For j = 1 To 3 ' coluna b(i, j) = bCell.Offset(i - 1, j - 1).Value Next j Next i ' calcula o produto For i = 1 To 3 ' linha For j = 1 To 3 ' coluna s = 0 For k = 1 To 3 s = s + a(i, k) * b(k, j) Next k m(i, j) = s Next j Next i ' apresentar os valores de m(i,j) nas células I1:K3 Set mCell = Range("I1") For i = 1 To 3 ' linha For j = 1 To 3 ' coluna mCell.Offset(i - 1, j - 1).Value = m(i, j) Next j Next i End Sub
Não sei se a forma como implementei a resolução do exercício é a mais correcta, e por isso fico à espera de comentários, ou mesmo de correcções e dicas de melhoramento do código que apresento.
Share