А Вы уверены, что количество элементов (11) он будет брать начиная со startindex, а не с начала массива? Вы проверяли?
Не исключено, что он отсчитывает от начала. Поэтому и startindex = 11 вызывает ошибку. /Гипотеза такая/
Если массив будет объявлен так - Price [22][2], как запишите ArrayBSearch?
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Price [2][22]
Мне нужно найти номер элемента с ценой, которая наиболее близка к заданной: NeedPrice.
Искать нужно в первой половине массива.
Задаю так: ArrayBsearch(Price, NeedPrice,11,0,MODE_ASCEND)
Здесь: Price – имя массива
NeedPrice – заданная цена
11 – количество элементов, в котором осуществляется поиск (из всех 22)
0 – начальный индекс (с начала массива)
MODE_ASCEND – направление поиска по возрастанию.
Находит верно, всё работает.
Но, когда мне нужно произвести поиск цены во второй половине массива – начиная с 11 элемента, не работает.
Задаю так: ArrayBsearch(Price, NeedPrice,11,11,MODE_ASCEND)
Здесь: Price – имя массива
NeedPrice – заданная цена
11 – количество элементов, в котором осуществляется поиск (из 22)
11 – начальный индекс (с середины массива)
MODE_ASCEND – направление поиска по возрастанию.
Не работает, возвращает ошибку incorrect start position 11 for ArrayBsearch function.
Почему элемент 11 – некорректная стартовая позиция?
Ведь ищем с 11 по 21 элемент включительно.
Ещё раз повторю задачу: нужно произвести поиск цены в первом измерении массива.
Первый раз – в первой половине массива (с 0 по 10 элемент)
Второй раз – во второй половине массива (с 11 по 21 элемент).