Умножение матрицы на матрицу - VB
Формулировка задачи:
Помогите пожалуйста написать подпрограмму для умножения матрицы порядка nxm на матрицу порядка qxp. Никак не могу понять логику вычисления. Код я написала, но это чушь какая-то...
Очень хочется сдать курсовик...((
Листинг программы
- Dim A() As Single, B() As Single 'Ввожу матрицу А
- Dim n, m As Integer
- Option Explicit
- Public Sub Command1_Click()
- Dim i As Integer, j As Integer
- n = CInt(InputBox("Число строк"))
- m = CInt(InputBox("Число столбцов"))
- ReDim A(n, m) As Single
- For i = 1 To n
- For j = 1 To m
- A(i, j) = InputBox("A(" & i & " , " & j & " ) ")
- Text1.Text = Text1.Text & A(i, j) & ""
- Next j
- Text1.Text = Text1.Text + vbCrLf
- Next i
- End Sub
- Public Sub Command2_Click() 'Ввожу матрицу В
- Dim q As Integer, P As Integer, Г‚() As Single, i As Integer, j As Integer
- q = CInt(InputBox("Число строк"))
- P = CInt(InputBox("Число столбцов"))
- ReDim Г‚(q, P) As Single
- For i = 1 To q
- For j = 1 To P
- Г‚(q, P) = InputBox("Г‚(" & q & " , " & P & " ) ")
- Text2.Text = Text2.Text & Г‚(q, P) & ""
- Next j
- Text2.Text = Text2.Text + vbCrLf
- Next i
- End Sub
- Private Sub Command10_Click() 'А это какая-то ерунда...
- Dim i As Integer, j As Integer, m, n, q, P As Integer, r As Integer, C() As Single
- ReDim C(m, q)
- ReDim A(i, r)
- ReDim B(r, j)
- For i = 1 To m
- For j = 1 To q
- For r = 1 To n
- C(i, j) = A(i, r) * B(r, j)
- Next r
- Text10.Text = Text10.Text & C(i, j) & ""
- Next j
- Text10.Text = Text10.Text + vbCrLf
- Next i
- End Sub
Решение задачи: «Умножение матрицы на матрицу»
textual
Листинг программы
- Private Sub Command10_Click() 'А это какая-то ерунда...точно!
- Dim i As Integer, j As Integer, m, n, q, P As Integer, r As Integer, C() As Single
- if m<>q then msgbox "Умножение этих матриц в этом порядке невозможно!!" : exit sub
- ReDim C(n, p) 'ReDim C(m, q)
- 'ReDim A(i, r)
- 'ReDim B(r, j)
- For i = 1 To n 'm
- For j = 1 To p 'q
- For r = 1 To m 'или q - они должны быть равны
- C(i, j) = C(i, j) + A(i, r) * B(r, j) 'C(i, j) = A(i, r) * B(r, j)
- Next r
- Text10.Text = Text10.Text & C(i, j) & "" 'здесь без комментариев, советую & vbtab
- Next j
- Text10.Text = Text10.Text + vbCrLf
- Next i
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д