Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2008, 20:30   #1
tocas
 
Регистрация: 11.06.2008
Сообщений: 6
По умолчанию ПОМОГИТЕ! НЕ МОГУ СДАТЬ КУРСОВИК! С++

обьясните пожалуйста что происходит в этой строке (это строка из процедуры поиска (побитовый поиск))
if (strcmp(r.avtor,d1)==0|strcmp(r.gan r,d1)==0 |strcmp(r.ispolnitel,d1)==0 |strcmp(r.nazvanie,d1)==0)
Буду очень благодарен за помощь!!
tocas вне форума Ответить с цитированием
Старый 11.06.2008, 22:15   #2
Olympian
Форумчанин
 
Аватар для Olympian
 
Регистрация: 06.06.2008
Сообщений: 105
По умолчанию

Мы просто смотрим - если эта некая строка d1 равна какому-то полю из структуры, то идем по ifу.

А вообще - http://www.opennet.ru/man.shtml?topi...ry=3&russian=0 вот полное описание этой функции strcmp();
Olympian вне форума Ответить с цитированием
Старый 12.06.2008, 17:42   #3
tocas
 
Регистрация: 11.06.2008
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Olympian Посмотреть сообщение
Мы просто смотрим - если эта некая строка d1 равна какому-то полю из структуры, то идем по ifу.

А вообще - http://www.opennet.ru/man.shtml?topi...ry=3&russian=0 вот полное описание этой функции strcmp();
Я знаю что делает эта функция, я не могу объяснить преподу как осуществляется сам поиск. Как происходит побитовый поиск? Сначала сравнивается введенное слово с полем, а потом как переходит на поиск в следующем поле?
tocas вне форума Ответить с цитированием
Старый 12.06.2008, 18:16   #4
Olympian
Форумчанин
 
Аватар для Olympian
 
Регистрация: 06.06.2008
Сообщений: 105
По умолчанию

Хм..Не совсем понимаю, что имеется ввиду..Но если понял верно то -

Вначале сравниваем d1 и r.avtor
Если результат = n и n != 0 то переходит к следующему сравнению.
Если же результат n и n == 0 то если есть хоть одна функция strcmp - они не смотрятся. Т.к. из логики - FALSE | TRUE = TRUE. И if выполнен..
Olympian вне форума Ответить с цитированием
Старый 12.06.2008, 18:50   #5
tocas
 
Регистрация: 11.06.2008
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Olympian Посмотреть сообщение
Хм..Не совсем понимаю, что имеется ввиду..Но если понял верно то -

Вначале сравниваем d1 и r.avtor
Если результат = n и n != 0 то переходит к следующему сравнению.
Если же результат n и n == 0 то если есть хоть одна функция strcmp - они не смотрятся. Т.к. из логики - FALSE | TRUE = TRUE. И if выполнен..
то что ты сейчас обьяснил, вро де как это действует если используется логическое или "||" , а здесь используется побитовый поиск.
В этом и заминка у меня я по твоему обьяснил преподу, а он типо сказал что при побитовом поиске это не верно, а подходит тока при использовании логического или.
tocas вне форума Ответить с цитированием
Старый 12.06.2008, 19:41   #6
Olympian
Форумчанин
 
Аватар для Olympian
 
Регистрация: 06.06.2008
Сообщений: 105
По умолчанию

Мдя..Спать надо больше.. Да - это побитовое или я объяснил.
Но это то мало чем отличается.

strcmp() == 0 - у этого выражения всего 2 значения - 1, если выполнено, 0 - если нет

Таким образом если среди них есть хоть 1н резульатт - 1, то всё выполнено. Т.к. 1 | 0 = 1. Соответственно - выполняются все 4 сравнения, но нам важно - есть ли хотябы 1но значение "1"
Olympian вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПОМОГИТЕ СРОЧНО!!!ЗАВТРА СДАТЬ УЖЕ(((( olview Microsoft Office Excel 4 29.05.2008 21:35
Помогите сдать экзамен!!! Нужен код деревьев двоичного поиска и еще 2 програмки Девчонка Помощь студентам 8 18.01.2008 19:02
Помогите (курсовик) Ton'1c™ Помощь студентам 5 04.06.2007 13:51