![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Tribunal |
![]()
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 233 Пол: Женский Реальное имя: Dasha Репутация: ![]() ![]() ![]() |
У меня появилась задача следующего содержания:
нужно вводить элементы разреженной матрицы и произвести рациональное хранение этих элементов... ну это я предполагаю можно сделать так: CIP: Индекс начала 1-ой строки в массивах PI и YE || Индекс начала 2-ой Строки || ... || Индекс начала N-ой Строки PI: Номер столбца || Номер столбца || Номер столбца || ... || Номер столбца || 0 YE: Значение || Значение || Значение || ... || Значение ИЛИ в массив JA записывать номера столцов,в которых находятся ненулевые эл-ты по порядку; в массив AN записывать собственно значения этих ненулевых значений; а в массив IA записывать номера , с которых начинается описание эл-тов в массивах JA и AN(<---вот это мне не очень понятно=/) но,честно говоря,вся проблема состоит в том,что я не очень представляю,как это должно выглядеть в делфи...в том числе и визуально-на форме=/ поэтому в этом состоит вся проблема...не очень понимаю,как начать далее с двумя такими матрицами нужно производить операции сложения и умножения,а так же производить вывод элемента при запросе в виде указания строки и столбца эл-та. большая просьба помочь=)с делфи пока на вы=( -------------------- irreparabilium felix olivio rerum
|
![]() ![]() |
Lapp |
![]()
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
ну это я предполагаю можно сделать так: CIP: Индекс начала 1-ой строки в массивах PI и YE || Индекс начала 2-ой Строки || ... || Индекс начала N-ой Строки PI: Номер столбца || Номер столбца || Номер столбца || ... || Номер столбца || 0 YE: Значение || Значение || Значение || ... || Значение ИЛИ в массив JA записывать номера столцов,в которых находятся ненулевые эл-ты по порядку; в массив AN записывать собственно значения этих ненулевых значений; а в массив IA записывать номера , с которых начинается описание эл-тов в массивах JA и AN(<---вот это мне не очень понятно=/) но,честно говоря,вся проблема состоит в том,что я не очень представляю,как это должно выглядеть в делфи...в том числе и визуально-на форме=/ поэтому в этом состоит вся проблема...не очень понимаю,как начать далее с двумя такими матрицами нужно производить операции сложения и умножения,а так же производить вывод элемента при запросе в виде указания строки и столбца эл-та. большая просьба помочь=)с делфи пока на вы=( Я честно пытался разобраться с твоими способами, но ни один не понял до конца. Предлагаю свой - простой и ясный (как мне кажется ![]() P - массив (из integer) координат позиций, где стоят отличные от нуля элементы (от слова Position). Устроен так: Номер столбца С1 (от слова column) номер строки (то есть элемента в этом столбце) R11 (от row) номер строки R12 номер строки R13 ........... Ноль (разделитель) Номер столбца C2 номер строки R21 номер строки R22 ........ Ноль Номер столбца номер строки номер строки ........ Ноль Ноль (в конце два нуля) Это можно записать проще в строчку: CRRRRR..R0CRR...R0CRR..R0C.........CRR..R00 И массив самих значений (того типа, который нужен): A(C1,R11) A(C1,R12) .... A(C2,R21) .... A(Cn,Rnm) Чтобы достать значение i,j , проходимся по Р, считая номер. Если C=i и R=j (в секции этого C) присутствует - вынимаем значение из А по номеру. Для ускорения доступа можно иметь маленький массив из позиций С в массиве Р (но это факультативно). Если тебе мой способ не понравился - скажи, попробую еще раз разобраться в твоих. Далее, тебе пока не нужно лезть в Дельфи и формы. Это потом приложишь. Пока сделай прогу на паскале, которая осуществляет сжатие матрицы и доступ к ней. Этот код потом вставишь в Дельфи. Все надо делать по очереди. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 14.07.2025 21:04 |