Ввести числа в рублевом формате по диагонали таблицы - VB
Формулировка задачи:
Помогите, пожалуйста:
Ввести числа в рублевом формате по диагонали таблицы (A1;В2;С3 и тд).
Количество элементов - 10; диапазон [-3;3].
Определить какие из этих элементов положительные и найти их среднее арифметическое.
Для отрицательных элементов найти произведение.
Определить каких элементов больше - положительных или отрицательных?
Результаты вывести в любом листе экрана, выделив любым способом.
Visual Basic.
Решение задачи: «Ввести числа в рублевом формате по диагонали таблицы»
textual
Листинг программы
Sub MyNoizer2()
Dim a(), b()
Dim i&, j&, n&
Dim r#, q#, c%, d%
'--------------------
ActiveSheet.UsedRange.EntireRow.Delete
'вводим размер матрицы, например: 5
On Error Resume Next
n = Int(InputBox("Введите порядок матрицы", "Ввод числа", 10))
If Err Then
Err.Clear
MsgBox "Введите целое число от 1 до 10", vbInformation
Exit Sub
End If
'наполняем массив случайными числами от 1 до 20
ReDim a(1 To n, 1 To n)
Randomize
For i = 1 To n
For j = i To n
a(i, i) = Round(6 * Rnd + (-2.9), 2)
Next
Next
Cells(1, 1).Resize(n, n) = a
r = 0: q = 1
For i = 1 To n
If a(i, i) > 0 Then r = r + a(i, i)
If a(i, i) < 0 Then q = q * a(i, i)
Next
c = 0: d = 0
For i = 1 To n
If a(i, i) > 0 Then c = c + 1
If a(i, i) < 0 Then d = d + 1
Next
SA = r / c
Cells(n + 2, 6) = SA
Cells(n + 2, 1) = "Средн. арифм. полож. эл-в главн. диагон. SA = "
Cells(n + 3, 6) = q
Cells(n + 3, 1) = "Произведение отриц. эл-в главной диагонали q = "
Cells(n + 4, 6) = c
Cells(n + 4, 1) = "Численность полож. эл-в главной диагонали c = "
Cells(n + 5, 6) = d
Cells(n + 5, 1) = "Численность отриц. эл-в главной диагонали d = "
End Sub