Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Зарабатывай на сервисах MQL5. Это просто!
Alexey Viktorov
5181
Alexey Viktorov 2014.03.06 16:07 

ArrayCompare()

Возвращает результат сравнения двух массивов одинакового типа. Может использоваться для сравнения массивов простых типов

В общем-то другие типы массивов пока не интересуют.

Вопрос:

Ну вот сравнили 2 массива, в одном на 1 запись больше чем в другом, остальные идентичны...

Как попроще вытащить эту запись которая и составляет отличие массивов??? Как определить её индекс???

Можно конечно и в цикле перебирать, но нет гарантии что индексация совпадёт. А если вложенным циклом, то слишком долго...


Vitalie Postolache
11084
Vitalie Postolache 2014.03.06 16:18  
ArrayCompare не пойдётъ, что-то своё надо писать. Вложенных циклов не надо, если в массивах одинаковое количество элементов, то можно просто перебирать их в одном цикле и сравнивать попарно элементы, на различающейся паре - возвращаем индекс.
Alexey Viktorov
5181
Alexey Viktorov 2014.03.06 16:36  
В том-то и дело что предполагается не равное количество элементов. Как минимум на 1 будет разница. А остальные элементы равны.
Vitalie Postolache
11084
Vitalie Postolache 2014.03.06 18:53  
AlexeyVik:
В том-то и дело что предполагается не равное количество элементов. Как минимум на 1 будет разница. А остальные элементы равны.

То есть имеем A[x], B[y] и x != y?

Ну тогда нужно сначала уравнять количество элементов меньшего массива со вторым (добить в меньший массив числа которые заведомо не входят в диапазон рассматриваемых значений), то есть добиться равенства х=у, а потом сравнивать элементы массивов попарно.

Alexey Viktorov
5181
Alexey Viktorov 2014.03.06 18:58  

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

Nazariy Stapyak
1744
Nazariy Stapyak 2014.03.07 02:53  
Это называется разница массивов (при данных условиях простая разница. есть еще симметричная). В сети куча инфы и готовых алгоритмов.
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий