|
0 / 0 / 0
Регистрация: 09.06.2014
Сообщений: 17
|
||||||
Могут ли быть взамосвязаны массивы?15.05.2017, 17:49. Показов 818. Ответов 15
Метки нет (Все метки)
Добрый день!
В программе существуют 3 массива; items - основной массив элементов; item - вспомогательный массив (для выделенных элементов и действия над ними); itemsCopied - массив скопированных элементов. Массив item заполняется из items выделенными элементами (построчно заполняется). Массив itemCopied заполняется из массива item при нажатии кнопки «Копировать» (itemsCopied = item) и остается неизменным до следующего копирования. Все массивы объявлены без определенного типа данных, т.к. данные в них разных типов. Проблема заключается в следующем: При копировании элементов необходимо произвести пересчет координат элементов в подмассиве массива itemsCopied, по какой-то причине перерасчет также происходит и в подмассивах других массивов, хотя в коде явно указан только массив itemCopied.
С уважением Денис P.s. VB2010Express
0
|
||||||
| 15.05.2017, 17:49 | |
|
Ответы с готовыми решениями:
15
Ошибка ORA-01484: массивы могут быть привязаны только к PL/SQL командам "В поле может быть введено только одно слово, пробелы могут быть или не быть с начала слова и в конце" я учусь на высшке на программиста.. какие могут быть задачи на экзамене 1й курс .2й семестр!!.. должны быть классы!! |
|
0 / 0 / 0
Регистрация: 09.06.2014
Сообщений: 17
|
|
| 15.05.2017, 17:55 [ТС] | |
|
0
|
|
|
es geht mir gut
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
|
||
| 15.05.2017, 20:00 | ||
|
Теперь все изменения itemsCopied будут касаться и массива item.
0
|
||
|
0 / 0 / 0
Регистрация: 09.06.2014
Сообщений: 17
|
||||||
| 16.05.2017, 06:43 [ТС] | ||||||
|
Понятно. Получается item(0,3)(0,0)=items(0,3)(0,0) тоже является ссылкой на ячейку массива?
Заменил строку itemsCopied = item на
Подскажите как правильно копировать данные частично или полностью из массива в массив Массивы item, items, itemsCopied являются глобальными, элементы (n,2),(n,3) являются подмассивами ()(,)соответственно
0
|
||||||
|
es geht mir gut
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
|
||||
| 16.05.2017, 07:18 | ||||
![]() ''''''''''''''''''''' Вы, по-моему, что-то не так делаете. Зачем Вам двумерный массив двумерных массивов ? Добавлено через 10 минут
1
|
||||
|
0 / 0 / 0
Регистрация: 09.06.2014
Сообщений: 17
|
||||||
| 16.05.2017, 07:26 [ТС] | ||||||
|
Вот способ заполнения item из items (из этой области item(0,3)(0,0)=items(0,3)(0,0))
, а из этого массива заполняется itemCopiedПрограммка - это что-то типа небольшой САПР, здесь оперирую геометрическими фигурами у которых есть какие-то свои свойства и от 1 до n точек координат. Поэтому введены подмассивы (n,2)() - свойств, (n,3)(,) - координат И кстати попробовал уже itemsCopied = item.Clone один фиг
0
|
||||||
|
|
|
| 16.05.2017, 07:37 | |
|
+1. Ошибка скорее всего где-то в понимании выбранной вами же системы хранения структуры данных.
Без постановки задачи тяжело что-то посоветовать. Ну, как вариант, есть например, массив пользовательских типов, куда при необходимости воткнуть ещё один массив. Это более гибко, чем массив массивов. P.S. В VB.NET проще (а главное, понятнее) писать короче, что-то вроде n -= Xmin, чем такую длинную строку.
2
|
|
|
es geht mir gut
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
|
|
| 16.05.2017, 07:37 | |
|
0
|
|
|
193 / 191 / 31
Регистрация: 11.10.2016
Сообщений: 610
|
||
| 16.05.2017, 10:16 | ||
|
Добавлено через 5 минут а, вообще, можно было бы создать простой массив, где хранились бы только порядковые номера выделенных объектов.
0
|
||
|
0 / 0 / 0
Регистрация: 09.06.2014
Сообщений: 17
|
|
| 16.05.2017, 18:10 [ТС] | |
|
_shark Просто одним массивом мне никак не обойтись. Массив itemsCopie необходим при вставке скопированных элементов, они всегда следуют(отрисовываются) за курсором, поэтому необходимо произвести перерасчет координат в массиве уменьшив их на Xmin, Ymin тем самым сдвинув их к нулю. Массив item необходим для оперирования над выделенными фигурам(поворот, отражение, изменение свойств и пр.) и отрисовки модификаций на экране. Таким образом без данных массивов не добиться наглядности.
Функция CopyMemory может быть и решила бы проблему с itemsCopied, но еще есть item который заполняется из items и он ему не всегда равен. Я по CopyMemory не нашел чего-то внятного. Dragokas Все данные хранятся в одном массиве item с подмассивами, остальные вспомогательные. Для меня так удобней. По поводу сокращений при писанине я всегда стараюсь так делать, это здесь я расписал. ![]() Может я выложу свой "прожэкт", а вы гляните на него, вдруг средь моей писанины чего-нибудь да увидите?
0
|
|
|
es geht mir gut
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
|
|
| 16.05.2017, 21:58 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 09.06.2014
Сообщений: 17
|
|
| 17.05.2017, 06:18 [ТС] | |
|
Заранее спасибо!
0
|
|
|
es geht mir gut
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
|
|
| 17.05.2017, 10:33 | |
|
Черт ногу сломит
Понятно одно - копируя массив, содержащий массивы, вы тем самым также копируете ссылки на эти массивы , так что ничего удивительного нет, что все у Вас взаимосвязано. Слишком у Вас мудрено все сделано. Было бы гораздо проще и понятнее создать структуру (как писал Dragokas), или класс.
1
|
|
|
0 / 0 / 0
Регистрация: 09.06.2014
Сообщений: 17
|
|
| 17.05.2017, 10:57 [ТС] | |
|
Понятно. Я так и думал, что Вы упомяните ногу.
Насчет массивов так и есть. Я об этом как-то и не подумал. Попробую переделать.По поводу структур или классов я пробовал с ними разобраться, но что-то ничего не получалось до конца. Я не знаю как их применить к своему случаю, а потом еще сними оперировать. Не хватает у меня мозга на такие простые вещи. ![]() Спасибо, что Вы нашли время с помочь мне.
0
|
|
|
193 / 191 / 31
Регистрация: 11.10.2016
Сообщений: 610
|
||||||
| 18.05.2017, 11:31 | ||||||
|
diska, посмотрел ваш код. Вам, действительно, надо как-то упорядочить структуры данных. Если вам непонятны объекты и классы и вы не хотите с ними заморачиваться и вам ближе массивы, то попробуйте описать графический объект примерно таким образом:
1
|
||||||
|
0 / 0 / 0
Регистрация: 09.06.2014
Сообщений: 17
|
|
| 18.05.2017, 12:01 [ТС] | |
|
Добрый день _shark.
Вы предлагаете структуру? По крайней мере очень похоже. Попробую переписать.
0
|
|
| 18.05.2017, 12:01 | |
|
Помогаю со студенческими работами здесь
16
Могут ли на диске быть данные? Где могут быть ошибки? Могут ли события быть статическими какие могут быть последствия? Ключи, с которыми могут быть проблемы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит предопределенное значение перечислений.
Процедура. . .
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|