Задать вопрос
9 декабря, 22:23

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

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

+4
Ответы (1)
  1. 9 декабря, 22:30
    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)