Макрос шаблона вывода [MATH] предназначен для решения математических или логических конструкций. Освоить его алгоритмы работы можно исследовав следующие примеры:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | конструкция -> результат (пояснение) [MATH]100*100+10000[/MATH] -> 20000 [MATH](100+100)*5[/MATH] -> 1000 (сначала производятся действия в скобках) [MATH]((100+100)*5+1)+7[/MATH] -> 1008 (возможно любое количество вложенных скобок) [MATH](5>3)[/MATH] -> {TRUE} (верно, так как 5 больше 3) [MATH](5<3)[/MATH] -> {FALSE} (ложно, так как 5 больше 3) [MATH](5>=10)[/MATH] -> {TRUE} [MATH](5<3) or (3>=3)[/MATH] -> {TRUE} (верно, так как одно из частей выражения верно и между ними стоит оператор or) [MATH]((5<3) or (3>=3)) and (8=8)[/MATH] -> {TRUE} [MATH]((5<3) or (3>=3)) and (8=9)[/MATH] -> {FALSE} (ложно, так как оператор and требует "верность" обоих частей выражения) [MATH](5-1000)<3[/MATH] -> {TRUE} (верно, так как -995 меньше 3) Для сравнения текста используйте оператор [TEXT]: [MATH][TEXT]a[/TEXT]=[TEXT]a[/TEXT][/MATH] -> {TRUE} (так как текст a=a) [MATH][TEXT]a[/TEXT]<>[TEXT]a[/TEXT][/MATH] -> {FALSE} (так как текст a=a) [MATH]([TEXT]a[/TEXT]=[TEXT]a[/TEXT]) and ([TEXT]b[/TEXT]=[TEXT]b[/TEXT])[/MATH] -> {TRUE} (так как текст a=a и b=b) [MATH]([TEXT]a[/TEXT]=[TEXT]a[/TEXT]) and ([TEXT]b[/TEXT]=[TEXT]k[/TEXT])[/MATH] -> {FALSE} (так как текст a=a и b<>k) Также внутри макроса [MATH] возможно Использование условий! Примечание 1: Вложенность условий в друг-друга не поддерживается! [MATH]if[[выражение]]then[[выводить, если выражение верное]]else[[выводить, если выражение ложное]] [MATH]if[[(5+1)>5]]then[[5+1]]else[[5-1]][/MATH] -> 6 (сработал then, так как 6 больше 5) [MATH]if[[(5+1)>6]]then[[5+1]]else[[5-1]][/MATH] -> 4 (сработал else, так как 6 не больше 6) [MATH]if[[(5+1)>6]]then[[5+1]]if[[(5+1)<=6]]then[[5-1]][/MATH] -> 4 (сработал then из второго условия if) Можно отключать математические обработки в then или else (полезно для вывода текста): [MATH]if[[(5+1)>6]]then[[{domath_off}5+1]]else[[{domath_off}5-1]][/MATH] -> 5-1 (сработал else, так как 6 не больше 6) [MATH]if[[(7+1)>=8]]then[[{domath_off}YES]]else[[{domath_off}NO]][/MATH] -> YES (сработал then, так как 8 больше либо равен 8) [MATH]if[[(5+1)>=6]]then[[5+1]]+if[[(5+1)>=6]]then[[5+1]][/MATH] -> 12 (6 из первого if + 6 из второго if) [MATH]{m_domath_off}if[[(5+1)>=6]]then[[5+1]]+if[[(5+1)>=6]]then[[5+1]][/MATH] -> 6+6 (так как в макросе [MATH] есть оператор отключения математических обработок) Примечание 2: {m_domath_off} используется внутри [MATH] (не внутри if) и распространяет свое действие только на результат [MATH], а оператор {domath_off} используется внутри then или else и распространяет свое действие на then или else (также принудительно включает {m_domath_off})! Примечание 3: Операторы {m_domath_off}, {domath_off} можно использовать только тогда, когда используются условия (if)! |