Приоритет операций

пользователь
Регистрация: 17.06.2015

Из хэлпа:

Логические операции имеют более низкий приоритет, чем операции сравнения

ДИАЛОГ Проверка
ВЫЧИСЛИТЬ                       
кс=ДА; ксп=ДА; ад="АА"; адп="ББ";
ОТЛАДКА("кс="+СТР(кс)+", ксп="+СТР(ксп)+", ад="""+ад+""", адп="""+адп+"""");                 
ОТЛАДКА("кс<>ксп = "+СТР(кс<>ксп)+", ад<>адп = "+СТР(ад<>адп));
ОТЛАДКА("кс<>ксп ИЛИ ад<>адп = "+СТР(кс<>ксп ИЛИ ад<>адп));     
ОТЛАДКА("(кс<>ксп) ИЛИ (ад<>адп) = "+СТР((кс<>ксп) ИЛИ (ад<>адп)));
ОТЛАДКА("");                                                   
кс=ДА; ксп=НЕТ; ад="АА"; адп="ББ";                             
ОТЛАДКА("кс="+СТР(кс)+", ксп="+СТР(ксп)+", ад="""+ад+""", адп="""+адп+"""");
ОТЛАДКА("кс<>ксп = "+СТР(кс<>ксп)+", ад<>адп = "+СТР(ад<>адп));
ОТЛАДКА("кс<>ксп ИЛИ ад<>адп = "+СТР(кс<>ксп ИЛИ ад<>адп));     
ОТЛАДКА("(кс<>ксп) ИЛИ (ад<>адп) = "+СТР((кс<>ксп) ИЛИ (ад<>адп)));
КОНЕЦ                                                           
Результат
кс=ДА, ксп=ДА, ад="АА", адп="ББ"
кс<>ксп = НЕТ, ад<>адп = ДА
кс<>ксп ИЛИ ад<>адп = НЕТ
(кс<>ксп) ИЛИ (ад<>адп) = ДА

кс=ДА, ксп=НЕТ, ад="АА", адп="ББ"
кс<>ксп = ДА, ад<>адп = ДА
кс<>ксп ИЛИ ад<>адп = НЕТ
(кс<>ксп) ИЛИ (ад<>адп) = ДА

Наткнулся, когда написал НЕ (кс=ксп И ад=адп). Выдавало НЕТ при равенстве. 
Изменил на НЕ ((кс=ксп) И (ад=адп)). Заработало.
Пробовал в вышеуказаном стенде. Работает и так, и так, а проге нет. 
Может у меня с логикой что-то не так?
 

модератор
Регистрация: 06.09.2007

Странное поведение воспроизводится только в режиме интерпретатора и только, когда первое сравнение над значениями логического типа.

Если, например, на числа поменять, то эффект пропадает:
кс=1; ксп=1;
...
кс=1; ксп=2;
...

Буду изучать код, разбираться.
Спасибо за подробную информацию.