Вычисление математических и логических конструкций с помощью макроса шаблона вывода [MATH]

Макрос шаблона вывода [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)!
1 Star2 Stars3 Stars4 Stars5 Stars (оценок: 7, средний балл: 5.00)
Loading...
Автор: admin, 8 June 2017
Рубрики: Функции обработки
Tags: , , ,

Последние статьи

css.php