Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal] Динамические структуры данных. Списки.


Автор: blackandwhite 15.11.2006, 21:04
Задача на тему: Динамические структуры данных. Списки.


С клавиатуры вводится последовательность вещественных чисел x1, x2, x3... xn n>2. Вывести по-следовательность, состоящую из элементов: x1*xn; x2*xn-1; x3*xn-2 ... xn*x1.

Если кто знает как сделать,напишите пожалуисто !!!

Автор: ruman 15.11.2006, 23:43
 smile  хмммм интересно !!!

Автор: volvo877 16.11.2006, 00:26
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


Если можно использовать двухсвязный - будет еще проще...

Автор: DEZZZZZ 18.12.2006, 16:12
Задачка на ту же тему

Последовательность вещественных чисел сохранить в динамическом списке. Поместить в стек все отрицательные числа, икслючив их из динамического списка.

если кто знает как решается - напшите плиззз

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)