Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];

Вниз

Динамические массивы   Найти похожие ветки 

 
Soi   (2003-11-17 07:03) [0]

Я уже задовал ранее подобный вопрос, но это было связанно со статическими массивами, теперь вот вопрос такой. Как удалить элемент (например содержащий цифру 1) из динамического массива. У меня массив q_mix:array of shortint; набитый числами (отсортированными в случайном порядке) и в диапазоне [1..50]? Если можно, то приведите пожалуйста примерчик.


 
ЮЮ   (2003-11-17 07:18) [1]

1)
а) найти
б) "сдвинуть" информацию в памяти
в) уменьшить длину масства
г) повторить а)
2)
а) создать новый массив
б) добавить в него только необходимые элементы первого


 
Soi   (2003-11-17 07:23) [2]

А примерчик всего этого можно привести, у меня голова уже и так забита, я сам долго буду соображать.


 
Palladin   (2003-11-17 07:33) [3]

Запакуй и еще много влезет.


 
Спрашивающий_   (2003-11-17 09:13) [4]

А что тут соображать пример 2х минут
procedure TForm1.Button1Click(Sender: TObject);
const
Count=10000;
var
M,M1:array of Integer;
I,J:SmallInt;
begin
SetLength(M,Count);
SetLength(M1,Length(M));
Memo1.Lines.BeginUpdate;
Memo2.Lines.BeginUpdate;
J:=0;
For I:=0 To Length(M)-1 Do
begin
M[I]:=Random(3);
If M[I]<>1 Then
begin
M1[J]:=M[I];
M[J]:=M1[J];
Memo2.Lines.Add(IntToStr(M[J]));
Inc(J);
end;
Memo1.Lines.Add(IntToStr(M[I]));

end;

SetLength(M,J);
Memo1.Lines.EndUpdate;
Memo2.Lines.EndUpdate;
end;


 
Anatoly Podgoretsky   (2003-11-17 09:15) [5]

Palladin © (17.11.03 07:33) [3]
Нафиг паковать разную грязь, надо просто удалить не нужное.


 
TUser   (2003-11-17 09:15) [6]

for i:=0 to length(ar)-1 do
if ar[i]="то, шо надо" then begin
for j:=i to length(ar)-2 do
ar[j]:=ar[j+1];
setLength(ar,length(ar)-1);
// или просто move
end;


 
Danilka   (2003-11-17 09:25) [7]

>отсортированными в случайном порядке
хм, что-то новое, я привык - либо отсортированое, либо случайный порядок :))

[6] TUser © (17.11.03 09:15)
согласен, тормознее врядли можно придумать. :))


 
Radionov Alexey   (2003-11-17 09:26) [8]

>TUser © (17.11.03 09:15) [6]
Квадратичная сложность здесь ни к чему (я имею в виду вложенный цикл по переносу хвоста, пусть он даже и через move).

l := 0;
for k := 0 to Length(Arr)-1 do
if Arr[k]<>1 then
begin
Arr[l] := Arr[k];
inc(l);
end;
SetLength(Arr,l);


 
Anatoly Podgoretsky   (2003-11-17 09:32) [9]

Сортировка может быть по любому закону, в том числе и случайная. Сортировка состоит в смене порядка, что здесь имеет место быть. Наглядный случай колода карт. Из колоды надо убрать карту с номером 1.


 
Danilka   (2003-11-17 09:40) [10]

[9] Anatoly Podgoretsky © (17.11.03 09:32)
понятно, про сортировку карт я как-то забыл, давно не играл. :))


 
Anatoly Podgoretsky   (2003-11-17 09:46) [11]

Я не уверен про карты, я защищал само понятие сортировка.


 
Владислав   (2003-11-17 10:01) [12]

Ну тебе же уже много советов дали в предыдущей твоей ветке? Зачем тот же самый вопрос задавать второй раз? Открой ту ветку и прочитай ответы.



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

Форум: "Основная";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.009 c
1-89938
SkyRanger
2003-11-18 04:47
2003.11.27
OpenAPI работа с редактором


3-89706
lovres
2003-11-10 15:45
2003.11.27
Где взять help по работе с SMExport?


1-89883
Гег
2003-11-15 19:04
2003.11.27
Присвоение всяких данных


4-90183
Максим
2003-10-03 11:24
2003.11.27
Как получить идентификаторы всех процессов в ситеме.


1-89944
aimsyslv
2003-11-18 18:03
2003.11.27
Глюк со стеком





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский