rss
twitter
  •  

Удаление повторяющихся элементов массива в Delphi

В английской раскладке: elfktybt gjdnjhz.ob[cz 'ktvtynjd vfccbdf d delphi
В русской раскладке: удаление повторяющихся элементов массива в вудзрш
| Рубрика Программирование |
1 140 | Оцените статью
(Нет оценок)
Loading ... Loading ...

1

Как же удалить повторяющиеся элементы массива? Очень просто.
Будем проходить массив с конца, удаляя повторяющиеся элементы.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
type
  TArr = array of integer;

procedure DelDuble(var A : TArr);
var
 i,j : integer;
begin
 i:=Length(A)-1;
 while i>0 do begin
   if a[i-1]=a[i] then begin
     j:=i;
     while j<length (A)-1 do begin
       a[j]:=a[j+1];
       inc(j);
     end;
     SetLength(A,Length(A)-1);
   end;
   Dec(i);
 end;
end;


Так как Дельфи не имеет стандартной функции для удаления массива, мы будем сдвигать конец и уменьшать длину массива на единицу.

1
2
3
4
5
  while j</length><length (A)-1 do begin
    a[j]:=a[j+1];
    inc(j);
  end;
  SetLength(A,Length(A)-1);

Забыл сказать, это функция для удаления элементов идущих подряд, друг за другом. Посмотрите еще Удаление одинаковых элементов неупорядоченного массива в Delphi

Это интересно...

Метки: , ,

Чтобы череп не облез – Подпишись на RSS!

Комментарии (1)

[...] думаешь чем же отличается предшествующая статья "Удаление повторяющихся элементов массива в Delphi" от этой. Я тебе расскажу. В той статье мы рассматривали [...]

Комментирование продлевает жизнь!