+ Ответить в теме
Показано с 1 по 5 из 5

Тема: Бинарный поиск в сортированном массиве. Delphi

  1. #1
    dummy GRIPH is on a distinguished road
    Регистрация
    10.04.2009
    Сообщений
    9
    Вес репутации
    0

    По умолчанию Бинарный поиск в сортированном массиве. Delphi

    В общем на кнопку забил процедуру:

    Код :
    1. procedure TForm1.Button8Click(Sender: TObject);
    2. var
    3.   L,R,m,x,N:integer;
    4.   found:boolean;
    5. begin
    6.   x:=StrToInt(Edit2.Text);
    7.   L:=0;
    8.   N:=Length(Arr);
    9.   R:=N-1;
    10.   found := FALSE;
    11.   WHILE (L <= R) AND NOT found DO
    12.     m := (L + R) div 2;
    13.   IF Arr[m] = x THEN
    14.   begin
    15.     found := TRUE;
    16.     IF Arr[m] < x THEN L := m+1
    17.     ELSE R := m-1;
    18.   End;
    19.   if found then ShowMessage('FOUND!') else ShowMessage('Not FOUND!');
    20. End;

    Искать, он ищет, но выводить сообщение не хочет. И ещё помогите как узнать номер найденного элемента. Т.е. если найдет, то каким по счету он стоит в массиве.

    Массив динамический. Берется из списка TList.
    Последний раз редактировалось Игорь Акопян; 13.04.2009 в 11:04.

  2. По умолчанию

     
    Хотите избавиться от рекламы? Зарегистрируйтесь
  3. #2
    Super Moderator system architect Naeel Maqsudov is a jewel in the rough Naeel Maqsudov is a jewel in the rough Naeel Maqsudov is a jewel in the rough Аватар для Naeel Maqsudov
    Регистрация
    20.02.2004
    Адрес
    Moscow, Russia
    Возраст
    45
    Сообщений
    2,551
    Вес репутации
    23

    По умолчанию Re: Бинарный поиск в сортированном массиве. Delphi

    Тема перемещена в более подходящий раздел.

    Разберитесь с операторными скобками. У вас тут все наперекосяк получилось

    WHILE (L <= R) AND NOT found DO
    m := (L + R) div 2;

    - это весь цикл.
    После цикла условие Arr[m] = x не выполняется и всегда получается что found=false.

    Погоняйте эту программу под отладчиком. F8 вам однозначно поможет все понять.

    Номер найденного элемента - это m

  4. #3
    dummy GRIPH is on a distinguished road
    Регистрация
    10.04.2009
    Сообщений
    9
    Вес репутации
    0

    По умолчанию Re: Бинарный поиск в сортированном массиве. Delphi

    Все равно никак не могу разобраться... Всю голову уже переломал...

  5. #4
    Moderator Куратор
    system architect
    Игорь Акопян is on a distinguished road Аватар для Игорь Акопян
    Регистрация
    13.10.2004
    Адрес
    СПБ
    Возраст
    44
    Сообщений
    1,419
    Вес репутации
    17

    По умолчанию Re: Бинарный поиск в сортированном массиве. Delphi

    я щаз ваш пост отредактирую поставив нормальные отступы и будет понятнее

  6. #5
    dummy GRIPH is on a distinguished road
    Регистрация
    10.04.2009
    Сообщений
    9
    Вес репутации
    0

    По умолчанию Re: Бинарный поиск в сортированном массиве. Delphi

    Всё Спасибо, дело все было в операторных скобках после while... забыл, и поэтому ничего остальное не выполнялась, у меня теперь другая проблема.. В другой теме написал

+ Ответить в теме

Похожие темы

  1. Поиск в массиве бинарным методом
    Привет всем!! Помогите пожалуйста с Паскалем! Определить индекс элемента массива A, равного введеному числу, методом бинарного поиска.
    от A3ZA в разделе задачи на Паскале и Delphi
  2. поиск заданного чосла в одномерном массиве
    если Хыиуду начал разговор про массивы и способы решения различных классических задач, то я хочу тоже "внести свою лепту" procedure findkey(key,...
    от Oleg_Rus в разделе Алгоритмы
  3. [Delphi]->PascalФормирование Массива по элементам другого Массива
    Дан одномерный целочисленный массив А, состоящий из N элементов. -Сформировать новый массив B,i-тый элемент которого равен сумме цифр i-того...
    от KreN.del в разделе задачи на Паскале и Delphi
  4. Как записать в бинарный файл символ с кодом 0Ah ?
    Как записать в бинарный файл символ с кодом 0Ah ?
    от c6h11o6na в разделе Delphi и Pascal
  5. Паскаль: поиск максимума и чисел Фибоначчи в массиве.
    Парни! помогите, я сама плохо разбераюсь в паскале мне задали решить 3 задачки. прошу помогите! 1 Дана непустая последовательность не нулевых...
    от Diana в разделе задачи на Паскале и Delphi

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения