Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [VBA] Две матрицы


Автор: Jenny 26.4.2007, 05:25
Привет всем. Помогите пожалуйста с заданием, я не могу составить код: Даны две матрицы A(n,n); B(m,m). присвоить переменной В1 значение 1, если элементы матрицы А симметричны относительно главной диагонали, и значение 0 в противном случае. Значение переменной В определить аналогично для матрицы В.  smile 

Автор: Akina 26.4.2007, 08:36
ну и?

Код

A1=1
For i = 1 to n
   For j = i+1 to n
      if A(i,j)<>A(j,i) then A1=0
   Next j
Next i

Автор: Jenny 27.4.2007, 03:22
Спасибо за помощь. Это полностью код получается 

Код

Private Sub Matrica()
Dim A(), B() As Integer
Dim i, j, A1, B1 As Integer
'Работаем с матрицей А()
A1 = 1
For i = 1 To n
   For j = i + 1 To n
      If A(i, j) <> A(j, i) Then A1 = 0
   Next j
Next i
'Работаем с матрицей В()
B1 = 1
For i = 1 To n
   For j = i + 1 To n
      If B(i, j) <> B(j, i) Then B1 = 0
   Next j
Next i
Debug.Print "Значение переменной A1 = "; A1
Debug.Print "Значение переменной B1 = "; B1
End Sub

Правильно? smile 

Автор: Akina 27.4.2007, 09:00
Цитата(Jenny @  27.4.2007,  04:22 Найти цитируемый пост)
Правильно? 

Конечно нет... 
1) не определена переменная n (к тому же n для первого массива не обязано быть равно n для второго);
2) переменные i, j, A1, массив A() определены как Variant
3) размерность массивов и их содержимое, видимо, святым духом надует.

Автор: Jenny 27.4.2007, 10:57
Я начинаю вводить размерность и содержимое массива, сразу выскакивает ошибка. Я VB недавно стала изучать, поэтому еще мало в чем разбираюсь. Вот как я сделала
Код

Private Sub Matrica()
Dim A(1, 5) As Variant
Dim i, j, A1 As Variant
A1 = 1
For i = 1 To 5
   For j = i + 1 To 5
      If A(i, j) <> A(j, i) Then A1 = 0
   Next j
Next i
Debug.Print  A1
End Sub

По заданию, наверное надо вместо А1 писать В1 или нет?

Автор: Akina 27.4.2007, 11:02
Цитата(Jenny @  27.4.2007,  11:57 Найти цитируемый пост)
По заданию, наверное 

Задание или тобой неверно переписано, или содержит ошибку.

Цитата(Jenny @  27.4.2007,  11:57 Найти цитируемый пост)
Я начинаю вводить размерность и содержимое массива, сразу выскакивает ошибка.

не вижу, где ты его вводишь.

Автор: Jenny 27.4.2007, 11:38
наверное в задание ошибка, я проверила я переписала правильно. А размерность надо вводить с помощью InputBox? Или как?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)