ArrayBsearch - нужна консультация

 
Есть двумерный массив. В первое измерение заношу цену, во второе – количество лотов.
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 элемент).
 

А Вы уверены, что количество элементов (11) он будет брать начиная со startindex, а не с начала массива? Вы проверяли?

Не исключено, что он отсчитывает от начала. Поэтому и startindex = 11 вызывает ошибку. /Гипотеза такая/

 
Если массив будет объявлен так - Price [22][2], как запишите ArrayBSearch?
Причина обращения: