|
3-х мерный массив
|
|||
---|---|---|---|
#18+
Добрый день, подскажите как заполнить 3-х мерный массив циклом? Необходимо чтобы массив заполнился следующим образом, размерность a(69,4,4). a(0,0,0)=6, a(0,0,1)=7, a(0,0,2)=8, a(0,0,3)=9,a(0,0,4)=10 a(1,0,0)=13, a(1,0,1)=14,a(1,0,2)=15,a(1,0,3)=16,a(1,0,4)=17. a(69,4,4) должен равняться 486. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2017, 14:24 |
|
3-х мерный массив
|
|||
---|---|---|---|
#18+
Не раскрыт принцип заполнения второй размерности ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2017, 14:41 |
|
3-х мерный массив
|
|||
---|---|---|---|
#18+
Вообще, в чем проблема выявить зависимость значения от индекса каждого измерения, записать его формулой a* i + b * j + с * k и записать внутри трех вложенных циклов? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2017, 14:42 |
|
3-х мерный массив
|
|||
---|---|---|---|
#18+
guest0505a(69,4,4) должен равняться 486.Уверен? Вот кабы 495, то получилось бы красиво: Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2017, 14:46 |
|
3-х мерный массив
|
|||
---|---|---|---|
#18+
Извиняюсь напутал немного с размерностью когда начал на бумаге заполнять массив. а(0,0,0)=6 a(0,1,0)=7 a(0,2,0)=8, a(0,3,0)=9, a(0,4,0)=10 a(1,0,0)=13, a(1,1,0)=14, a(1,2,0)=15, a(1,3,0)=16, a(1,4,0)=17. С последним элементом массива не напутал 486. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2017, 15:17 |
|
3-х мерный массив
|
|||
---|---|---|---|
#18+
Пока что я делаю вот так Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
Последний элемент у меня получился 493 arrAdr-функция Код: vbnet 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2017, 15:23 |
|
3-х мерный массив
|
|||
---|---|---|---|
#18+
непонятно, зачем вообще нужен массив, если его элемент описывается линейным уравнением от индекса ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2017, 15:46 |
|
3-х мерный массив
|
|||
---|---|---|---|
#18+
Shocker.Pro, другого решения я просто не знаю. Задам глупый вопрос, но что это за уравнения от индекса? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2017, 07:03 |
|
3-х мерный массив
|
|||
---|---|---|---|
#18+
Подскажите пожалуйста более рациональный подход к задаче. Необходимо чтобы пользователь мог отображать/скрывать столбцы. В строку расположены 68 месяцев, в каждом месяце 5 столбцов которые нужно отображать/скрывать (соответственно 5 чеков). Я пошел через матрицы, номер месяца это номер строки, чек это номер столбца матрицы, 3 размерность матрицы это адрес столбца. Пока форма существует вроде работает, при закрытии все скрытые столбцы отображаются. Как то можно по другому сделать? Я видимо через пятую точку делаю сейчас. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2017, 08:20 |
|
3-х мерный массив
|
|||
---|---|---|---|
#18+
Я пока вообще не понимаю принцип заполнения массива. В первом примере вы не привели пример заполнения второй размерности, во втором примере - третьей. Если нужно заполнять только две размерности, то для чего три цикла? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2017, 08:34 |
|
3-х мерный массив
|
|||
---|---|---|---|
#18+
Просто я не смог заполнить массив как мне нужно, поэтому сделал "массив-прокладку" с адресами столбцов. Заполняется все правильно. Столкнулся с такой проблемой Пока форма существует вроде работает, при закрытии все скрытые столбцы отображаются. Как то можно по другому сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2017, 09:13 |
|
3-х мерный массив
|
|||
---|---|---|---|
#18+
Еще раз - есть два вопроса: 1) массив, его заполнение и необходимость 2) скрытие каких-то столбцов Я говорю исключительно о первом вопросе - если элемент массива в любой момент можно вычислить на основании его индексов по простейшей формуле, то зачем этот массив вообще нужен, вместо него можно просто использовать функцию. Пример формулы в общем виде я приводил выше, но так как принцип заполнения массива полностью (по трем измерениям) до сих пор неясен, то я не могу написать ее с конкретными константами. Скорее всего, там еще добавится смещение Код: plaintext
По второму вопросу невозможно ничего сказать - ваш экран нам не видно, где у вас там эти столбцы, в экселе, в ворде, в массиве или еще где - вы не сочли нужным сообщить. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2017, 11:03 |
|
3-х мерный массив
|
|||
---|---|---|---|
#18+
Скорее всего, у ТС таблица на листе Excel. Трехмерная, развернутая в плоскую. И в массив он загоняет номера столбцов. И ему наверное требуется столбцы скрывать в зависимости от условий, вот он и берет нужные номера прямо из массива блоками, чтобы циклом скрытие/отображение делать... В общем, сделаны все ошибки, начиная от момента проектирования хранилища данных и заканчивая смешиванием в одной форме операций и процессов ввода, хранения и отображения. По теме: если нужно рассчитать начальный номер столбца "блока месяца" (внутри же блока это будут пять последовательных чисел), то формула будет: col(i) = 7*i + 6 Т.е. (нумерация месяцев идет от 1 до 68),если нам нужен "пятый месяц" - то получаем ответ col = 41, соответственно это столбцы 41,42,43,44,45 Никаких "массивов" для таких расчетов просто не требуется, о чем и пытался втолковать Shocker.Pro. В качестве примера: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Вызов функции с параметром - номером месяца - скрывает/отображает блок колонок этого месяца... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2017, 12:45 |
|
|
start [/forum/topic.php?fid=60&fpage=15&tid=2155250]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 130ms |
0 / 0 |