Sub z() Range(Cells(1, 1), Cells(100, 100)).Clear n1=5 n2=3 n3=4
k = 1 A = InitMatrix(n1, k, 1) k = k + n1 + 2 B = InitMatrix(n2, k, 1) k = k + n2 + 2 C = InitMatrix(n3, k, 1)
End Sub
Function InitMatrix(n, cx, cy) ReDim A(n, n) For i = LBound(A, 1) To UBound(A, 1) For j = LBound(A, 2) To UBound(A, 2) A(i, j) = Rnd * 200 - 100 Cells(cx + i, cy + j) = A(i, j) Next Next
Cells(cx, cy + n + 1) = "PositiveAverage =" Cells(cx, cy + n + 2) = PositiveAverage(A)
InitMatrix = A End Function
Function PositiveAverage(A) For i = LBound(A, 1) To UBound(A, 1) For j = LBound(A, 2) To UBound(A, 2) If A(i, j) > 0 Then s = s + A(i, j) k = k + 1 End If Next Next
Замечание надеемся, что вы еще не забыли о позиционном принципе записи чисел в любых системах счисления (значение цифр, количество которых ограничено, зависит от положения в числе, от ее позиции).в данный момент мы делаем шаг в сторону абстрагирования от конкретных значений цифр и начинаем считать только количество знакомест (позиций), которое в принято называть "разрядом", а совокупность разрядов (знакомест) — "разрядностью". определение разряд в арифметике — это место, занимаемое цифрой при записи числа. например, в десятичной системе счисления цифры первого разряда — это единицы, второго разряда — десятки и т. д. но арифметические законы, которые кажутся привычными в десятичной системе счисления, все без исключения действительны и для двоичной системы счисления. двоичные числа также можно складывать, вычитать, перемножать и делить с использованием тех же приемов школьного курса арифметики. отличие заключается только в том, что используются всего две цифры. кроме того, как мы уже выяснили, в двоичной системе счисления каждый разряд — это бит и его значение зависит от позиции и равно соответствующей степени числа "2". определение разрядность двоичного числа — это количество знакомест (разрядов) или количество битов, заранее отведенных для записи числа. пример десятичное число "2" может быть записано различными способами в зависимости от разрядности двоичного числа: как "10", если разрядность равна двум; как "0010", если разрядность равна четырем; как "00000010", если разрядность равна восьми. обратите внимание, что последний вариант соответствует записи десятичного числа "2" в пределах одного байта информации. разрядность двоичного числа интересует нас в связи с тем, что это количество разрядов (позиций или знакомест) обеспечивает определенный набор возможных двоичных чисел, которые, как мы уже договорились, могут служить , с которых происходит кодирование любых видов информации: собственно чисел, текстов, графических и цветных изображений, звуков, анимации и видео. осталось только выяснить, каким образом разрядность влияет на количество информации (двоичных кодов), котоую можно получить с определенного количества разрядов. однако прежде следует учесть одну особенность двоичных чисел, нашедшую применение в компьютерных технологиях, — это фиксированные значения разрядности двоичных чисел.
Range(Cells(1, 1), Cells(100, 100)).Clear
n1=5
n2=3
n3=4
k = 1
A = InitMatrix(n1, k, 1)
k = k + n1 + 2
B = InitMatrix(n2, k, 1)
k = k + n2 + 2
C = InitMatrix(n3, k, 1)
End Sub
Function InitMatrix(n, cx, cy)
ReDim A(n, n)
For i = LBound(A, 1) To UBound(A, 1)
For j = LBound(A, 2) To UBound(A, 2)
A(i, j) = Rnd * 200 - 100
Cells(cx + i, cy + j) = A(i, j)
Next
Next
Cells(cx, cy + n + 1) = "PositiveAverage ="
Cells(cx, cy + n + 2) = PositiveAverage(A)
InitMatrix = A
End Function
Function PositiveAverage(A)
For i = LBound(A, 1) To UBound(A, 1)
For j = LBound(A, 2) To UBound(A, 2)
If A(i, j) > 0 Then
s = s + A(i, j)
k = k + 1
End If
Next
Next
PositiveAverage = s / k
End Function