ВУЗы и колледжи
vba информатика
найти произведение ненулевых элементов квадратной матрицы порядка NxN , расположенных выше главной диагонали!
Sub test()
Dim n, m, ni, mi, ms, sarray, proizv As Integer
n = 4 'столбцы
m = n 'строки
Dim array_Matrix(4, 4) As Variant ' заполним массив из листа
For ni = 1 To n
For mi = 1 To m
array_Matrix(mi, ni) = ThisWorkbook.Worksheets("test").Cells(mi, ni).Value
' MsgBox "Элемент матрицы с M = " & mi & " N = " & ni & " равен: " & array_Matrix(mi, ni)
Next mi
Next ni
proizv = 0 ' установим начальное произведение
For ni = 2 To n ' начнем бежать по столбцам со второго, т. к. "Выше главной диаганали" начинается со второго столбца
For msi = 1 To ni - 1 ' начнем перегонять построчно по правилу количество строк = столбец -1
'Debug.Print "Столбец: " & ni & " Используем строк: " & msi
'Debug.Print "Текущая формула: " & proizv & " = " & proizv & " * " & array_Matrix(ni, msi)
If array_Matrix(msi, ni) <> 0 Then ' проверка на не нулевой элемент массива
If proizv = 0 Then ' проверка на первичное положение переменной произведения. Если она равна 0, то присовим едениченое значение
proizv = 1
End If
proizv = proizv * array_Matrix(msi, ni) ' Умножим имеющееся ранее произведение на текущий не нулевой элемент массива
'Debug.Print "Условие ненулевого значения элемента выполнено. следовательно произведение = " & proizv
'Debug.Print "_"
End If
Next msi
Next ni
If proizv <> 0 Then
MsgBox "Произведение равно = " & proizv
Else
MsgBox "Все элементы нулевые"
End If
End Sub
Dim n, m, ni, mi, ms, sarray, proizv As Integer
n = 4 'столбцы
m = n 'строки
Dim array_Matrix(4, 4) As Variant ' заполним массив из листа
For ni = 1 To n
For mi = 1 To m
array_Matrix(mi, ni) = ThisWorkbook.Worksheets("test").Cells(mi, ni).Value
' MsgBox "Элемент матрицы с M = " & mi & " N = " & ni & " равен: " & array_Matrix(mi, ni)
Next mi
Next ni
proizv = 0 ' установим начальное произведение
For ni = 2 To n ' начнем бежать по столбцам со второго, т. к. "Выше главной диаганали" начинается со второго столбца
For msi = 1 To ni - 1 ' начнем перегонять построчно по правилу количество строк = столбец -1
'Debug.Print "Столбец: " & ni & " Используем строк: " & msi
'Debug.Print "Текущая формула: " & proizv & " = " & proizv & " * " & array_Matrix(ni, msi)
If array_Matrix(msi, ni) <> 0 Then ' проверка на не нулевой элемент массива
If proizv = 0 Then ' проверка на первичное положение переменной произведения. Если она равна 0, то присовим едениченое значение
proizv = 1
End If
proizv = proizv * array_Matrix(msi, ni) ' Умножим имеющееся ранее произведение на текущий не нулевой элемент массива
'Debug.Print "Условие ненулевого значения элемента выполнено. следовательно произведение = " & proizv
'Debug.Print "_"
End If
Next msi
Next ni
If proizv <> 0 Then
MsgBox "Произведение равно = " & proizv
Else
MsgBox "Все элементы нулевые"
End If
End Sub
моя курсовая почти на твою задачу похожа..)) ) тока у меня на С++
Похожие вопросы
- Определитель матрицы в VBA
- Сортировка методом пузырька в VBA
- Бизнес-информатика в ВУЗах. Насколько перспективно это направление? Где лучше учиться? Где потом работать?
- Могу ли я сдать информатику при поступлении в ЛГТУ?
- Насколько важна математика в изучении информатики?
- Почему вузы убирают ЕГЭ по информатике? И заменяют физикой.
- кто хорошо эрудирован - подскажите, какая связь между психологией и информатикой?
- Информатика/Маткад
- Можно ли работать учителем в школе с дипломом прикладная информатика
- Нужно ли сдавать информатику и физику чтобы поступить на программиста.