В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
yecgaass121212
yecgaass121212
28.04.2023 01:17 •  Информатика

Найти все элементы массива равные х, используя бинарный поиск. х вводится с клавиатуры , на паскале, методом " поиск элементов в одномерном массиве".

Показать ответ
Ответ:
alyonaapresyan
alyonaapresyan
03.10.2020 14:24
Const n=20;
var a:array[1..n] of integer;
i,i1,i2,x:integer;
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);
i1:=1; i2:=n;
repeat
i:=(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
 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;
 end
 else writeln('Элемент не найден');
writeln;
end.

Пример:
5 6 14 15 15 22 30 36 45 45 50 56 60 64 67 76 84 92 99 101 
x = 15
Искомый(ые) номер(а) элемента(ов):
4 5 
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота