Умножение матрицы на матрицу - VB

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста написать подпрограмму для умножения матрицы порядка nxm на матрицу порядка qxp. Никак не могу понять логику вычисления. Код я написала, но это чушь какая-то... Очень хочется сдать курсовик...((
Листинг программы
  1. Dim A() As Single, B() As Single 'Ввожу матрицу А
  2. Dim n, m As Integer
  3. Option Explicit
  4. Public Sub Command1_Click()
  5. Dim i As Integer, j As Integer
  6. n = CInt(InputBox("Число строк"))
  7. m = CInt(InputBox("Число столбцов"))
  8. ReDim A(n, m) As Single
  9. For i = 1 To n
  10. For j = 1 To m
  11. A(i, j) = InputBox("A(" & i & " , " & j & " ) ")
  12. Text1.Text = Text1.Text & A(i, j) & ""
  13. Next j
  14. Text1.Text = Text1.Text + vbCrLf
  15. Next i
  16. End Sub
  17. Public Sub Command2_Click() 'Ввожу матрицу В
  18. Dim q As Integer, P As Integer, Г‚() As Single, i As Integer, j As Integer
  19. q = CInt(InputBox("Число строк"))
  20. P = CInt(InputBox("Число столбцов"))
  21. ReDim Г‚(q, P) As Single
  22. For i = 1 To q
  23. For j = 1 To P
  24. Г‚(q, P) = InputBox("Г‚(" & q & " , " & P & " ) ")
  25. Text2.Text = Text2.Text & Г‚(q, P) & ""
  26. Next j
  27. Text2.Text = Text2.Text + vbCrLf
  28. Next i
  29. End Sub
  30. Private Sub Command10_Click() 'А это какая-то ерунда...
  31. Dim i As Integer, j As Integer, m, n, q, P As Integer, r As Integer, C() As Single
  32. ReDim C(m, q)
  33. ReDim A(i, r)
  34. ReDim B(r, j)
  35. For i = 1 To m
  36. For j = 1 To q
  37. For r = 1 To n
  38. C(i, j) = A(i, r) * B(r, j)
  39. Next r
  40. Text10.Text = Text10.Text & C(i, j) & ""
  41. Next j
  42. Text10.Text = Text10.Text + vbCrLf
  43. Next i
  44. End Sub

Решение задачи: «Умножение матрицы на матрицу»

textual
Листинг программы
  1. Private Sub Command10_Click() 'А это какая-то ерунда...точно!
  2. Dim i As Integer, j As Integer, m, n, q, P As Integer, r As Integer, C() As Single
  3. if m<>q then msgbox "Умножение этих матриц в этом порядке невозможно!!" : exit sub
  4.  
  5. ReDim C(n, p) 'ReDim C(m, q)
  6.              'ReDim A(i, r)
  7.              'ReDim B(r, j)
  8. For i = 1 To n 'm
  9. For j = 1 To p 'q
  10. For r = 1 To m 'или q - они должны быть равны
  11.   C(i, j) = C(i, j) + A(i, r) * B(r, j) 'C(i, j) = A(i, r) * B(r, j)
  12. Next r
  13. Text10.Text = Text10.Text & C(i, j) & ""  'здесь без комментариев, советую & vbtab
  14. Next j
  15. Text10.Text = Text10.Text + vbCrLf
  16. Next i
  17. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут