Матрицы, функции, подпрограммы и прочее - VBA
Формулировка задачи:
Ребзя, помогите, пожалуйста.
Есть условие: Есть 2 матрицы 6х6. Для матрицы, в которой выполняется условие "больше отрицательных элементов", ищется сумма положительных в каждой строке.
Есть код. На выходе итоговый столбец полностью зануляется, хотя того не должно быть.
Что я делаю не так?)
Листинг программы
- Option Base 1
- Sub Lab()
- Dim A(6, 6) As Integer
- Dim B(6, 6) As Integer
- Dim i, j, p, s As Integer
- Cells.Clear
- p = 0
- s = 0
- For i = 1 To 6
- For j = 1 To 6
- Randomize
- A(i, j) = 4 * Rnd - 2
- B(i, j) = 6 * Rnd - 3
- If A(i, j) < 0 Then
- p = p + 1
- End If
- If B(i, j) < 0 Then
- s = s + 1
- End If
- Next j
- Next i
- 'кусок кода, не влияющий ни на что
- For i = 1 To 6
- For j = 1 To 6
- Cells(i, j) = A(i, j)
- Cells(i + 7, j) = B(i, j)
- Next j
- Next i
- 'конец куска ни на что не влияющего кода
- Cells(6, 7) = p 'для проверки кол-ва отрицательных элементов
- Cells(13, 7) = s 'для проверки кол-ва отрицательных элементов
- Check p, s
- If Check(p, s) = 1 Then
- Call Proc(A, i, j)
- ElseIf Check(p, s) = 2 Then
- Call Proc(B, i, j)
- Else
- MsgBox ("Количество отрицательных элементов одинаково, условие не выполняется")
- End If
- End Sub
- Public Sub Proc(ByVal F As Variant, ByVal i As Integer, ByVal j As Integer)
- ReDim F(1 To 6, 1 To 6) As Integer
- Dim D(6) As Integer
- For i = 1 To 6
- D(i) = 0
- For j = 1 To 6
- If F(i, j) > 0 Then
- D(i) = D(i) + F(i, j)
- End If
- Next j
- Next i
- For i = 1 To 6
- Cells(i, 8) = D(i)
- Next i
- End Sub
- Function Check(ByVal q As Integer, ByVal w As Integer) As Integer
- If q > w Then
- Check = 1
- ElseIf q < w Then
- Check = 2
- Else
- Check = 3
- End If
- End Function
Решение задачи: «Матрицы, функции, подпрограммы и прочее»
textual
Листинг программы
- Public Sub Proc(ByVal F As Variant, ByVal i As Integer, ByVal j As Integer)
- '''''''ReDim F(1 To 6, 1 To 6) As Integer
- Dim D(6) As Integer
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д