Задача такова. Есть 2 массива G[15] и H[17] они имеют числа как положительные так и отрицательные, вот собственно отрицательные нужно суммировать
Написал код но работает толи криво толи что то я не понимаю, код запускается и выполняется НО иногда правильно а иногда с ошибкой.
- Код: Выделить всё
1. объявил разные переменные
Dim G(15), i As Integer, sumG, tyG As Integer, numG As Integer, tyH As Integer, num As Integer
Dim H(17), j As Integer, sumH
Dim g1 As String
Dim s
Dim h1 As String, check As Boolean
g1 = ""
h1 = ""
2. Сделал цикл массива G[i] =15 и тут же генерит цифры от 100 до -50
For i = 1 To 15 // цикл
tyG = 0 // очищаю переменную
G(i) = Fix(100 * Rnd) - 50 // генерирую 15 разных чисел
g1 = g1 & "G[" & i & "]=" & G(i) & " " // тут для красивости
tyG = G(i)
s = proverka(tyG, tyH, numG, numH) // переход на функцию проверки
Next i
3. Собственно код что и предыддущий
For j = 1 To 17
tyH = 0
H(j) = Fix(100 * Rnd) - 50
h1 = h1 & "H[" & j & "]=" & H(j) & " "
tyH = H(j)
s = proverka(tyG, tyH, numG, numH)
Next j
MsgBox "Массив G " & Chr(13) & g1 & Chr(13) & Chr(13) & "Массив H " & Chr(13) & h1 & Chr(13) & Chr(13) & "Сумма G= " & numG & Chr(13) & Chr(13) & "Сумма H= " & numH
End Sub
Function proverka(tyG As Integer, tyH As Integer, numG As Integer, numH)
check = False
If tyG > 0 Then
check = True
Else
numG = numG + tyG
End If
If tyH > 0 Then
check = True
Else
numH = numH + tyH
End If
End Function
вот пример ошибки
Долго голову ломал и нашел примерно ошибку , иногда код прогоняет G[15]+H[17] в итоге сумма G не совпадает или я неправ
[Viper] :: Для выделения многострочного кода необходимо использовать тэг CODE, а не ICODE!