#1 08.04.11 13:34
VBA. Подскажите пожалуйста в чем ошибка
В этой программе нужно ввести матрицу и транспонировать. Это задание выполняется. Еще не обходимо найти определитель, используя стандартные функции. Но у меня почему-то не хочет работать. В чем примина?=(((((аааа=(
Private Function qwe Command1_Click(qqq as variant)
Dim a(), b()
n = Val(InputBox("Kol-vo strok"))
m = Val(InputBox("kol-vo stolbcov"))
ReDim a(1 To n, 1 To m)
ReDim b(1 To m, 1 To n)
For I = 1 To n
For J = 1 To m
a(I, J) = InputBox(I & J) & Chr(9)
Next J
Next I
For I = 1 To n
For J = 1 To m
b(J, I) = a(I, J)
Next J
Next I
sss = ""
For I = 1 To m
For J = 1 To n
sss = sss & b(I, J)
qqq = qqq & a(I, J)
Next J
sss = sss & Chr(13)
qqq = qqq & Chr(13)
Next I
Selection.TypeText sss
Selection.TypeText qqq
MsgBox sss
MsgBox qqq
qwe = Application.Mdeterm(qqq)
Selection.TypeText qwe
MsgBox qwe
End Function
Offline
#3 08.04.11 19:50
Re: VBA. Подскажите пожалуйста в чем ошибка
1)
Jaguar написал(а):
a - это исходная матрица, b - транспонированная... чей определитель тебе надо посчитать?
При транспонировании определитель матрицы не меняется.
2) Определитель существует только для квадратной матрицы
3) что ты планируешь принять в качестве аргумента и вернуть из функции?
4)
Код::
Private Sub CommandButton2_Click()
'Private Function Det(qqq As variant) As Double
Dim a() As Double
Dim b() As Double
n = Val(InputBox("Size of matrix"))
ReDim a(1 To n, 1 To n)
ReDim b(1 To n, 1 To n)
For I = 1 To n
For J = 1 To n
a(I, J) = InputBox(I & J) & Chr(9)
b(J, I) = a(I, J)
Next J
Next I
sss = ""
For I = 1 To n
For J = 1 To n
sss = sss & b(I, J) & " "
qqq = qqq & a(I, J) & " "
Next J
sss = sss & Chr(13)
qqq = qqq & Chr(13)
Next I
MsgBox "Matrix A" & vbCrLf & qqq
MsgBox "Matrix B" & vbCrLf & sss
qwe = Application.MDeterm(a)
MsgBox "d = " & qwe
'Det=qwe
'End Function
End Sub5) Форматируйте код, блеать. Хоть немного. Ну и, видимо
Код::
пользовать религия запрещает?
Исправлено Revenger (08.04.11 20:43)
Offline
#6 09.04.11 01:18
Re: VBA. Подскажите пожалуйста в чем ошибка
MariaPyla написал(а):
Он выдает ошибку на первую строчку
Ну так блин, создай кнопку с именем CommandButton2. Либо код функции воткни в нужное место.
MariaPyla написал(а):
и на функцию Mdeterm(((
Какую ошибку? Телепаты в отпуске
З.Ы. вопрос на засыпку - зачем тебе VBA?
Исправлено Revenger (09.04.11 01:19)
Offline

