blackandwhite, если список односвязный, то вот так:
| Код | type pitem = ^titem; titem = record X: real; next: pitem; end;
var p, pp, head, tail: pitem; i, j, n: integer;
x: real;
begin
write('n = '); readln(n); head := nil; tail := nil;
for i := 1 to n do begin
write('X[', i, '] = '); readln(X); new(p); p^.X := X; p^.next := nil;
if head = nil then head := p else tail^.next := p; tail := p
end;
i := 1; p := head; while p <> nil do begin
j := 0; pp := head; while j < n - i do begin inc(j); pp := pp^.next; end; writeln('X[',i,'] * X[',n-i+1,'] = ', (p^.x * pp^.x):10:5);
inc(i); p := p^.next;
end;
end. |
Результат прогона:
| Код | n = 4 X[1] = 1 X[2] = 2 X[3] = 3 X[4] = 4 X[1] * X[4] = 4.00000 X[2] * X[3] = 6.00000 X[3] * X[2] = 6.00000 X[4] * X[1] = 4.00000 |
Если можно использовать двухсвязный - будет еще проще... |