procedure HUNT(XX:array of real; N:integer; X:real; var JLO:integer); label 1,2,3; var ASCND:boolean; LHI,INC,JM:integer; begin ASCND:=XX[N] > XX[1]; If (JLO <= 0) Or (JLO > N) Then begin JLO:=0; LHI:=N + 1; GoTo 3; end; INC:=1; If (X >= XX[JLO]) = ASCND Then begin 1: LHI:=JLO + INC; If LHI > N Then LHI:=N + 1 Else If ((X >= XX[LHI]) = ASCND) Then begin JLO:=LHI; INC:=INC + INC; GoTo 1; end; end Else begin LHI:=JLO; 2: JLO:=LHI - INC; If JLO < 1 Then JLO:=0 Else If (X < XX[JLO]) = ASCND Then begin LHI:=JLO; INC:=INC + INC; GoTo 2; end; end; 3: If LHI - JLO = 1 Then Exit; JM:=(LHI + JLO) div 2; If (X > XX[JM]) = ASCND Then JLO:=JM Else LHI:=JM; GoTo 3; end;