Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / 3-х мерный массив, преобразование в 2-мерный. / 5 сообщений из 5, страница 1 из 1
28.06.2005, 06:25:52
    #33137304
Настенька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
3-х мерный массив, преобразование в 2-мерный.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
Есть  3 -х мерный массив, три оси ( 1  - кол-во записей,  2  - кол-во столбцов,  3  - кол-во месяцев), буквенно (i,j,k).
Результаты его наполнения:
 1  месяц
КС        12 
ПТЭС      10 
УЭС       30 

 2  месяц
ПТЭС      20 
УЭС        6      

т.е. во  2  месяце КС нет. далее делаю из него двумерный.
код такой: (cube -  3 -мерный массив)

ReDim locarr( 1  To  20 ,  1  To  4 )                  '2-мерный массив
    For k = DTP1.Month To DTP2.Month           'месяцы
        For i =  1  To  20                         'количество записей
            For j =  1  To  4                      'количество столбцов
                If j >  1  Then                  'все остальные столбцы
                    locarr(i, j) = locarr(i, j) + cube(i, j, k)
                Else                           'если название предприятия
                    locarr(i, j) = cube(i, j, k)
                End If
            Next j
        Next i
    Next k
Erase cube

В итоге получается результат:
ПТЭС      32 
УЭС       16 
          30 .

т.е. он складывает все по-порядку, не учитывая, что складывать надо только одинаковые по названию предприятия. т.е. результат 
должен быть таким:
КС        12 
ПТЭС      30 
УЭС       36 .
Подскажите, как это сделать?
...
Рейтинг: 0 / 0
28.06.2005, 09:33:24
    #33137423
arseny
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
3-х мерный массив, преобразование в 2-мерный.
Дебагером в таких случаях хорошо пользоваться :)
...
Рейтинг: 0 / 0
28.06.2005, 09:53:10
    #33137466
MLeon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
3-х мерный массив, преобразование в 2-мерный.
Будемте до конца откровенны! Массив - множество однотипных величин, в т.ч. и с точки зрения их смысла. Для поиска нужной величины используются индексы A(i,j,k). У Вас имеется структура из трех разных величин и имеется одномерный массив этих структур, просто во втором элементе этого массива одно из полей структуры равно 0. Попробуйте посмотреть на это с такой точки зрения.
...
Рейтинг: 0 / 0
28.06.2005, 10:38:34
    #33137563
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
3-х мерный массив, преобразование в 2-мерный.
Настенька, Вам поможет предварительная сортировка массива cube по двум векторам. Только после этого возможна правильная группировка с суммированием (если ошибаюсь, поправьте, но кажется "GROUP BY" в SQL действует по тому же принципу - сначала сортировка).
...
Рейтинг: 0 / 0
28.06.2005, 11:36:00
    #33137750
_bob
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
3-х мерный массив, преобразование в 2-мерный.
MLeonБудемте до конца откровенны! Массив - множество однотипных величин, в т.ч. и с точки зрения их смысла. Для поиска нужной величины используются индексы A(i,j,k). У Вас имеется структура из трех разных величин и имеется одномерный массив этих структур, просто во втором элементе этого массива одно из полей структуры равно 0. Попробуйте посмотреть на это с такой точки зрения.

согласен, для приведенной задачи достаточно одномерного массива со структурой или двумерного (2,n)
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / 3-х мерный массив, преобразование в 2-мерный. / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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