procedure binarysearch(p : データの型; mini, maxi : integer); begin i := (mini + maxi) div 2; (* mini と maxi の間の数ならなんでも *) if p = d[i] then writeln('Found at ', i) else if maxi = mini then begin write('Not found. Must be inserted '); if p > d[i] then write('after ') else write('before '); writeln(i, ' th number.') end else if p > d[i] then binarysearch(p, succ(i), maxi) else binarysearch(p, mini, pred(i)) end;