Главная страница
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.014 c
14-35058
Тумар
2003-05-16 18:10
2003.06.12
---|Ветка была без названия|---


1-34833
Иванов С.
2003-06-03 04:25
2003.06.12
Как прогрммно нажать клавишу?


3-34688
moorcat
2003-05-22 10:30
2003.06.12
Excel


3-34677
AlexBut
2003-05-22 14:26
2003.06.12
Enter вместо Tab


14-34984
CinCinNut
2003-05-26 12:53
2003.06.12
Что лучше?