profile
[/banner_gorizont_adaptive]
Размещено 4 года назад по предмету Информатика от Nickckck

Помогите пожалуйста написать программу!Заполнить массив случайными числами и отсортировать его. Ввести число X. Используя двоичный поиск, определить, сколько чисел, равных X, находится в массиве.
Пример:
Массив:
1 4 7 3 9 2 4 5 2
После сортировки:
1 2 2 3 4 4 5 7 9
Введите число X:
4
Число 4 встречается 2 раз(а).
Пример:
Массив:
1 4 7 3 9 2 4 5 2
После сортировки:
1 2 2 3 4 4 5 7 9
Введите число X:
14
Число 14 не встречается.

  1. Ответ на вопрос
    Ответ на вопрос дан ShirokovP
    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.
    1. Ответ на вопрос
      Ответ на вопрос дан Аккаунт удален
      Увы, это неверное решение! Вы не использовали ДВОИЧНЫЙ ПОИСК, который требовался по условию.
    2. Ответ на вопрос
      Ответ на вопрос дан Аккаунт удален
      А сама задача с подвохом. Конечно же, на практике никто так не станет искать количество повторов элементов с указанным значением: сортировать и применять потом бинарный поиск. Суть подвоха в следующем. Бинарный поиск (при наличии нескольких элементов с искомым значением) НЕ ОБЯЗАТЕЛЬНО укажет ПЕРВЫЙ или ПОСЛЕДНИЙ такой элемент. И нужно потом еще подвигаться вправо-влево, чтобы учесть все такие элементы.
    3. Ответ на вопрос
      Ответ на вопрос дан Аккаунт удален
      Эта задача - "подарочек" с сайта Константина Полякова.
  2. Ответ на вопрос
    Ответ на вопрос дан petyaGavrikov
    const n=20;
    var a:array[1..n] of integer;
    i,j,t,i1,i2,x:integer;
    begin
    Randomize;
    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;
    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
     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 раз(а)
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 5 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.