Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.051 c
1-1130239532
DelphiLexx
2005-10-25 15:25
2005.11.13
МасштабированиеTImahe.Canvas


3-1128152089
FH
2005-10-01 11:34
2005.11.13
Возврат значения поля Identity


1-1130150894
Nait
2005-10-24 14:48
2005.11.13
Как клонировать кнопку?


14-1130106837
Гость_
2005-10-24 02:33
2005.11.13
Памятник клавиатуре. Утащили две кнопки по 60 кг.


14-1130085395
Profi
2005-10-23 20:36
2005.11.13
Посоветуйте / подкиньте идеи.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский