0 / 0 / 2
Регистрация: 22.02.2011
Сообщений: 76
|
||||||
1 | ||||||
Функция15.10.2011, 00:38. Показов 938. Ответов 14
Метки нет (Все метки)
Программа на двоичный поиск, как правильно осуществить функцию этого поиска? Можете подкинуть статьи по функциям и указателям, ато в нете куча этих статей?)
0
|
15.10.2011, 00:38 | |
Ответы с готовыми решениями:
14
Функция поиска в массиве и указатели + функция сортировки и поиск найденного элемента Функция удаления текста в скобках [2], непосредственно функция + 12кб вложений Перегрузка операций: friend-функция или функция-член класса Функция sqrt: существует более одного экземпляра. Функция перегруженная |
15.10.2011, 01:26 | 3 | |||||||||||||||||||||||||
Сообщение было отмечено как решение
Решение
xexew, почитайте лучше книжки. На форуме была прикреплённая тема со списком хорошей литературы.
Функция - это, грубо говоря, программа в программе. Подпрограмма. Часто выполняемые действия обычно выносят в функции, чтобы не писать по десять раз. Функция может принимать аргументы (параметры по-другому) и возвращать значение. Синтаксис такой: тип_возвращаемого_значения имя ( тип_параметра_1 параметр_1, тип_параметра_2 параметр_2, ... ) { тело_функции} Пример: int add( int a, int b ) { return a + b;} Функция add принимает два параметра типа int и возвращающая значение типа int, которое является суммой её параметров. То есть, когда я пишу int c = add( 5, 8 ); Вызывается функция add, в первый параметр попадает число 5, во второй - 8. Значение, которое вернёт функция, 13, запишется в int c. Указатель - переменная, хранящая адрес начала чего-либо. Синтаксис объявления указателя на объект: тип_объекта * имя_указателя; Пример: char * alpha; Указатель alpha на начало объекта (или последовательности объектов) типа char. Если указатель указывает на элемент массива, то для перехода к следующему элементу нужно выполнить инкремент указателя, а для перехода к предыдущему элементу - декремент указателя: alpha++; alpha--; Так же можно производить доступ через operator[]: alpha[5]; Чтобы взять значение, на которое указывает указатель, нужно его разименовать:
Для взятия адреса объекта используется операция взятия адреса объекта:
При передачи больших объектов и массивов в функцию предпочтительна передача по указателю, так как в этом случае функция примет 4 байта указателя вместо огромного объекта или массива:
3
|
silent_1991
|
15.10.2011, 14:46
#4
|
1
|
0 / 0 / 2
Регистрация: 22.02.2011
Сообщений: 76
|
||||||
15.10.2011, 20:38 [ТС] | 5 | |||||
0
|
237 / 210 / 29
Регистрация: 08.06.2011
Сообщений: 467
|
||||||||||||||||
15.10.2011, 20:47 | 6 | |||||||||||||||
иными словами, этот код эквивалентен следующему:
1
|
0 / 0 / 2
Регистрация: 22.02.2011
Сообщений: 76
|
||||||
15.10.2011, 20:55 [ТС] | 7 | |||||
спасибо, но он все равно пишет что не может конвертировать из 'int' в 'int *', ссылаясь на строку, где написано
0
|
237 / 210 / 29
Регистрация: 08.06.2011
Сообщений: 467
|
||||||
15.10.2011, 20:58 | 8 | |||||
Да, потому что функция объявлена, как возвращающая указатель, а вы пытаетесь вернуть просто число (int)
Возвращайте тогда нулевой указатель, чтобы сигнализировать о том что элемент не найден:
1
|
0 / 0 / 2
Регистрация: 22.02.2011
Сообщений: 76
|
||||||
15.10.2011, 21:37 [ТС] | 9 | |||||
0
|
237 / 210 / 29
Регистрация: 08.06.2011
Сообщений: 467
|
|
15.10.2011, 21:46 | 10 |
0
|
448 / 211 / 21
Регистрация: 07.10.2011
Сообщений: 462
|
|
15.10.2011, 21:47 | 11 |
А она у вас всегда NULL возвращает, других-то return-ов нет
0
|
237 / 210 / 29
Регистрация: 08.06.2011
Сообщений: 467
|
||||||
15.10.2011, 21:48 | 12 | |||||
вот написал:
1
|
0 / 0 / 2
Регистрация: 22.02.2011
Сообщений: 76
|
|
15.10.2011, 21:51 [ТС] | 13 |
ох..большое спасибо за решение)
0
|
0 / 0 / 2
Регистрация: 22.02.2011
Сообщений: 76
|
||||||
17.10.2011, 23:48 [ТС] | 14 | |||||
0
|
18.10.2011, 00:46 | 15 |
xexew, условие для бинарного поиска - отсортированный массив. Иначе будет работать с ошибками. Сами подумайте: Код
берём середину интервала если ключ меньше значения ищем в левой части если ключ больше значения ищем в правой части если ключ равен значению возвращаем адрес найденного элемента если границы поиска стоят впритык друг к другу или вообще пересеклись возвращаем, что значения нет в массиве повторить
1
|
18.10.2011, 00:46 | |
18.10.2011, 00:46 | |
Помогаю со студенческими работами здесь
15
Какую библиотеку надо подключать чтоб работала функция _getch() и функция cin.get()? Чистая виртуальная функция функция не имеет оператора переопределения что за функция такая strstr? или это не функция? Создать производный класс, в котором реализована функция умножения вектора на число и функция сложения двух векторов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |