Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.12;
Скачать: 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 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.012 c
1-34816
JohnJ
2003-05-30 14:08
2003.06.12
Управление формой с разных юнитов...


1-34902
Andrey02
2003-06-01 13:13
2003.06.12
Полностью раздвинуть приложение на весь экран


14-35046
k-sergey
2003-05-26 13:14
2003.06.12
Склеить Wav-ки


1-34836
Ivan P
2003-06-02 23:25
2003.06.12
WinXp(выключение компа)


7-35085
korry
2003-04-09 19:38
2003.06.12
Как получить список EXE файлов, которые являются инсталяшками?