Как избавиться от рандома

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Как избавиться от рандома

Re: Как избавиться от рандома

somewhere » 27 дек 2015, 10:51

Ну значит функцию какую нибудь заместо Random

Re: Как избавиться от рандома

Otclik » 27 дек 2015, 06:24

Как убрать этот рандом??

Вот весь код

Код: Выделить всё

type
  tList = class
    Data : Integer;
    Pred, Next : tList;
    
    constructor (N : Integer);
    begin
      Data := N;
      Pred := nil; Next := nil;
    end;
  end;
 
procedure OutList(List : tList);
begin
  var Cur := List;
  repeat
    Print(Cur.Data);
    Cur := Cur.Next;
  until Cur = List;
  WriteLn;
end;
  
begin
  // Создаём список из 20 элементов
  Randomize;
  var List := New tList(Random(-10,+10));
  var Last := List;
  for var N := 2 to 20 do
    begin
      Last.Next := New tList(Random(-1,+10));
      Last.Next.Pred := Last;
      Last := Last.Next;
    end;
  List.Pred := Last;
  Last.Next := List;
  WriteLn('Создан список');
  OutList(List);
 
  // Удалить первый отрицательный (список не может быть пустым)
  var Cur := List;
  while (Cur.Data >= 0) and (Cur.Next <> List) do
    Cur := Cur.Next;
    
  if Cur.Data >= 0 then
    WriteLn('В списке нет отрицательных!')
  else
    begin
      Cur.Pred.Next := Cur.Next;
      Cur.Next.Pred := Cur.Pred;
      if Cur = List then
        List := List.Next;
      WriteLn('Удалён первый отрицательный');
      OutList(List);
    end;
    
  // Добавить новый в конец
  var Add := New tList(ReadLnInteger('Введите число:'));
  Add.Pred := List.Pred;
  List.Pred.Next := Add;
  List.Pred := Add;
  Add.Next := List;
  WriteLn('Добавлен новый в конец');
  OutList(List);
  
  // Обратный порядок
  WriteLn('Список в обратном порядке:');
  var Tmp := List.Pred;
  repeat
    Print(Tmp.Data);
    Tmp := Tmp.Pred;
  until Tmp = List.Pred;
  WriteLn;
end.

Re: Как избавиться от рандома

Duncon » 27 дек 2015, 01:34

Без Randomize может тоже результат отдавать, я такое наблюдал очень давно..

Re: Как избавиться от рандома

somewhere » 26 дек 2015, 22:11

просто Randomize уберите

Как избавиться от рандома

Otclik » 26 дек 2015, 17:57

Помогите избавиться от рандома при создании списка

Код: Выделить всё

begin
  // Создаём список из 20 элементов
  Randomize;
  var List := New tList(Random(-10,+10));
  var Last := List;
  for var N := 2 to 20 do
    begin
      Last.Next := New tList(Random(-1,+10));
      Last.Next.Pred := Last;
      Last := Last.Next;
    end;
  List.Pred := Last;
  Last.Next := List;
  WriteLn('Создан список');
  OutList(List);

Вернуться к началу