Матрицы, функции, подпрограммы и прочее - VBA

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

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

Ребзя, помогите, пожалуйста. Есть условие: Есть 2 матрицы 6х6. Для матрицы, в которой выполняется условие "больше отрицательных элементов", ищется сумма положительных в каждой строке. Есть код. На выходе итоговый столбец полностью зануляется, хотя того не должно быть. Что я делаю не так?)
Листинг программы
  1. Option Base 1
  2. Sub Lab()
  3. Dim A(6, 6) As Integer
  4. Dim B(6, 6) As Integer
  5. Dim i, j, p, s As Integer
  6. Cells.Clear
  7. p = 0
  8. s = 0
  9. For i = 1 To 6
  10. For j = 1 To 6
  11. Randomize
  12. A(i, j) = 4 * Rnd - 2
  13. B(i, j) = 6 * Rnd - 3
  14. If A(i, j) < 0 Then
  15. p = p + 1
  16. End If
  17. If B(i, j) < 0 Then
  18. s = s + 1
  19. End If
  20. Next j
  21. Next i
  22. 'кусок кода, не влияющий ни на что
  23. For i = 1 To 6
  24. For j = 1 To 6
  25. Cells(i, j) = A(i, j)
  26. Cells(i + 7, j) = B(i, j)
  27. Next j
  28. Next i
  29. 'конец куска ни на что не влияющего кода
  30. Cells(6, 7) = p 'для проверки кол-ва отрицательных элементов
  31. Cells(13, 7) = s 'для проверки кол-ва отрицательных элементов
  32. Check p, s
  33. If Check(p, s) = 1 Then
  34. Call Proc(A, i, j)
  35. ElseIf Check(p, s) = 2 Then
  36. Call Proc(B, i, j)
  37. Else
  38. MsgBox ("Количество отрицательных элементов одинаково, условие не выполняется")
  39. End If
  40. End Sub
  41. Public Sub Proc(ByVal F As Variant, ByVal i As Integer, ByVal j As Integer)
  42. ReDim F(1 To 6, 1 To 6) As Integer
  43. Dim D(6) As Integer
  44. For i = 1 To 6
  45. D(i) = 0
  46. For j = 1 To 6
  47. If F(i, j) > 0 Then
  48. D(i) = D(i) + F(i, j)
  49. End If
  50. Next j
  51. Next i
  52. For i = 1 To 6
  53. Cells(i, 8) = D(i)
  54. Next i
  55. End Sub
  56. Function Check(ByVal q As Integer, ByVal w As Integer) As Integer
  57. If q > w Then
  58. Check = 1
  59. ElseIf q < w Then
  60. Check = 2
  61. Else
  62. Check = 3
  63. End If
  64. End Function

Решение задачи: «Матрицы, функции, подпрограммы и прочее»

textual
Листинг программы
  1. Public Sub Proc(ByVal F As Variant, ByVal i As Integer, ByVal j As Integer)
  2. '''''''ReDim F(1 To 6, 1 To 6) As Integer
  3. Dim D(6) As Integer

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


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

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

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

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

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

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