Показать сообщение отдельно
  #11  
Старый 20.11.2010, 21:54
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

делай копированием - не ошибешься.

Код:
var
  A, B : Array Of Integer;
  I, J : Integer;
  F: Boolean;
begin
  // Инициализируем исходный массив
  SetLength(A, 100);
  For I := Low(A) To High(A) Do A[i] := Random(50);
  
  // Удаление методом копирования
  // просто создаем новый массив
  setLength(B,0);
  For I := Low(A) To High(A) Do
  Begin
    F := True;
    For J := Low(B) To High(B) Do
      If A[i] = B[j] Then
         Begin
           F := False;
           Break;
         End;
   If F Then
     Begin
        setLength(B,Length(B)+1);
        B[High(B)] := A[i];
     End;
  End;
end;

в конце работы программы получишь массив B, в котором нет повторяющихся элементов.
Ответить с цитированием