двоичный поиск |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
двоичный поиск |
maksimla |
Сообщение
#1
|
Знаток Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: 1 |
Задание
Предположим, имеем первичных цифр массив. Напишите функцию, реализующую алгоритм двоичного поиска в таком массиве. Результаты функции - элемент массива, который равен функции аргументу, номер или 0. я так непонел результаты какие надо вывести пример можете написать -------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
Ozzя |
Сообщение
#2
|
Гуру Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: 16 |
Задание коряво написано.
Я понял так, что нужно вывести элемент массива и его номер в случае успеха поиска и 0, если поиск потерпел неудачу (нет такого элемента в массиве). |
maksimla |
Сообщение
#3
|
Знаток Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: 1 |
чтото неищит у меня цыфров
Код program Bevarde2; const count =10; m:array [1..count] of byte=(10,9,8,7,6,5,4,3,2,1); var n,i,first,last:integer; a,low, high, mid:integer; found:boolean; begin WriteLn('massiv uporedocennij'); for i:= 1 to count do write(m[i]:3,' '); writeln; writeln; write('vvedite cislo kotoroe icete'); readln(a); low:=1; high:=count; found:=false; while (low<=high) and (not found) do begin i:=(low+high) div 2; if a<m[i] then high:=i-1 else if a>m[i] then low:=i+1 else found:=true; end; if found then writeln('naiden') else writeln('nenaiden'); Readln; end. Добавлено через 2 мин. вот эту нашол но чегото у меня неищит Код function BSearch (item: DataArray; count:integer; key:DataItem):integer; var low, high, mid: integer; found:boolean; begin low:=1; high:=count; found:=false; { не найден } while (low<=high) and (not found) do begin mid:=(low+high) div 2; if key<item[mid] then high:=mid-1 else if key>item[mid] then low:=mid+1 else found:=true; { найден } end; if found then BSearch:=mid else BSearch:=0; { не найден } end; { конец поиска } -------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
Lapp |
Сообщение
#4
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
вот эту нашол но чегото у меня неищит Когда же ты научишься точнее формулировать проблему? Это же в первую очередь тебе самому лучше..Приведи ВСЮ программу и опиши, что именно работает неправильно. "Не ищет" можно понимать тысячью разных способов. В том числе, и что ты ее не запускал, например.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
maksimla |
Сообщение
#5
|
Знаток Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: 1 |
вот массив есть в программе у меня я ввожу в поиск цифру которая есть в массиве а выводит что нету ее в массиве
-------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
Lapp |
Сообщение
#6
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
вот массив есть в программе у меня я ввожу в поиск цифру которая есть в массиве а выводит что нету ее в массиве Еще раз прошу: приведи полный текст программы.-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
maksimla |
Сообщение
#7
|
Знаток Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: 1 |
перегрелся я уже вот программка все работает сечас надо както поиск в функцию перевести
program Bevarde2; непонел этого как это в незу что выводить надо Результаты функции - элемент массива, который равен функции аргументу, номер или 0. -------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
Lapp |
Сообщение
#8
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
перегрелся я уже вот программка все работает сечас надо както поиск в функцию перевести Явно перегрелся . У тебя уже была функция (см. выше) чем она тебе не понравилась? Ну, надо - переводи..непонел этого как это в незу что выводить надо Тебе же Ozzя сказал: функция должна давать номер найденного элемента. Кстати, в той функции все было правильно..Результаты функции - элемент массива, который равен функции аргументу, номер или 0. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
maksimla |
Сообщение
#9
|
Знаток Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: 1 |
а теперь процедуру сказали сделать я сделал но одна ошибка есть. Ошибку не нашел но добавил единицу и все в порядке можете сказать что не так я сделал?
это двоичный поиск program rasti; числа записаны в файл в возвращающем порядке и если в поиск вводишь самое последнее число то оно не находится при в процедуре i2:=max а если плюс один то все в порядке странно можете объяснить что не так я сделал. -------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
Текстовая версия | 16.05.2024 23:53 |