Показать сообщение отдельно
Старый 29.04.2004, 19:11     # 19
Ghost
::VIP::
Звезда первого сезона
Молчун-2004
 
Аватар для Ghost
 
Регистрация: 24.08.2002
Сообщения: 1 575

Ghost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех Гуру
А что третью? В моем понимании, вектор - одномерный массив (например, 1::2::3), а преобразовать его надо в списочек: 1->2->3. Это же стандартный алгоритм создания списка с головы (если просматривать массив с первого элемента) или с хвоста (если просматривать массив с конца), который рассказывается в первую очередь при изучении темы "Динамические структуры данных: связные списки". Я это и сам студентам рассказываю. Или я, может, задания не понял?...

По поводу решения без модуля: это действительно только для 16-битных чисел, просто я забыл это указать. Просто как-то раз возникла задача, написать такую прогу. Сперва написал с модулями, а мне говорят, мол, там все равно есть ветвление, хоть его и не видно - при вычислении модуля. Поэтому и придумал такой вот способ, хотя и к нему можно придраться - к сдвигу и xor'у... сказать, дескать, сдвиг на n бит - цикл, исключающее 'или' (т.е. xor) - ветвление.

Кстати, если я не ошибся в своем предположении насчет третьей задачи абзацем выше, то вот код:
Код:
uses
  crt;
type
  List = ^ListItem;
  ListItem = record
    info: integer;
    next: List;
  end;
const
  n = 10;
var
  a:    array [1..n] of integer;
  i:    integer;
  l, p: List;
begin
  clrscr;
  randomize;
  writeln ('vector:');
  for i := 1 to n do begin
    a[i] := random(100);
    write (a[i]:4);
  end;
  writeln;
  l := nil;
  for i := n downto 1 do begin
    new (p);
    p^.info := a[i];
    p^.next := l;
    l := p;
  end;
  writeln('list:');
  p := l;
  while p <> nil do begin
    write (p^.info:4);
    p := p^.next;
  end;
  writeln;
  readkey;
end.
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы!

Последний раз редактировалось Ghost; 29.04.2004 в 19:26. Причина: Склероз. Удивляюсь, как я не забыл родиться...
Ghost вне форума