Помогите пожалуйста! Язык VBA. Не могу задать замену окончательной суммы. Задача: Дан...

0 голосов
76 просмотров

Помогите пожалуйста! Язык VBA. Не могу задать замену окончательной суммы.
Задача:
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 100 включительно. Опишите на VBA алгоритм, который находит сумму элементов массива меньших 80 и при этом, кратных 5, а затем заменяет каждый такой элемент на число, равное найденной сумме. Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести измененный массив, каждый элемент выводится с новой строчки. Например, для исходного массива из шести элементов:
14
15
27
20
95
4
программа должна вывести следующий массив
14
35
27
35
95
4

Sub program()
Dim a(1 To 30) As Integer, i As Integer, Sum As Integer

For i = 1 To 30
a(i) = Int(100 * Rnd)
Sheets("Лист1").Cells(i, 1) = a(i)
Next i

Sum = 0
For i = 1 To 30
If a(i) < 80 And a(i) Mod 5 = 0 Then
Sum = Sum + a(i)
a(i) = Sum
End If
Sheets("Лист1").Cells(i, 2) = a(i)
Next i

Sheets("Лист1").Cells(1, 3) = Sum
End Sub


image

Информатика (61 баллов) | 76 просмотров
0

Спасибо!

Дан 1 ответ
0 голосов

Sub program()
    Const n = 30
    Dim a(1 To 30) As Integer, i As Integer, Sum As Integer
    For i = 1 To n
        a(i) = Int(100 * Rnd)
        Sheets("Лист1").Cells(i, 1) = a(i)
    Next i
    Sum = 0
    For i = 1 To n
        If a(i) < 80 And a(i) Mod 5 = 0 Then
            Sum = Sum + a(i)
        End If
    Next i
    For i = 1 To n
        If a(i) < 80 And a(i) Mod 5 = 0 Then
            Sheets("Лист1").Cells(i, 2) = Sum
        Else
            Sheets("Лист1").Cells(i, 2) = a(i)
        End If
    Next i
End Sub

(2.0k баллов)
0

Большое спасибо!