Предмет: Информатика,
автор: Яна999
Помогите пожалуйста! Язык 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
Приложения:
Яна999:
Спасибо!
Ответы
Автор ответа:
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
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
Похожие вопросы
Предмет: Английский язык,
автор: artemugaj383
Предмет: Русский язык,
автор: nikitapchela2010
Предмет: Алгебра,
автор: vasafedotov580
Предмет: История,
автор: kovalevaanuta10