Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / трехмерный динамический массив / 15 сообщений из 15, страница 1 из 1
29.05.2007, 20:01
    #34559371
Саня_OTIS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трехмерный динамический массив
Доброго времени суток! У меня проблема:

1 Не могу создать 3-хмерный динамический массив.
Dim А(, , ) As String' не работает.

2 Есть трёхмерный массив А(i,j,k), i-строка, j-столбец, k-слово (по буквам). Как слово в k склеить в строку? Проблема в том, что в А(1,2,k) слово из 3-х букв, а в А(2,2,k) слово из 5 букв и т.д.
т.е. как получить количесво повторений цикла для склейки слова (кол-во букв)?
...
Рейтинг: 0 / 0
30.05.2007, 01:52
    #34559735
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трехмерный динамический массив
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Dim r As Integer
Dim a() As String
Dim s As Integer, d As Integer, f As Integer
s =  4 
d =  5 
f =  44 

ReDim a(s, d, f)

a( 1 ,  2 ,  3 ) =  4 

A кнопку Ф1 выломали маньяки?

На счет слов в третьем измерении я вообще не понял.
...
Рейтинг: 0 / 0
30.05.2007, 08:29
    #34559872
Диса
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трехмерный динамический массив
Саня_OTISДоброго времени суток! У меня проблема:

1 Не могу создать 3-хмерный динамический массив.
Dim А(, , ) As String' не работает.

тут уже ответили

Саня_OTIS
2 Есть трёхмерный массив А(i,j,k), i-строка, j-столбец, k-слово (по буквам). Как слово в k склеить в строку? Проблема в том, что в А(1,2,k) слово из 3-х букв, а в А(2,2,k) слово из 5 букв и т.д.
т.е. как получить количесво повторений цикла для склейки слова (кол-во букв)?

тут сообразил что, но где такое задание дали? массив штука статичная: как можно в одном измерении сделать 3 элемента, а в другом 5, а в третьем все 10.

хотя муторно это реализовать возможно, хотя ...дурь всё же
...
Рейтинг: 0 / 0
30.05.2007, 16:13
    #34561794
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трехмерный динамический массив
Как паллиатив, поставь третье измерение заранее достаточно большим:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Option Explicit

Option Base  0 

Private mstrArr( 0 ,  1 ,  4 ) As String

Private Sub Command1_Click()
    MsgBox mstrArr( 0 ,  0 ,  0 ) & mstrArr( 0 ,  0 ,  1 ) & mstrArr( 0 ,  0 ,  2 )
    MsgBox mstrArr( 0 ,  1 ,  0 ) & mstrArr( 0 ,  1 ,  1 ) & mstrArr( 0 ,  1 ,  2 ) & mstrArr( 0 ,  1 ,  3 ) & mstrArr( 0 ,  1 ,  4 )
End Sub

Private Sub Form_Activate()
    mstrArr( 0 ,  0 ,  0 ) = "A"
    mstrArr( 0 ,  0 ,  1 ) = "B"
    mstrArr( 0 ,  0 ,  2 ) = "C"
    
    mstrArr( 0 ,  1 ,  0 ) = "A"
    mstrArr( 0 ,  1 ,  1 ) = "B"
    mstrArr( 0 ,  1 ,  2 ) = "C"
    mstrArr( 0 ,  1 ,  3 ) = "D"
    mstrArr( 0 ,  1 ,  4 ) = "E"

End Sub
...
Рейтинг: 0 / 0
30.05.2007, 16:25
    #34561866
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трехмерный динамический массив
массив штука статичная: как можно в одном измерении сделать 3 элемента, а в другом 5, а в третьем все 10.Что за чушь?
ReDim a(3, 5, 10)
авторкак получить количесво повторений цикла для склейки слова (кол-во букв)?
UBound(a, 3)
Второй параметр - измерение, границу которого нужно определить.
...
Рейтинг: 0 / 0
30.05.2007, 17:15
    #34562104
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трехмерный динамический массив
2 Диса
Прошу воздержаться от непроверенных советов, этим ты лишь создаешь путаницу.

2 Автор
Если проблема в динамичности последнего измерения то его верхнюю границу можно увеличить используя
Код: plaintext
Redim Preserve 
чтобы не потярять данные.


Magnus
...
Рейтинг: 0 / 0
01.06.2007, 11:25
    #34567046
