Написать программу в VBA. Заданы массивы А(40,40), В(20,20) и С(30,30).Для каждого из заданных массивов определить количество элементов в строке
10-11 класс
|
превышающих среднее арифметическое значение элементов массива
Option Explicit
Function Mean2(A As Variant) As Double
'Возвращает среднее арифметическое элементов двухмерного массива
Dim i As Integer, j As Integer, S As Variant, n As Integer
S = 0
For i = LBound(A, 1) To UBound(A, 1)
For j = LBound(A, 2) To UBound(A, 2)
S = S + A(i, j)
Next j
Next i
n = (UBound(A, 1) - LBound(A, 1) + 1) * (UBound(A, 2) - LBound(A, 1) + 1)
Mean2 = S / n
End Function
Sub InitMas2(A As Variant, amin As Variant, amax As Variant)
'Инициализирует элементы двухмерного массива датчиком случайных чисел
'amin и amax задают диапазон часел для инициализации
Dim i As Integer, j As Integer, typ As Integer, ik As Integer, rk As Single
Dim imin As Integer, jmin As Integer, imax As Integer, jmax As Integer
imin = LBound(A, 1)
imax = UBound(A, 1)
jmin = LBound(A, 2)
jmax = UBound(A, 2)
typ = VarType(A) - 8192
Select Case typ
Case 2, 3, 17
ik = Int(amax - amin + 1)
For i = imin To imax
For j = jmin To jmax
A(i, j) = Int(Rnd * ik + amin)
Next j
Next i
Case Else
rk = amax - amin + 1
For i = imin To imax
For j = jmin To jmax
A(i, j) = Rnd * rk + amin
Next j
Next i
End Select
End Sub
Sub OutMas(A As Variant, prow As Integer, pcol As Integer)
'Размещает элементы одномерного массива на текущем листе рабочей книги
'Ячейка в левом верхнем углу имеет адрес (prow,pcol)
'Размещение идет по колонке
Dim i As Integer, ic As Integer
Dim imin As Integer, imax As Integer
imin = LBound(A, 1)
imax = UBound(A, 1)
ic = prow
For i = imin To imax
Cells(ic, pcol).Value = A(i)
ic = ic + 1
Next i
End Sub
Sub OutMas2(A As Variant, prow As Integer, pcol As Integer)
'Размещает элементы двухмерного массива на текущем листе рабочей книги
'Ячейка в левом верхнем углу имеет адрес (prow,pcol)
Dim i As Integer, j As Integer, ic As Integer, jc As Integer
Dim imin As Integer, jmin As Integer, imax As Integer, jmax As Integer
imin = LBound(A, 1)
imax = UBound(A, 1)
jmin = LBound(A, 2)
jmax = UBound(A, 2)
ic = prow
For i = imin To imax
jc = pcol
For j = jmin To jmax
Cells(ic, jc).Value = A(i, j)
jc = jc + 1
Next j
ic = ic + 1
Next i
End Sub
Sub NumElems2(A As Variant, B() As Integer, pm As Double)
' Находит в каждой строке двухмерного массива а количество элементов,
' превышающих среднее арифметическое всех элементов этого массива pm
' и помещает это количство в одномерный массив b.
Dim i As Integer, j As Integer, kol As Integer
Dim imin As Integer, jmin As Integer, imax As Integer, jmax As Integer
imin = LBound(A, 1)
imax = UBound(A, 1)
jmin = LBound(A, 2)
jmax = UBound(A, 2)
For i = imin To imax
kol = 0
For j = jmin To jmax
If A(i, j) > pm Then kol = kol + 1
Next j
B(i) = kol
Next i
End Sub
Sub main()
Const m = 40, n = 20, p = 30
Dim A(1 To m, 1 To m) As Integer, R(1 To m) As Integer
Dim B(1 To n, 1 To n) As Single, S(1 To n) As Integer
Dim C(1 To p, 1 To p) As Integer, T(1 To p) As Integer
Dim i As Integer, mm As Double
Randomize Timer
InitMas2 A, -1000, 1000
OutMas2 A, 1, 1
mm = Mean2(A)
NumElems2 A, R, mm
OutMas R, 1, m + 2
InitMas2 B, 0, 1800
OutMas2 B, 42, 1
mm = Mean2(B)
NumElems2 B, S, mm
OutMas S, 42, n + 2
InitMas2 C, -1200, 800
OutMas2 C, 63, 1
mm = Mean2(C)
NumElems2 C, T, mm
OutMas T, 63, p + 2
End Sub
Особенность программы: позволяет работать с массивами любых допустимых числовых типов. Размер массивов фактически ограничен только размером свободной оперативной памяти компьютера.
Для запуска не забудьте разрешить исполнение макросы на уровне безопасности не выше "Средний" и дать доверенный доступ к проектам VBA.
Комментарий удален
Комментарий удален
Комментарий удален
Комментарий удален
Другие вопросы из категории
а)База данных
б)Операционная система
в)Система управления базами данных
2.Какое сетевое соединение предоставляет большую скорость передачи данных?
а)ADSL
б)WI-FI
в)GPON
3. Рассчитайте объем стереоаудиофайла длительностью 20с при 16-битном кодировании и частоте дискретизации 32кГц
а)2500кбайт
б)125кбайт
в)1250кбайт
самолётов,звёздами и планетами, подводной лодкой, живыми объектами, предприятиями и организациями. помогите с вариантами
1) Кольцевая
2) Шинная
3) Последовательная
4) Дуальная
5) Звездообразная
Читайте также
чисел найти количество элементов равных 3. 3)В массиве из 8 целых найти номер массива с наибольшим значением. 4)В массиве из 12 целых чисел найти количество и сумму элементов, расположенных до максимального элемента. 5)Для массива из 15 вещественных подсчитать количество элементов массива меньших суммы первого и последнего элементов массива.
числа 7 и меньше 10. Вывести количество элементов массива и среднее арифметическое значение этих элементов, которых больше заданного числа 7 и меньше 10 на монитор
добрый вечер, всем. помогите, пожалуйста, написать программу на Ассемблере.
задание:
Создать программу на языке Ассемблер, что позволяет организовать вычисления над элементами массивов
Объединить два массива 8-битных целых чисел со знаком. Сначала элементы второго затем первого.
заранее огромное спасибо всем!
среднее второго и предпоследнего элементов массива
дан целочисленный
массив из 10 элементов написать программу находящую сумму элементов
массива красных 3 ил 5
дан целочисленный массив из 30 ти элементов
написать программу которая позволяет найти среднее арифметическое
положительных элементов массива
2) Заданы действительные числа a , b , c и d . Написать программу нахождения полусуммы наименьшего и наибольшего из них.
3) Написать программу для вычисления суммы цифр числа , введенного с клавиатуры
Помогите прошу