Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 12.12.2014, 20:58   #1
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию Как из одного массива вычесть совпадающие элементы другого массива

Delphi 7.

Имею два строковых массива:
array_1[0]:='1';
array_1[1]:='1';
array_1[2]:='2';
array_1[3]:='3';

array_2[0]:='1';
array_2[1]:='2';
array_2[2]:='0';
array_2[3]:='9';

Необходимо чтобы в массиве array_1 в тех индексах значения которых совпадают с значениями в массиве array_2 записалось, например символ +.

Конкретно нужно чтобы получилось в итоге:
array_1[0]:='+';
array_1[1]:='1';
array_1[2]:='+';
array_1[3]:='3';

Т.е. чтобы из второго удалились элементы первого, но только один раз.
получается только такой вариант:
array_1[0]:='+';
array_1[1]:='+';
array_1[2]:='+';
array_1[3]:='3';
Удаляются все одинаковые элементы. Здесь удаление это присвоение '+'.
Пытался обходить циклы и выходить Breack и выход из текущей итерации Continue, так и ничего не добился.

Это все только пример.
Предполагается, что значения индексов в массивах могут быть разными.
Не смущайтесь почему я строками записал цифры, это только чтоб понятней было.

Последний раз редактировалось Illusiony; 12.12.2014 в 21:54.
Illusiony вне форума
Старый 12.12.2014, 21:09   #2
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

Цитата:
array_2[0]:='1';
array_2[1]:='2';
array_2[0]:='0';
array_2[1]:='9';
В индексации явно ошибка
Цитата:
Необходимо чтобы в массиве array_1 в тех индексах значения которых совпадают с значениями в массиве array_2 записалось, например символ +.
Код:
array_1[2]:='2';
Код:
array_2[0{2???}]:='0';
значения разные. Почему
Код:
array_1[2]:='+'; ???
В общем исправляйте ошибки задачи.
WinCoder вне форума
Старый 13.12.2014, 21:54   #3
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Второй вариант описания материала:
Имеем два массива:
array_1[0]:='1';
array_1[1]:='1';
array_1[2]:='2';
array_1[3]:='3';
второй:
array_2[0]:='1';
array_2[1]:='2';

Необходимо те элементы( значения индексов массивов), которые совпадают в обоих массивах заменить в первом массиве например значением '+', но только один раз.
Должно получится:
array_1[0]:='+';
array_1[1]:='1';
array_1[2]:='+';
array_1[3]:='3';
Сколько не пытаюсь сделать постоянно получаю такое:
array_1[0]:='+';
array_1[1]:='+';
array_1[2]:='+';
array_1[3]:='3';
То есть заменяются все одинаковые элементы.
Массив array_2 может содержать от 0 до 4 элементов.
Массив array_1 4 элемента.
Делаю два цикла и пробовал много чего, вплоть до записывание в отдельный массив те индексы второго массива, которые уже заменились и во всех последующих итерациях исключить эти замены. Но все безуспешно.
Почему так получается, логически я почему то не вижу ошибки .

Посоветуйте примерчики пожалуйста.
Illusiony вне форума
Старый 14.12.2014, 12:49   #4
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Извините, сам себя и вас ввел в заблуждение.
Ошибка оказалась во входных данных. Во втором массиве оказалось не предусмотренное мною значение. В итоге все несколько моих вариантов оказались верными. спасибо всем кто читал.

Последний раз редактировалось Illusiony; 14.12.2014 в 13:19.
Illusiony вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как перенести элементы одного массива в другой? sanchez1 Помощь студентам 5 02.01.2015 19:06
Создание одного массива из другого с использованием указателей Vladislavv Помощь студентам 2 14.09.2014 07:16
Как обнулить элементы строки двумерного массива, содержащей наибольшее количество элементов одномерного массива griignat Помощь студентам 1 22.11.2011 20:04
Поместить элементы Одного массива, в начало другого в обратном порядке. Adrenalin4 Общие вопросы C/C++ 2 15.11.2010 21:51
как реализовать функцию для того что бы скопировать элементы одного массива во второй в обратном порядке mansp Общие вопросы C/C++ 8 28.10.2010 15:48