![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Tribunal |
![]()
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 233 Пол: Женский Реальное имя: Dasha Репутация: ![]() ![]() ![]() |
допустим,если использовать самый простой способ хранения разреженных матриц-
хранение значений, номера строк и столбцов в трёх одномерных массивах... собственно,вопрос стоит в том,чтобы складывать и умножать две мптрицы,заданные таким образом. для сложения вроде процедуру придумала...только вот она считает сумму элементов тогда,когда индексы не совпадают... Код var i,j:integer; begin h:=1; for i:=1 to k do for j:=1 to c do begin if (ia[i]=ib[j]) and (ja[i]=jb[j]) then begin cn[h]:=an[i]+bn[j]; ic[h]:=ia[i]; jc[h]:=ja[i]; h:=h+1;end else begin cn[h]:=an[i]; ic[h]:=ia[i]; jc[h]:=ja[i]; h:=h+1; cn[h]:=bn[j]; ic[h]:=ib[j]; jc[h]:=jb[j]; h:=h+1;end; end; end; здесь k,c кол-во полученных элементов в матрицах а и b соответственно. для умножения не могу сообразить условие,по которому выполнялась бы эта операция... не могли бы вы помочь мне в этих вопросах? -------------------- irreparabilium felix olivio rerum
|
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
![]() Неужели нельзя давать "говорящие" имена переменным и процедурам? "A", "C", "K", "CN" ну не говорят они ничего постороннему человеку !!! Чего куда вводить? Ты бы лучше сделала процедуру, в которую поступает разреженная матрица в общем виде, а на выходе - в твоем... А так - извини, но тыкать по кнопкам в надежде, что делаешь это правильно, НЕ ЗНАЯ (хотя я просил тебя привести) исходных данных - это пускай кто-нибудь другой делает... P.S. Если это нужно тебе именно на Дельфи - я перенесу тему в соответствующий раздел... Эскизы прикрепленных изображений ![]() |
![]() ![]() |
![]() |
Текстовая версия | 12.07.2025 8:17 |