AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.10.2008, 15:34   #1  
chanchala is offline
chanchala
Участник
Аватар для chanchala
 
113 / 10 (1) +
Регистрация: 14.05.2008
Адрес: СПб
Цитата:
Сообщение от ZVV Посмотреть сообщение
НУ может я что-то недопонял, но если вы определяете массив как пишется в книжках и обращаетесь arr[y*N+x+1] (как в примере выше), то у вас уже забито, что размерность массива N*M. Если вы вдруг заходите чтоб этот массив стал (N+2)*(M+4), то вам придётся перестраивать весь массив. Или я не прав?

chanchala Вы это имели ввиду в вопросе?
Вы правильно поняли. К сожалению, N и M не только заранее не известны, но и могут меняться уже после того, как станут известны с последующим удалением соответствующих "строк" и "столбцов". Думала отмазаться чем-нибудь почти готовым, но, похоже не получится
__________________
AX 3.0, Build #9.3
Старый 30.10.2008, 15:38   #2  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от chanchala Посмотреть сообщение
Вы правильно поняли. К сожалению, N и M не только заранее не известны, но и могут меняться уже после того, как станут известны с последующим удалением соответствующих "строк" и "столбцов". Думала отмазаться чем-нибудь почти готовым, но, похоже не получится
Ну вот raz выложил отличную ссылку - там всё это уже оказывается проходили.
Можете почерпнуть многое оттуда....
__________________
Zhirenkov Vitaly
Старый 30.10.2008, 15:40   #3  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от chanchala Посмотреть сообщение
Вы правильно поняли. К сожалению, N и M не только заранее не известны, но и могут меняться уже после того, как станут известны с последующим удалением соответствующих "строк" и "столбцов". Думала отмазаться чем-нибудь почти готовым, но, похоже не получится
Кстати, один принципиальный момент:
если как вы говорите
Цитата:
но и могут меняться уже после того, как станут известны с последующим удалением соответствующих "строк" и "столбцов".
, т.е. если может быть только удаление, но не добавление, то вы вполне спокойно можете обойтись стандартным одномерным массивом, как указывалось выше!
Проблемы то возникнут только при добавлении, причём именно столбцов.
__________________
Zhirenkov Vitaly
Старый 31.10.2008, 17:07   #4  
Hyper is offline
Hyper
Участник
Соотечественники
 
163 / 29 (1) +++
Регистрация: 09.10.2003
Цитата:
Сообщение от ZVV Посмотреть сообщение
Кстати, один принципиальный момент:
если как вы говорите , т.е. если может быть только удаление, но не добавление, то вы вполне спокойно можете обойтись стандартным одномерным массивом, как указывалось выше!
Проблемы то возникнут только при добавлении, причём именно столбцов.
Может я не до конца понял идею, но при удалении проблемы также возникнут. Скажем, если в массиве 10x10 убрать все четные столбцы и нечетные строки, размерность массива должна стать 5x5. Каким образом корректно доступаться к данным без перестраивания массива?
Старый 31.10.2008, 17:18   #5  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от Hyper Посмотреть сообщение
Может я не до конца понял идею, но при удалении проблемы также возникнут. Скажем, если в массиве 10x10 убрать все четные столбцы и нечетные строки, размерность массива должна стать 5x5. Каким образом корректно доступаться к данным без перестраивания массива?
Подразумевалось, что сам массив останется того же самого размера, просто обращаться к нему по меньшему числу "индексов", если можно так выразиться.

Если строки или столбцы будут удаляться только с конца, то проблем вообще никаких. Если же, как в вашем варианте, из середины, тогда некоторые проблемы конечно будут, а именно придётся как-то дополнительно хранить "живые" индексы (ну или "неживые"). Но это тоже несложно реализуемый технический вопрос.

Вот что я имел ввиду...
__________________
Zhirenkov Vitaly
Старый 31.10.2008, 17:20   #6  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
т.е. в формуле
Цитата:
arr[y*N+x+1]
N - останется тем, что было определно в самом начале и менятся не будет, а диапазон индексов y & x будет каким-то образом "кастрирован".
__________________
Zhirenkov Vitaly
Старый 31.10.2008, 17:29   #7  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
С такими матричными задачками - надо в Excel, в клеточки! Ну или в Spreadsheet. И там удаляй - не хочу, добавляй - не хочу, транспонируй как хочется. Подумать не успеешь - как всё само перестроится.
Старый 31.10.2008, 17:42   #8  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от Gustav Посмотреть сообщение
С такими матричными задачками - надо в Excel, в клеточки! Ну или в Spreadsheet. И там удаляй - не хочу, добавляй - не хочу, транспонируй как хочется. Подумать не успеешь - как всё само перестроится.
Ага, тока жалко в исходной задаче
Цитата:
Сообщение от chanchala Посмотреть сообщение
... какими способами можно реализовать двумерный динамический массив на X++.
стоит явное ограничение. ))
__________________
Zhirenkov Vitaly
Старый 03.11.2008, 16:03   #9  
Hyper is offline
Hyper
Участник
Соотечественники
 
163 / 29 (1) +++
Регистрация: 09.10.2003
Цитата:
Сообщение от ZVV Посмотреть сообщение
некоторые проблемы конечно будут, а именно придётся как-то дополнительно хранить "живые" индексы (ну или "неживые"). Но это тоже несложно реализуемый технический вопрос.
В этом случае потеряется единственное преимущество использования стандартного одномерного массива - простота реализации.
В общем, использование одномерного массива для реализации двумерного динамического - априори неудачная идея .
Теги
array, массив

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вписать динамический отчет в страницу (DAX 4.0) Qaz Qwerty DAX: Программирование 2 17.07.2008 05:46
Передать из внешнего приложения массив в метод murad DAX: Программирование 3 21.06.2006 12:35
Как правильно удалить динамический массив контейнеров ?! woland666 DAX: Программирование 2 09.06.2005 12:44
Как вывести массив элементов в отчёт? Yuri Safronov DAX: Программирование 1 22.11.2002 17:14
Как в параметрах подпрограммы передать массив элементов. Yuri Safronov DAX: Программирование 3 14.10.2002 16:35

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 13:35.