Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.13;
Скачать: CL | DM;

Вниз

Элементарный вопрос по булевской функции   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.063 c
14-1127485001
Lamer@fools.ua
2005-09-23 18:16
2005.11.13
Kyiv Mastak Party


3-1128085178
alpine
2005-09-30 16:59
2005.11.13
Как сделать выборку по полю SUM(SUMMA) ?


1-1129742445
555
2005-10-19 21:20
2005.11.13
Перехват прокручивания скролла мыши.


2-1129720063
Df23
2005-10-19 15:07
2005.11.13
Не понимаю, почему так.


14-1129960960
Starcom
2005-10-22 10:02
2005.11.13
Софтина для печати фотографий размером 3,5 на 4,5 мм!