Оригинал статьи: http://www.cyberforum.ru/pascal/thread133142.html
Благодарен всем авторам, которые внесли свой вклад в сборку кода
Исчем номер заданного элемента в упорядоченном по возрастанию массиве.
var n, v, i, r: integer; a: array[1..1000] of integer; procedure binsearch(left, right: integer); begin if left = right then begin r := right; exit; end; r := (right + left) div 2; if a[r] < v then begin left := r + 1; binsearch(left, right) end else begin right := r; binsearch(left, right); end; end; begin readln(n); for i := 1 to n do read(a[i]); readln(v); binsearch(1, n); if a[r] = v then writeln(r) else writeln('Absent'); end.