program Binarni_Vyhledavani_v_Poli; const N = 10; type Pole = array[1..N] of integer; var M: Pole; X, i: integer; function BinVyhledavani(M: Pole; X: integer): integer; {ve vzestupne usporadanem poli M[1..N] hleda hodnotu X} {pokud je X obsazeno v M, vraci jeji index v M} {pokud X neni v M obsazeno, vraci nulu} var i,j,k: integer; begin i := 1; {doln¡ mez} j := N; {horn¡ mez} repeat k := (i+j) div 2; {index prost©edn¡ho prvku} if X > M[k] then i := k+1 else j := k-1 until (M[k] = X) or (i > j); if M[k] = X then BinVyhledavani := k else BinVyhledavani := 0 end; begin writeln('Zadej ', N, ' cisel ulozenych v poli'); writeln('Cisla musi byt vzestupne usporadana!'); for i:=1 to N do read(M[i]); write('Zadej hledane cislo: '); readln(X); i := BinVyhledavani(M,X); if i = 0 then writeln('Cislo ', X, ' v poli neni') else writeln('Cislo ', X, ' se nachazi v poli na ', i, '-tem miste') end.