Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2010, 01:32   #1
Staricraft
Новичок
Джуниор
 
Регистрация: 22.05.2010
Сообщений: 3
Восклицание Возведение матрицы в квадрат.в vba

Нужно матрицу 5 на 5 возвести в квадрат с помощью процедуры....мож кто поможет найти ошибку или другой способ?

Sub Макрос1()
Const n = 5, m = 5, l = 5
Dim a(1 To n, 1 To m) As Long
Dim s As Integer
Dim k As Integer
Dim x As Integer
Dim y As Integer
Sheets("Лист1").Activate
For i = 1 To n
For j = 1 To m
a(i, j) = ThisWorkbook.ActiveSheet.Cells(i, j)
Next j
Next i
Call matr(n, m, a, a, a, l)
For i = 1 To n
For j = 1 To m
Cells(i, j) = a(i, j)
Next j
Next i
End Sub

процедура:

Sub matr(k, d, h, q, a, g)
r = 0
For i = 1 To k
For j = 1 To d
For o = 1 To g
r = r + h(o, i) * q(j, o)
a(i, j) = r
Next o
Next j
Next i
End Sub
Staricraft вне форума Ответить с цитированием
Старый 22.05.2010, 02:14   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Нужно матрицу 5 на 5 возвести в квадрат
А это как?
Может, просто возвести в квадрат каждое из чисел в матрице?

Код:
Sub Макрос1()
    Const n = 5, m = 5
    a = Cells(1, 1).Resize(n, m).Value    ' считываем с листа в массив
    Процедура a    ' возводим в квадрат
    Cells(1, 1).Resize(n, m).Value = a    ' заносим обратно на лист
End Sub

Sub Процедура(arr)
    For i = LBound(arr, 1) To UBound(arr, 1)
        For j = LBound(arr, 2) To UBound(arr, 2)
            arr(i, j) = Val(arr(i, j)) * Val(arr(i, j))
        Next j
    Next i
End Sub

Последний раз редактировалось EducatedFool; 22.05.2010 в 02:19.
EducatedFool вне форума Ответить с цитированием
Старый 22.05.2010, 03:37   #3
Staricraft
Новичок
Джуниор
 
Регистрация: 22.05.2010
Сообщений: 3
По умолчанию

Там по правилам она возводиться в квадрат, перемножая определённые элементы столбцов и строк, в поисковике любом можно посмотреть наглядно как)))))
Staricraft вне форума Ответить с цитированием
Старый 22.05.2010, 03:42   #4
Staricraft
Новичок
Джуниор
 
Регистрация: 22.05.2010
Сообщений: 3
По умолчанию

например a(1,1)=a(1,1)*a(1,1)+a(1,2)*a(2,1)+ a(1,3)*a(3,1)+a(1,4)*a(4,1)+a(1,5)* a(5,1)- так получается первый элемент матрицы в квадрате)))
Staricraft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
возведение матрицы в степень Kanzann Паскаль, Turbo Pascal, PascalABC.NET 0 27.04.2010 19:08
Вычислить квадрат матрицы DaBuble Помощь студентам 2 23.03.2010 16:26
квадрат матрицы MrMorozko Помощь студентам 0 16.12.2009 15:44
Возведение в квадрат Polarbear Помощь студентам 2 12.12.2009 14:05
возведение в квадрат элементов главной диагонали матрицы. Паскаль hardrace Помощь студентам 7 14.11.2009 22:54