Форум: "Основная";
Текущий архив: 2003.06.12;
Скачать: [xml.tar.bz2];
ВнизВопрос про массив Найти похожие ветки
← →
super_alex (2003-06-01 18:50) [0]Значить помогите плиз... Есть массив (длина переменная и может быть 100, а может и 20000). Массив забивается числами (диапазон тоже может быть маленький, а может быть огромный). Но с определённого элемента (номер элемента всегда разный и НЕ зависит от длины массива) в массиве лежит одинаковое число. Например, массив из 5000 элементов и последние 3000 элементов - это значение 123...
Вопрос: "Как выкинуть из массива эти последние одинаковые значения"?
← →
Anatoly Podgoretsky (2003-06-01 19:01) [1]SetLength(ar,Length(ar)-3000)
← →
super_alex (2003-06-01 19:11) [2]Сорри, я, наверное, некорректно задал вопрос!!!
Так это если точно известно что начинаются они с 3000. А у меня они начинаются произвольно, то есть щас с 3000, а в следующий раз с 150-го... Как узнать с какого они начинаются, вот какая у меня проблема...
← →
Всеволод Соловьёв (2003-06-01 19:21) [3]for i:=2 to length(a) do
if a[i]<>a[i-1] then odnakov:=i;
setlength(a,Length(a)-i);
← →
super_alex (2003-06-01 19:28) [4]Спасибо огромное!!!
Все очень помогли...
← →
Всеволод Соловьёв (2003-06-01 19:32) [5]Но учти! там может быть туды-сюды различие в один символ. Поэкспериментируй :) я не проверял...
← →
MegaVolt (2003-06-02 10:21) [6]To Всеволод Соловьёв:
Молодец :) Посоветовал. Т.е. когда твоя прога найдёт 2 повторяющихся символа она удалит всё остальное?
Правильнее выполнять её с конца к началу и когда пойдёт разлчие тогда и удалять!!!
← →
Всеволод Соловьёв (2003-06-02 10:59) [7]2MegaVolt
Ты не заметил одной вещи... Там не стоит begin end возле for.
Поэтому оно все проверит, а потом уменьшит размер массива.
← →
Sandman25 (2003-06-02 11:02) [8]El := Arr[High(Arr)];
i := High(Arr) - 1;
while Arr[i] = El do
dec(i);
SetLength(Arr, i + 2);
Но если массив имеет размер 1 либо все элементы одинаковые, то не сработает. Придется проверять индекс либо организовывать барьер.
← →
MegaVolt (2003-06-02 11:14) [9]Согласен но по моему с конца правильнее так как можно при нахождении отличия остановится :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.06.12;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c