Страница: 1 |
|
Вопрос: Как передать функции двумерный массив?
|
Добавлено: 15.07.03 11:51
|
|
Автор вопроса: Chill | ICQ: 554200
|
Как реальзовать сабж??? С одномерным все просо и понятно, а как передавать многомерный (мне нужен двухмерный) массив в функцию? Причем размер массива заранее не известен. Плз. помогите, очень нада, трабла на работе....
Ответить
|
Номер ответа: 1 Автор ответа: Snake
ICQ: 302130238
Вопросов: 16 Ответов: 39
|
Профиль | | #1
|
Добавлено: 15.07.03 14:35
|
Если размерность зараннее не известна, то ты Redim шспользуешь гдето? Если так то вот... работает Private Sub Command1_Click() Dim matrix As Variant ReDim matrix(3, 4) matrix(0, 1) = 11 matrix(0, 2) = 12 matrix(1, 1) = 21 matrix(1, 2) = 22 Call farr(matrix) matrix = fmatrix(matrix) End Sub Public Sub farr(matrix) matrix(0, 0) = 10 + matrix(0, 1) End Sub Public Function fmatrix(matrix) matrix(0, 0) = matrix(0, 0) + matrix(0, 1) * 5 fmatrix = matrix End Function
Ответить
|
Номер ответа: 3 Автор ответа: USA
Вопросов: 1 Ответов: 184
|
Профиль | | #3
|
Добавлено: 16.07.03 01:17
|
Передавай ссылку типа Variant на массив типа Variant. В примере можно добавлять сколько угодно уровней в массив. Public Sub Sample() Dim v As Variant FillArray v FillArray v(0) FillArray v(0)(0) End Sub Private Sub FillArray(ByRef Arg As Variant) Dim a(1) As Variant Static i As Integer a(0) = "Строка " & CStr(i) i = i + 1 a(1) = "Строка " & CStr(i) i = i + 1 Arg = a End Sub Может моможет.
Ответить
|
Номер ответа: 4 Автор ответа: S_Serg
Вопросов: 9 Ответов: 25
|
Профиль | | #4
|
Добавлено: 16.07.03 02:59
|
Просто описываешь параметр подпрограммы, которая обрабатывает массив, как динамический массив: private sub main() dim m() as integer redim m(0 to 9, 0 to 9) call fillMatr(m) end sub private sub fillMatr(m() as integer) dim i as integer, j as integer for i =0 to 9 for j =0 to 9 m(i, j) =0 next j next i end sub
Ответить
|
Страница: 1 |
Поиск по форуму