Ответ: Увы, это неверное решение! Вы не использовали ДВОИЧНЫЙ ПОИСК, который требовался по условию.
Ответ: А сама задача с подвохом. Конечно же, на практике никто так не станет искать количество повторов элементов с указанным значением: сортировать и применять потом бинарный поиск. Суть подвоха в следующем. Бинарный поиск (при наличии нескольких элементов с искомым значением) НЕ ОБЯЗАТЕЛЬНО укажет ПЕРВЫЙ или ПОСЛЕДНИЙ такой элемент. И нужно потом еще подвигаться вправо-влево, чтобы учесть все такие элементы.
Ответ: Эта задача — «подарочек» с сайта Константина Полякова.
Ответ: const t = 10;// количество чисел в массивеvar a: array[1..t] of integer; i, min, k, tmp, klv, z: integer; b: boolean;begin for i := 1 to t do a[i] := random(10) + 1; //Рандом чисел от 1 до 10 writeln(‘Массив:’); for i := 1 to t do write(‘ ‘, a[i]:2); writeln; for i := 1 to t — 1 do for k := i + 1 to t do if a[i] > a[k] then begin tmp := a[k]; a[k] := a[i]; a[i] := tmp; end; writeln(‘После сортировки:’); for i := 1 to t do write(‘ ‘, a[i]:2); writeln; klv := 0; writeln(‘Введите число X:’); readln(z); for i := 1 to t do if a[i] = z then begin b := true; inc(klv); end; if b then begin writeln(‘Число ‘, z, ‘ встречается ‘, klv, ‘ раз(а).’); end; if b = false then writeln(‘Число ‘, z, ‘ не встречается.’);end.
Ответ: const n=20;var a:array[1..n] of integer;i,j,t,i1,i2,x:integer;beginRandomize;Writeln(‘Исходный массив:’);for i:=1 to n do begin a[i]:=Random(15); Write(a[i],’ ‘)end;Writeln;for i:=1 to n-1 do for j:=1 to n-i do if a[j]>a[j+1] then begin t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t end;Writeln(‘Отсортированный массив:’);for i:=1 to n do Write(a[i],’ ‘);Writeln;write(‘x = ‘); readln(x);i1:=1; i2:=n;repeati:=(i1+i2) div 2;if a[i]<x then i1:=(i1+i2) div 2+1;if a[i]>x then i2:=(i1+i2) div 2-1;until (a[i]=x)or(i1>i2);if a[i]=x then begin while (i>0)and(a[i]=x) do i:=i-1; i:=i+1; j:=i; while (i<=n)and(a[i]=x) do i:=i+1; writeln(‘Число ‘,x,’ встречается ‘,i-j,’ раз(а)’); end else writeln(‘Число ‘,x,’ не встречается’);writeln;end.Пример:Исходный массив:4 13 5 3 14 12 12 8 9 6 3 2 4 4 14 1 12 2 5 9 Отсортированный массив:1 2 2 3 3 4 4 4 5 5 6 8 9 9 12 12 12 13 14 14 x = 5Число 5 встречается 2 раз(а)