Russian Qt Forum
Ноябрь 25, 2024, 02:06
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Программирование
>
С/C++
>
Полезная строка/inline
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Полезная строка/inline (Прочитано 18441 раз)
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Полезная строка/inline
«
:
Август 09, 2009, 22:46 »
Добрый день
Разбирался с чужой программой и нашел строчку
if (!(a >= 0) && !(a < 0)) {
...
}
Это совсем не бессмысленно (как с первого взгляда кажется :-)
Записан
spectre71
Гость
Re: Полезная строка/inline
«
Ответ #1 :
Август 09, 2009, 22:58 »
Цитата: Igors от Август 09, 2009, 22:46
Добрый день
Разбирался с чужой программой и нашел строчку
if (!(a >= 0) && !(a < 0)) {
...
}
Это совсем не бессмысленно (как с первого взгляда кажется :-)
Всегда == false => бред!
Записан
Hellraiser
Бывалый
Offline
Сообщений: 451
Re: Полезная строка/inline
«
Ответ #2 :
Август 09, 2009, 23:11 »
Абсолютно бессмысленно: блок выполнится только при истинности левой (!(а>=0)) и правой частей (!(a<0)). Применив отрицание, получим левую часть a<0 и правую - a>=0. Какое же значение для одновременного выполнения условий может принимать а, если вся область чисел рассмотрена?
Записан
f-r-o-s-t
Гость
Re: Полезная строка/inline
«
Ответ #3 :
Август 09, 2009, 23:17 »
Наверное все просто и там внутри просто написан код, который никогда не должен выполняться =)
Записан
BlackTass
Гость
Re: Полезная строка/inline
«
Ответ #4 :
Август 09, 2009, 23:35 »
Еще есть вариант что архитектуру разрабатывал человек с неустойчивой психикой и a является экземпляром класса, в котором переопредлены операторы >= и < таким образом, что данное условие в некоторых случаях может выполняться
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Полезная строка/inline
«
Ответ #5 :
Август 09, 2009, 23:36 »
Цитата: Hellraiser от Август 09, 2009, 23:11
Абсолютно бессмысленно: блок выполнится только при истинности левой (!(а>=0)) и правой частей (!(a<0)). Применив отрицание, получим левую часть a<0 и правую - a>=0. Какое же значение для одновременного выполнения условий может принимать а, если вся область чисел рассмотрена?
В том-то и дело, что не вся
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Полезная строка/inline
«
Ответ #6 :
Август 09, 2009, 23:44 »
Цитата: BlackTass от Август 09, 2009, 23:35
Еще есть вариант что архитектуру разрабатывал человек с неустойчивой психикой и a является экземпляром класса, в котором переопредлены операторы >= и < таким образом, что данное условие в некоторых случаях может выполняться
- никаких классов/перегрузок нет.
- писал болгарин, очень сильный программер
- работает на любой платформе и размер в 10 раз меньше чем делать то же по-другому (как, кстати было сделано у меня
)
Записан
spectre71
Гость
Re: Полезная строка/inline
«
Ответ #7 :
Август 10, 2009, 00:05 »
Цитата: Igors от Август 09, 2009, 23:44
- никаких классов/перегрузок нет.
- писал болгарин, очень сильный программер
- работает на любой платформе и размер в 10 раз меньше чем делать то же по-другому (как, кстати было сделано у меня
)
Да...
Особенно прикольно про любую платформу.
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Полезная строка/inline
«
Ответ #8 :
Август 10, 2009, 08:36 »
Если к записи:
!(a >= 0) && !(a < 0)
применить правило деМоргана, то получим:
!((a >= 0) || (a < 0))
(в некоторых случаях может быть нагляднее)
Но смысла записи я всё-равно не понял
Записан
Юра.
Tonal
Гость
Re: Полезная строка/inline
«
Ответ #9 :
Август 10, 2009, 10:14 »
Тип
a
не
float
||
double
часом?
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Полезная строка/inline
«
Ответ #10 :
Август 10, 2009, 16:36 »
Цитата: Tonal от Август 10, 2009, 10:14
Тип
a
не
float
||
double
часом?
Да
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Полезная строка/inline
«
Ответ #11 :
Август 11, 2009, 01:41 »
проверка на -0 штоле?
Доп.
Хотя нет, -0 == 0, так что (a >= 0) вернет true...
«
Последнее редактирование: Август 11, 2009, 11:49 от AX
»
Записан
Tonal
Гость
Re: Полезная строка/inline
«
Ответ #12 :
Август 11, 2009, 11:14 »
Хороший приём.
Записан
spectre71
Гость
Re: Полезная строка/inline
«
Ответ #13 :
Август 11, 2009, 11:30 »
Цитата: Tonal от Август 11, 2009, 11:14
Хороший приём.
Для любого
a
имеющего тип объекты которого принадлежат упорядоченному множеству и операции "<" , ">" "==", ..., правильно определены для данного типа, данное выражение
ВСЕГДА false
.
Соответственно, для любого значения float и double -
ВСЕГДА false
.
Так что ничего полезного в нем нет!
Над вами просто прикололись!
Записан
SASA
Гость
Re: Полезная строка/inline
«
Ответ #14 :
Август 11, 2009, 11:33 »
Цитата: AX от Август 11, 2009, 01:41
проверка на -0 штоле?
Можно по подробнее.
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...