powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / 3-х мерный массив, преобразование в 2-мерный.
5 сообщений из 5, страница 1 из 1
3-х мерный массив, преобразование в 2-мерный.
    #33137304
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
3-х мерный массив, преобразование в 2-мерный.
    #33137423
arseny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дебагером в таких случаях хорошо пользоваться :)
...
Рейтинг: 0 / 0
3-х мерный массив, преобразование в 2-мерный.
    #33137466
MLeon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Будемте до конца откровенны! Массив - множество однотипных величин, в т.ч. и с точки зрения их смысла. Для поиска нужной величины используются индексы A(i,j,k). У Вас имеется структура из трех разных величин и имеется одномерный массив этих структур, просто во втором элементе этого массива одно из полей структуры равно 0. Попробуйте посмотреть на это с такой точки зрения.
...
Рейтинг: 0 / 0
3-х мерный массив, преобразование в 2-мерный.
    #33137563
Фотография nibbles
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настенька, Вам поможет предварительная сортировка массива cube по двум векторам. Только после этого возможна правильная группировка с суммированием (если ошибаюсь, поправьте, но кажется "GROUP BY" в SQL действует по тому же принципу - сначала сортировка).
...
Рейтинг: 0 / 0
3-х мерный массив, преобразование в 2-мерный.
    #33137750
Фотография _bob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MLeonБудемте до конца откровенны! Массив - множество однотипных величин, в т.ч. и с точки зрения их смысла. Для поиска нужной величины используются индексы A(i,j,k). У Вас имеется структура из трех разных величин и имеется одномерный массив этих структур, просто во втором элементе этого массива одно из полей структуры равно 0. Попробуйте посмотреть на это с такой точки зрения.

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


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