Найти Мин и Макс внутри отрезка индексного массива (?)

 
Что-то к вечеру меня заклинило. Подскажите кто-нибудь как:
Имеем ind_buffer0[]. Какой функцией искать минимальное и максимальное значения на интервале от бара N до бара N+M ?
 
int ArrayMinimum()
int ArrayMaximum()
 
SK. писал (а):
int ArrayMinimum()
int ArrayMaximum()

Что-то не то.
Был код:
   H=ind_buffer0[Shift+cPeriod-1];
   L=ind_buffer0[Shift+cPeriod-1];
   for(i=Shift+cPeriod-2;i>=Shift;i--)
   {
      if(ind_buffer0[i]>H) H=ind_buffer0[i];
      if(ind_buffer0[i]<L) L=ind_buffer0[i];
   }
Если поменять на:
   H=ind_buffer0[ArrayMaximum(ind_buffer0,Shift+cPeriod-1,Shift)];
   L=ind_buffer0[ArrayMinimum(ind_buffer0,Shift+cPeriod-1,Shift)];


Фигня получается.
 
Bookkeeper писал (а):
Если поменять на:
   H=ind_buffer0[ArrayMaximum(ind_buffer0,Shift+cPeriod-1,Shift)];
   L=ind_buffer0[ArrayMinimum(ind_buffer0,Shift+cPeriod-1,Shift)];

Фигня получается.

H=ind_buffer0[ArrayMaximum(ind_buffer0,cPeriod,Shift)];
L=ind_buffer0[ArrayMinimum(ind_buffer0,cPeriod,Shift)];
 
stringo писал (а):
Bookkeeper писал (а):
Если поменять на:
   H=ind_buffer0[ArrayMaximum(ind_buffer0,Shift+cPeriod-1,Shift)];
   L=ind_buffer0[ArrayMinimum(ind_buffer0,Shift+cPeriod-1,Shift)];

Фигня получается.

H=ind_buffer0[ArrayMaximum(ind_buffer0,cPeriod,Shift)];
L=ind_buffer0[ArrayMinimum(ind_buffer0,cPeriod,Shift)];

Спасибо. Ежели мозгов нет... получается то, что получается.
Кстати, всегда хотел узнать - что программе приятнее: функция, или, например, как было сделано (через for)? В чем разница?