Форум: "Начинающим";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];
ВнизЭлементарный вопрос по булевской функции Найти похожие ветки
← →
Eugene_T (2005-10-21 13:56) [0]FruiteType - переменная
FRUITE_APPLE = 2
Объясните суть работы следующей функции, что будет возвращать функция при каких значениях и почему.
function GetIsApple: Boolean;
begin
Result := FruiteType and FRUITE_APPLE = FRUITE_APPLE;
end;
← →
Jeer © (2005-10-21 14:00) [1]Начни со старшинства операций и пройдись по ним в нужном порядке.
Кроме того, не сказано, что за тип переменной FruiteType - может string ?
← →
Digitman © (2005-10-21 14:00) [2]
> при каких значениях
в дан.случае - по барабану при каких.
← →
umbra © (2005-10-21 14:09) [3]
> function GetIsApple: Boolean
Эта функция попределяет, имеет ли переменная FruiteType значение FRUITE_APPLE. Может, так понятней?Result := (FruiteType and FRUITE_APPLE) = FRUITE_APPLE;
← →
Eugene_T (2005-10-21 14:10) [4]FruiteType: Byte
← →
Eugene_T (2005-10-21 14:15) [5]2Umbra
Почему тогда не сделать
Result := FruiteType = FRUITE_APPLE ?
← →
Jeer © (2005-10-21 14:24) [6]Eugene_T (21.10.05 14:15) [5]
Это ты у нас спрашиваешь ?
← →
clickmaker © (2005-10-21 14:25) [7]
> Почему тогда не сделать
> Result := FruiteType = FRUITE_APPLE ?
Ты у нас спрашиваешь? Тебе виднее, как сделать. Может у тебя там фрукт мутант, помесь яблока с апельсином
← →
begin...end © (2005-10-21 14:26) [8]> umbra © (21.10.05 14:09) [3]
> Эта функция попределяет, имеет ли переменная FruiteType
> значение FRUITE_APPLE.
?!
← →
Eugene_T (2005-10-21 14:27) [9]Я пытаюсь разобраться в чём смысл именно такого постоения условия
← →
clickmaker © (2005-10-21 14:28) [10]
> Eugene_T (21.10.05 14:27) [9]
> Я пытаюсь разобраться в чём смысл именно такого постоения
> условия
про побитовые операции читал?
← →
Eugene_T (2005-10-21 14:29) [11]2clickmaker
Это не я придумал :)
Не могу разобраться
← →
clickmaker © (2005-10-21 14:31) [12]
> Eugene_T (21.10.05 14:29) [11]
почитай в хелпе про побитовые операции
← →
Eugene_T (2005-10-21 14:31) [13]
> про побитовые операции читал?
Нет. Можно поподробнее?
← →
Zeqfreed © (2005-10-21 14:36) [14]Eugene_T (21.10.05 14:27) [9]
Обычно так реализуются флаговые типы (незнаю как правильно назвать). Переменная такого типа рассматривается как набор флагов (числовые значения - степени двойки). Добавление флага осуществляется через оператор or (например, Flags := Flags or SomeFlag включает SomeFlag во Flags). Исключение флага - and not (Flags := Flags and not SomeFlag), проверка присутствия флага в переменной - and (if Flags and SomeFlag = SomeFlag). Для понимания того, как все это работает читай про логические операции.
← →
umbra © (2005-10-21 14:39) [15]Эта функция определяет, является ли FruiteType яблоком. Пусть
FruiteType = 6
. Тогда(FruiteType and FRUITE_APPLE) = FRUITE_APPLE
, т.е. 2. Скажем, FruiteType - яблоко конкретного сорта, белый налив там, или яблоко-груша
← →
ShiFT (2005-10-21 14:39) [16]Двоичная математика, работа с битовой логикой
http://www.podgoretsky.com/cgi-bin/dlcounter/npscnt?file=http://podgoretsky.com/ftp/Docs/Delphi/Podgoretsky/bits.zip&fil e_id=app-bits
← →
Eugene_T (2005-10-21 15:36) [17]Благодарю.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.043 c