Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > список


Автор: addrol 23.6.2008, 20:39
Доброго времени суток
Не мог ли кто-нибуть написать код создания и заполнения списка 10-ю рандомными элментами с коментариями (по возможности подробными) )
Заранее благодарен

Автор: ILyAHA 24.6.2008, 11:14
Цитата

написать код создания и заполнения списка


а если по-подробнее написать... какой список?

Автор: addrol 24.6.2008, 14:09
однонаправленный

Автор: VanHelsing 24.6.2008, 19:07
Вообще частным случаем однородных линейных списков является - массив. Так что пример по массивам.
Код

program r1;
uses crt;
var
  a:array[1..10] of word;
  i:byte;
begin
  clrscr;
  randomize;
  for i:=1 to 10 do
  begin
    a[i]:=random(100);
    write(a[i],' ');
  end;
  readln;
end.

randomize - устанавливает генератор случайных чисел в его последовательность из 232 псевдослучайных чисел.
random - генерирует случайные числа. В данном примере числа генерируются в диапазоне от 1 до 100.

Автор: deswars 25.6.2008, 13:52
В динамической или статической памяти?

Автор: deswars 25.6.2008, 14:08
Динамический можно сделать такhttp://forum.vingrad.ru/html/emoticons/pack/wizard.gif:
Код

uses crt;
type
 pstr=^str;
 str=record
   a:integer;
   next:str;
  end;
var
  p,p1:pstr;
  i:byte;
begin
  clrscr;
  randomize;
  for i:=1 to 10 do
   begin
    new(p1);
    p1^.next:=p;
    p:=p1;
    p^.a:=random(100);
    write(p^.a,' ');
   end;
  readln;
end.

Автор: addrol 25.6.2008, 14:23
Цитата(deswars @ 25.6.2008,  14:08)
Динамический можно сделать такhttp://forum.vingrad.ru/html/emoticons/pack/wizard.gif:
Код

uses crt;
type
 pstr=^str;
 str=record
   a:integer;
   next:str;
  end;
var
  p,p1:pstr;
  i:byte;
begin
  clrscr;
  randomize;
  for i:=1 to 10 do
   begin
    new(p1);
    p1.next:=p;
    p:=p1;
    p.a:=random(100);
    write(p.a,' ');
   end;
  readln;
end.

Код

    p1.next:=p;
    p:=p1


можете объяснить эту строчку

Автор: Dobermann 26.6.2008, 02:11
Цитата(addrol @  25.6.2008,  14:23 Найти цитируемый пост)

Код

    p1.next:=p;
    p:=p1

можете объяснить эту строчку

Т.к. список организуется по правилу: "первый вошел - первый вышел", то следовательно следующий входящий элемент будет последним - вот ему и передается указатель элемента, но нужно еще сохранить самый первый элемент вершиной списка - это указывается во второй строке, иначе получится СТЕК.
Только я не пойму откуда он взял этот пример?!?!?!
Обычно к указателю на элемент записи обращаются через символ ^
Код

    p1^.next:=p;
    p:=p1

Автор: addrol 26.6.2008, 03:12
спасибо разобрался  smile 

Автор: deswars 26.6.2008, 11:39
Извините за ошибки(писал с головы, давно не использовал ссылки). Теперь он более правильный.

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