Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ операции над разреженными векторами

Автор: DeLL 1.06.2006 1:45

Пмогите пожалуйста. Никак не получается реализовать в виде списков внешнее произведение векторов:
(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 1.06.2006 1:52

Цитата
Никак не получается
, значит, попытки были? Так покажи, чего ты пытался сделать. В частности, интересует заполнение списков, а то потом начнешь говорить, что наше решение "не работает". Знаем уже, было неоднократно...

Автор: DeLL 1.06.2006 2:14

"Никак не получается" - значит, что я никак не могу придумать, как это сделать со списками.

Цитата
В частности, интересует заполнение списков

я не очень понял, что ты имеешь в виду, но списки вводятся так:
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 1.06.2006 3:16

Произведение
(a1, a2, a3, a4, a5) X (b1, b2, b3, b4, b5)
полностью распиши (БЕЗ многоточий. Я думаю, тебя не устроит, если я в программе на самом интересном для тебя месте поставлю <...>)?

Автор: cinic 1.06.2006 3:29

(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 1.06.2006 3:36

Тогда - вот так:

{ Ввод списков 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 1.06.2006 3:41

volvo, спасибо тебе огромное.