Сумма четных элементов матрицы главной диагонали

Всем добрый день.Пытаюсь запустить код на подсчет суммы четных элементов матрицы(A(M,M)) главной диагонали и количество этих элементов. Элементы и размерность матрицы заполняется вручную.Public Sub RMN() Dim K() As Single n = InputBox("Размерность") ReDim K(1 To n, 1 To n) End SubПосле того как задали размерность,необходимо заполнить элементы массива какими-то значениями,вот тут то и проблема.Прошу помощи.
5 ответов

После того как задали размерность,необходимо заполнить элементы массива какими-то значениями,вот тут то и проблема.
Если все равно какими данными заполнять, то можно использовать функцию RND() и заполнить случайными числами. Например, целыми от 1 до 100:
For i = 1 To n: For j = 1 To n
 K(i, j) = Int(100 * Rnd() + 1)
Next j: Next i


Dim matr() As Single 'объявление динамического массива Dim i, j, KolStr, KolSrolb As Integer Dim maxElem, proizvElem As Single KolStr = Val(InputBox("Введите количество строк в матрице", "Ввод данных")) KolStolb = Val(InputBox("Введите количество столбцов в матрице", "Ввод данных")) ReDim mate(1 To KolStr, 1 To KolStold) 'изменение размера массива Randomize 'генератор случайных чисел 'значение значений элементов массива с помощью генератора случайных чисел и их вывод на лист For i = 1 To KolStr For j = 1 To KolStolb matr(i, j) = Round((-1) ^ (i + j) * Rnd * 5, 2) Cells(i + 1, j) = matr(i, j) Next j Next imaxI = 1 maxJ = 1 maxElem = matr(1, 1) For i = 1 To KolStr For j = 1 To KolStolb'поиск минимума по столбцу If Abs(mart(i, j)) > maxElem Then maxElem = matr(i, j): maxI = i: maxJ = j Next j Next iCells(4, KolStolb + 1) = "|Номер строки|" Cells(6, KolStolb + 1) = "Наибольший по модулю |x(i,j)|" Cells(8, KolSrolb) = Round(prinzvElem, 4) End Sub For i = 2 To 12 For j = 1 To 12 Cells(i, j).ClearContents Next j Next iчто в этой программе не правильно? ошибку выводит в 4 строчке


что в этой программе не правильно?
Не правильно, что вопрос, совсем к данной теме не относящийся, в чужой теме задаете.


Я догадываюсь, что "mate", "matr" и "mart" - это у Вас одно и то же? Так же как "KolStolb" и "KolStold"? Пожалуйста, по-внимательнее. А чтобы исключить предполагаемую мной ошибку, вместо
Dim matr() As Single
используйте просто
Dim matr()
Кстати, записанный Вами оператор определения типов
Dim i, j, KolStr, KolSrolb As Integer
присвоит тип Integer только переменной KolSrolb. Все остальные будут As Variant. Нужно описывать каждую переменную отдельно.


Тогда еще, зачем End Sub посреди кода?