Если часть программы, в которой выполняется поиск, оформить в виде процедуры, то получится вот так:
const n=20;
type arr=array[1..n] of integer;
var a:arr;
i,x:integer;
procedure f(a:arr; x:integer);
var i,i1,i2:integer;
begin
i1:=1; i2:=n;
repeat
i:=(i1+i2) div 2;
if a[i]if a[i]>x then i2:=(i1+i2) div 2-1;
until (a[i]=x)or(i1>i2);
if a[i]=x then
begin
writeln('Искомый(ые) номер(а) элемента(ов):');
while (i>0)and(a[i]=x) do i:=i-1;
i:=i+1;
while (i<=n)and(a[i]=x) do begin write(i,' '); i:=i+1; end;<br> end
else writeln('Элемент не найден');
writeln;
end;
begin
Randomize;
a[1]:=random(10);
write(a[1],' ');
for i:=2 to n do
begin
a[i]:=a[i-1]+random(10);
write(a[i],' ');
end;
writeln;
write('x = '); readln(x);
f(a,x);
end.
Пример:
9 9 15 21 30 33 35 35 36 44 45 45 52 54 62 63 70 70 77 78
x = 35
Искомый(ые) номер(а) элемента(ов):
7 8