Удаление повторяющихся элементов массива в Delphi
В английской раскладке: elfktybt gjdnjhz.ob[cz 'ktvtynjd vfccbdf d delphi
В русской раскладке: удаление повторяющихся элементов массива в вудзрш
| Рубрика Программирование | Дата 06-05-2011
1 140 | Оцените статью
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


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