Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.11.02;
Скачать: CL | DM;

Вниз

Удаление элементов из масива   Найти похожие ветки 

 
Алексей1985   (2008-09-22 07:42) [0]

Здравствуйте,извиняюсь за элеменатрный вопрос, но очень нужна помощь. Подскажите пожалуйста алгоритм удаления нескольких элементов массива по условию, или исправьте мой:
(Var   A : array of integer; i, n , cell : integer; cell2: AnsiString;)
{Массив уже заполнил рандомом}
For i:=0 to n-1 do
begin
cell2:=inttostr(A[i]);
cell:=i;
If AnsiRightStr(cell2, 1) = "0" then    {Оканчивается ли элемент на 0?}
begin
For i:=cell to n-1 do
 A[i]:=A[i+1];
n:=n-1
end
end;

Проблема в том что он удаляет только первый удовлетворяющий условию элемент.
Спасибо.


 
MBo ©   (2008-09-22 07:46) [1]

j := 0;
for i := 0 to High(A) do
 if (A[i] mod 10) = 0 then
   Inc(j)
 else {if j <> 0 then  //добавить, если удаляемых элементов предполагается мало}
  A[i - j] := A[i];


 
Алексей 1985   (2008-09-22 08:40) [2]

MBo, Огромное спасибо!


 
Anatoly Podgoretsky ©   (2008-09-22 09:03) [3]

> Алексей1985  (22.09.2008 7:42:00)  [0]

Какой то особо бессмысленный код, особенно интересно с вложеным циклом.


 
Алексей 1985   (2008-09-22 21:41) [4]


> Anatoly Podgoretsky ©   (22.09.08 09:03) [3]


Ну как я задумывал, во внешнем цыкле происходит поиск элемента, удовлетворяющего условию. А во вложенном удаление этого элемента.


 
Германн ©   (2008-09-23 00:50) [5]


> Anatoly Podgoretsky ©   (22.09.08 09:03) [3]

Хм. Вот самому стало интересно узнать как компилятор обслужит данный код. Когда во внутреннем цикле в качестве "переменной цикла" в коде используется та же переменная, что и во внешнем.



Страницы: 1 вся ветка

Текущий архив: 2008.11.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
15-1221080183
Германн
2008-09-11 00:56
2008.11.02
Встроенное видео


15-1221112876
Slider007
2008-09-11 10:01
2008.11.02
С днем рождения ! 11 сентября 2008 четверг


1-1201421434
Kolan
2008-01-27 11:10
2008.11.02
Кто должен передавать посетителя?


15-1220865932
axis_of_evil
2008-09-08 13:25
2008.11.02
Windows.Права


15-1220948600
Anatoly Podgoretsky
2008-09-09 12:23
2008.11.02
Дмитрий Олегович успокаивает