Помощь - Поиск - Пользователи - Календарь
Полная версия: операции над разреженными векторами
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
DeLL
Пмогите пожалуйста. Никак не получается реализовать в виде списков внешнее произведение векторов:
(c1c2c3c4...cn2)=(a1a2a3a4..an)(b1b2b3b4..bn)=(a1b1,a1b2,a1b3,a1b4,..anbn-1,anbn)

тип список(sp) описан так:
type
sp=^s;
s=record
info:integer;
link:sp;
end;
volvo
Цитата
Никак не получается
, значит, попытки были? Так покажи, чего ты пытался сделать. В частности, интересует заполнение списков, а то потом начнешь говорить, что наше решение "не работает". Знаем уже, было неоднократно...
DeLL
"Никак не получается" - значит, что я никак не могу придумать, как это сделать со списками.
Цитата
В частности, интересует заполнение списков

я не очень понял, что ты имеешь в виду, но списки вводятся так:
write('vvedite dlinnu vectorov:'); read(l);
write('vvedite elementi vectora a:');
a:=nil;
for i:=1 to l do begin
New(q);
q^.link:=a;
read(s);
q^.info:=s;
a:=q;
end;

точно так-же вводится и вектор b
volvo
Произведение
(a1, a2, a3, a4, a5) X (b1, b2, b3, b4, b5)
полностью распиши (БЕЗ многоточий. Я думаю, тебя не устроит, если я в программе на самом интересном для тебя месте поставлю <...>)?
cinic
(a1, a2, a3, a4, a5) X (b1, b2, b3, b4, b5) =(a1b1, a1b2, a1b3, a1b4, a1b5, a2b1, a2b2, a2b3, a2b3, a2b4, a2b5, a3b1, a3b2, a3b3, a3b4, a3b5, a4b1, a4b2, a4b3, a4b4, a4b5, a5b1, a5b2, a5b3, a5b4, a5b5)
volvo
Тогда - вот так:
{ Ввод списков A, B }
c := nil;
q := a;
while q <> nil do begin

r := b;
while r <> nil do begin
New(T);
T^.link := c;
T^.info := q^.info * r^.info;
c := T;

r := r^.link;
end;
q := q^.link;
end;
{ Вывод списка C }
DeLL
volvo, спасибо тебе огромное.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.