Примеры программ на языке QBASIC

DEFINT A-Z
DECLARE FUNCTION BSEARCH (Q%, A%(), N%)
CLS
DIM A(20)
FOR J = 0 TO 19: A(J) = J: PRINT USING "####"; A(J); : NEXT J
PRINT
A1 = 25: K = BSEARCH(A1, A(), 20)
IF K = -1 THEN
   PRINT "Число "; A1; " в массиве не содержится"
ELSE
   PRINT "Число "; A1; " найдено, его индекс = "; K
END IF
A1 = 12: K = BSEARCH(A1, A(), 20)
IF K = -1 THEN
   PRINT "Число "; A1; " в массиве не содержится"
ELSE
   PRINT "Число "; A1; " найдено, его индекс = "; K
END IF
END

FUNCTION BSEARCH (Q, A(), N)
LEFT = 0: RIGHT = N - 1
DO WHILE LEFT <= RIGHT
   MIDDLE = (LEFT + RIGHT) \ 2
   IF Q < A(MIDDLE) THEN
     RIGHT = MIDDLE - 1
     ELSE
       IF Q > A(MIDDLE) THEN
           LEFT = MIDDLE + 1
       ELSE
           BSEARCH = MIDDLE: EXIT FUNCTION
       END IF
   END IF
LOOP
BSEARCH = -1
END FUNCTION