Я приступил к изучению VBA совсем недавно, поэтому, возможно мой вопрос покажется совсем глупым, но нигде четого ответа я не нашел, поэтому решил обратиться сюда.
Задачка следующая:
1.Мне непонятно назначение и правило работы логического оператора Imp — почему результат будет ложным, только тогда, когда правый операнд равен False, хотя таблица истинности выглядит слеюущим образом:
False Imp False = True //правый операнд False! а результат веравно True?!
False Imp True = True
True Imp False = False
True Imp True = True
2. Побайтовый оператор Or работает странным образом:
2 Or 3 //0 , однако MsgBox выдает значение 3! в книге же вообще: 2
4 Or 5 //3 , однако MsgBox выдает значение 5! 4
6 Or 7 //5 , однако MsgBox выдает значение 7! 6
3. Оператор целочисленного деления тоже странноват:
2 Mod 3 //2 в книге пишут: 0
4 Mod 5 //4 0
6 Mod 7 //7 0, с чем я полностью согласен
Буду примного благодарен, если увижу вразумительный ответ что не верно (мой код/книга/глючный компилер или др.)
Здравствуйте, DukeNukem3D, Вы писали:
DND>Я приступил к изучению VBA совсем недавно, поэтому, возможно мой вопрос покажется совсем глупым, но нигде четого ответа я не нашел, поэтому решил обратиться сюда.
DND>Задачка следующая:
DND>1.Мне непонятно назначение и правило работы логического оператора Imp — почему результат будет ложным, только тогда, когда правый операнд равен False, хотя таблица истинности выглядит слеюущим образом:
DND>False Imp False = True //правый операнд False! а результат веравно True?!
DND>False Imp True = True
DND>True Imp False = False
DND>True Imp True = True
В MSDN написано так:
expression1_____expression2_____result
True____________True____________True
True____________False___________False
True____________Null____________Null
False___________True____________True
False___________False___________True
False___________Null____________True
Null____________True____________True
Null____________False___________Null
Null____________Null____________Null
Всё правильно, видно косяк в книге.
DND>2. Побайтовый оператор Or работает странным образом:
DND>2 Or 3 //0 , однако MsgBox выдает значение 3! в книге же вообще: 2
2:::0010
OR
3:::0011
=
3:::0011
DND>4 Or 5 //3 , однако MsgBox выдает значение 5! 4
4:::0100
OR
5:::0101
=
5:::0101
DND>6 Or 7 //5 , однако MsgBox выдает значение 7! 6
6:::0110
OR
7:::0111
=
7:::0111
DND>3. Оператор целочисленного деления тоже странноват:
mod, это оператор получения остатка отделения. В C++ это "%".
DND>Буду примного благодарен, если увижу вразумительный ответ что не верно (мой код/книга/глючный компилер или др.)
Если откровенно, тут был не очень вразумительный вопрос.
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков