IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Рекурсии
Вадим
сообщение 10.10.2004 21:09
Сообщение #1





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


Помогите написать программу.
Разработать рекурсивную процедуру двоичного поиска элемента массива, равного данному числу.

Сообщение отредактировано: Вадим - 10.10.2004 21:10
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
godd
сообщение 10.10.2004 22:32
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Мужской

Репутация: -  0  +


что такое двоичный поиск? поиск двоичного числа? или че?
вот поиск обычного:

на С++ (на Pascale с указателями не работал и функций не писал - не приходилось)
Код
//Шаблон - при объявлении функции IndexOfArray просто определяется тип VT и подставляется где надо
//VT - VarType
template <class VT> int IndexOfArray(int max_i,VT *pointer,VT Iskomoe,int i=0)
{
if (*pointer==Iskomoe) return i;  //если элемент массива равен Нужному_Числу - функция возвращает индекс элемента массива
else
    {
     ++i;                                          //увеличиваем счетчик
     if (i>max_i) return -1;                //если прошли весь массив - возвращаем -1
     else
          {
           ++pointer;                               //перемещаем указатель на следующий элемент массива
           IndexOfArray(max_i,pointer,Iskomoe,i); //рекурсия
          }
     }
}
P.S. Сортировать ничего не надо - просто перемещаем указатель на следующий элемент массива
P.P.S. В функцию передавай 3аргумента, i - определен по умолчанию, если передашь его - собьешь счетчик (ну разве что 0 передай и фсе), max_i - последний элемент массива

Сообщение отредактировано: godd - 10.10.2004 23:23
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Вадим   Рекурсии   10.10.2004 21:09
Amro   А массив уже упорядочен чтоль, или его ещё сортиро...   10.10.2004 21:31
Вадим   Условие точное, но скорее всего массив надо сортир...   10.10.2004 21:43
godd   что такое двоичный поиск? поиск двоичного числа? и...   10.10.2004 22:32
Amro   Нет godd это не поиск двоичного числа это поиск ...   10.10.2004 23:27
fms   двоичный т.е. бинарный? :) со строками.. :) ну мож...   11.10.2004 0:07
godd   скорость поиска увеличиться? ну разве что в отсорт...   11.10.2004 0:17
godd   посчет времени - рекурсия это вообще дело нехороше...   11.10.2004 1:18
Amro   Я в общем тоже времени не терял, написал тут одну ...   11.10.2004 1:27
godd   недоглядел в тексте Amro. Не то написал. Удалить п...   11.10.2004 1:35
godd   Amro по поводу рекурсии - это я прочитал где-то.   11.10.2004 1:36
godd   Недоглядел я. Ему ж процедура нужна была. А я врод...   11.10.2004 1:46
Amro   Ты прав надо сравнивать только с крайним элементом...   11.10.2004 1:49
Amro   Во во я также сначала функцией пытался сделать, то...   11.10.2004 1:52
godd   мона. вначале проги randomize ставишь, а элементы...   11.10.2004 9:14
Guest   Как сделать, чтобы исходные данные вводились из те...   21.10.2004 20:54
Amro   Создаешь текстовый файл, заносишь туда данные при ...   21.10.2004 21:23
Гость_Вадим   Amro, если будет не в лом, то доделай, пожалуйста   21.10.2004 21:34
Amro   Держи Вадим Разбирайся!!! Прога созд...   22.10.2004 21:03


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 18:44
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"