Задать вопрос
12 сентября, 21:24

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

клавиатуры, на паскале, методом " Поиск элементов в одномерном массиве", Решить с процедурой.

+1
Ответы (1)
  1. 12 сентября, 22:13
    0
    Если часть программы, в которой выполняется поиск, оформить в виде процедуры, то получится вот так:

    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;

    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
Знаете ответ?
Сомневаетесь в ответе?
Найдите правильный ответ на вопрос ✅ «Найти все элементы массива равные Х, используя бинарный поиск. Х вводится с клавиатуры, на паскале, методом " Поиск элементов в одномерном ...» по предмету 📘 Информатика, а если вы сомневаетесь в правильности ответов или ответ отсутствует, то попробуйте воспользоваться умным поиском на сайте и найти ответы на похожие вопросы.
Смотреть другие ответы
Похожие вопросы по информатике
Найти все элементы массива равные Х, используя бинарный поиск. Х вводится с клавиатуры, на паскале, методом " Поиск элементов в одномерном массиве".
Ответы (1)
Все задачи делаются в Паскале! 1) Увеличить все элементы массива A на 1. 2) Умножить все элементы массива A на 2. 3) Возвести в квадрат все элементы массива A.
Ответы (1)
1. Возвести в квадрат все элементы массива A. Размер массива и значения элементов массива - произвольные. 2. Увеличить на 4 все элементы в первой половине массива A (считать, что в массиве чётное число элементов).
Ответы (1)
1. Массив и 4 целых чисел вводится с клавиатуры. Найти и вывести произведение элементов массива. 2. Массив из 6 отрицательных и положительных целых чисел вводится в области описания констант. Найти сумму положительных элементов массива. 3.
Ответы (1)
В записи m[7]=9 m обозначает 1) имя массива 2) имя элемента массива 3) номер элемента массива 4) значение элемента массива в записи m[7]=
Ответы (1)