Вниз
Скачать: CL | DM;

Вопрос про массив   Найти похожие ветки 

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.012 c
6-34953
denisww
2003-04-10 16:33
2003.06.12
Подскажите как заюзать FTP


1-34799
mirk
2003-06-02 13:38
2003.06.12
Чтение данных из текстового файла


3-34716
Alex_x
2003-05-23 13:37
2003.06.12
Express QuantumGrid 4


8-34933
Митяй2
2003-02-28 13:25
2003.06.12
ImageList (оптимизация)


1-34849
KpeHgeJIb
2003-05-30 16:48
2003.06.12
Работа с риестром




   Наверх