Диса
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трехмерный динамический массив
Antonariy массив штука статичная: как можно в одном измерении сделать 3 элемента, а в другом 5, а в третьем все 10.Что за чушь?
ReDim a(3, 5, 10)
авторкак получить количесво повторений цикла для склейки слова (кол-во букв)?
UBound(a, 3)
Второй параметр - измерение, границу которого нужно определить.

я имел в виду, по одному измерению сделать 3, в таком же измерении для другого индекса сделать 5 и по такому же измерению для третьего индекса сделать 10!!!!!!!!!!
типа такого, где последняя цифра - номер поседнего индекса по третьему измерению
a(0,0,3)
a(0,1,5)
a(0,2,10)
...
Рейтинг: 0 / 0
01.06.2007, 11:27
    #34567054
Диса
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трехмерный динамический массив
Magnus232 Диса
Прошу воздержаться от непроверенных советов, этим ты лишь создаешь путаницу.

2 Автор
Если проблема в динамичности последнего измерения то его верхнюю границу можно увеличить используя
Код: plaintext
Redim Preserve 
чтобы не потярять данные.


Magnus

И в чём я путаю?

Тогда предложите вариант, думаю он будет столь прост, хотя дайте удивиться!!!
...
Рейтинг: 0 / 0
02.06.2007, 04:30
    #34569610
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трехмерный динамический массив
ДисаИ в чём я путаю?

Я в первом посте показал как. Массив обьявляется безразмерным и уже в ран-тайме динамически назначаются его измерения и пределы. Именно в это был вопрос автора.
Именно фраза "массив штука статичная" и есть чушь - сиречь непроверенный совет.
...
Рейтинг: 0 / 0
02.06.2007, 10:17
    #34569659
Диса
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трехмерный динамический массив
Magnus23 ДисаИ в чём я путаю?

Я в первом посте показал как. Массив обьявляется безразмерным и уже в ран-тайме динамически назначаются его измерения и пределы. Именно в это был вопрос автора.
Именно фраза "массив штука статичная" и есть чушь - сиречь непроверенный совет.


Товарищь!!!! Вы себя слишком умным считаете!!!!!!!! А это далеко не так!!!!!!!!!!!!!!!!!!
Модератор: Тебе и этот ник забанить за грубости?

Что массив динамический и размерность меняется в ходе выполнения приложения это мне было ясно изначально. Вот тока вы видать не поняли чего-то. Даже динамиеский массив после его определения, пусть и на время, становиться штукой статичной, и для одного измерения но разных элементов никак не может быть так, что бы для а(0,0,...) третье измерение было в 3 элемента, для
а(0,1,...) -в 5 элементов, а для а(0,2,...) -в 10 элементов, таких кренделей даже VB не позволяет
...
Рейтинг: 0 / 0
02.06.2007, 15:25
    #34569802
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трехмерный динамический массив
Автору нужно было динамически изменить последнее измерение, об этом говорит наличие переменной "К" и для решения его проблемы необходимо сделать последнее измерение достаточно большим.


Magnus
...
Рейтинг: 0 / 0
06.06.2007, 14:30
    #34577830
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трехмерный динамический массив
если вопрос актуален
то можно сделать так

определять динамический массив одномерный каждый раз сколько нужно
и его добавлять к нужным элементам в двухмерном массиве
простым присвоением
...
Рейтинг: 0 / 0
06.06.2007, 16:54
    #34578483
RUSYA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трехмерный динамический массив
Нефига не получится, вб позволяет динамически изменить размерность только верхней границы массива!

Dim a() As Integer
ReDim Preserve a(1, 1, 1)

a(0, 0, 0) = 1
ReDim Preserve a(1, 1, 2 ) ' так можно
'ReDim Preserve a(1, 2 , 1) ' а так низя!

Проще всего объявлять новый массив нужной размерности, и написать свою функцию копирования из старого массива в новый...
...
Рейтинг: 0 / 0
06.06.2007, 17:23
    #34578635
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трехмерный динамический массив
я очень сильно извеняюсь но это у меня работает
то есть трехмерный динамический массив
нулевой элемент не в счёт


Dim Arr()
Dim BArr()

ReDim Preserve BArr(2)
ReDim Preserve Arr(2, 2)

Arr(1, 1) = BArr
Arr(1, 2) = BArr
Arr(2, 1) = BArr
Arr(2, 2) = BArr
...
Рейтинг: 0 / 0
06.06.2007, 17:26
    #34578650
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трехмерный динамический массив
забыл добавить
это SafeArray все массивы Variant
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / трехмерный динамический массив / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]