![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
С жары чего-то не догоню
![]() Смысл в следующем. Имеется список значений. Элементы с этими значениями (не индексами) должны быть удалены. Функция поиск индекса массива по значению есть. ЗЫ. Массив динамический -----ДОБАВЛЕНО:------------------ Пример. Имеется два массива: А[1]:='ааа'; А[2]:='ааб'; А[3]:='аав'; А[4]:='ааг'; А[5]:='аап'; А[6]:='аар'; А[7]:='аао'; А[8]:='аал'; и B[1]:='ффф'; B[2]:='ааа'; B[3]:='аап'; В результате работы этой функции в массиве A должны остаться только элементы 'aaa' и 'аап'
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() Последний раз редактировалось Utkin; 10.08.2010 в 10:33. |
![]() |
![]() |
![]() |
#2 |
Погулять вышел
Участник клуба
Регистрация: 17.05.2010
Сообщений: 1,573
|
![]()
Так а в чем суть вопроса? Если есть индексы, то и удалить можно:
Код:
Никогда не знаешь, где тебе повезет... (Фрай)
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Типа того, но не все так просто. Как только ты удалишь срединный элемент, индексы сместятся. Это первое. И второе в цикле идет одно число элементов, но как только ты удалишь хоть один элемент, то их число станет меньше. Это чревато двумя последствиями. Первое - половина индексов будет пропущена. Второе - переменная i получит значение большее чем текущее число элементов в массиве.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() Последний раз редактировалось Utkin; 10.08.2010 в 11:00. |
![]() |
![]() |
![]() |
#4 |
Погулять вышел
Участник клуба
Регистрация: 17.05.2010
Сообщений: 1,573
|
![]()
может тогда рекурсией, с вызовом после удаления?
Никогда не знаешь, где тебе повезет... (Фрай)
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
При большом числе элементов выпадает в Access Violation (еще до наступления Stack Overflow).
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#6 |
220400
Форумчанин
Регистрация: 21.05.2010
Сообщений: 726
|
![]()
Создай еще 3й динамический массив типа integer, и в него записывай индексы, которые совпадают в массивах А и В. Затем на основе сохраненных индексов создаешь результирующий массив
![]() ПС: кондиционер надо покупать)
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам. Не учите человека, если вы не его учитель. |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Создание третьего массива не Айс
![]()
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#8 |
Погулять вышел
Участник клуба
Регистрация: 17.05.2010
Сообщений: 1,573
|
![]()
или как вариант. Ищешь в массиве нужные значения, а все A[i], которые не подходят заносишь в STringlist (столбиком). После прохода по массиву, запускаешь цикл удаления элементов массивов согласно стринглисту. Только в обратном порядке, чтобы индексы не смещались
![]() Либо вообще, искомое куда-нибудь сохраняем, потом очищаем массив и добавляем сохраненное искомое...
Никогда не знаешь, где тебе повезет... (Фрай)
Последний раз редактировалось DIgorevich; 10.08.2010 в 11:15. |
![]() |
![]() |
![]() |
#9 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
![]()
Есть другой вариант: считывать массив и удалять элементы нужно сверху вниз, тогда на смещение индексов будет наплевать. downto.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
![]()
Можно так
Код:
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Удаление и перемещение элементов массива в паскале | Devilman | Помощь студентам | 4 | 21.04.2010 15:17 |
Удаление элементов из массива | Jasper92 | Общие вопросы C/C++ | 3 | 06.03.2010 13:04 |
Удаление, сортировка элементов массива. | Vadim123456 | Помощь студентам | 8 | 14.02.2010 23:43 |
удаление одинаковых элементов из массива | sauron99 | Общие вопросы Delphi | 6 | 15.04.2009 21:27 |
Удаление элементов из динамического массива | dashulka | Общие вопросы Delphi | 4 | 31.10.2008 14:03 |