From Test-Scratch-Wiki
Обчислення – це визначення чогось за допомогою мтематики. У Скретч вікі можна обчислити певний вираз за допомогою функції парсера #expr
. Цілі числа обмежені 14 цифрами, при виході значення числа за межі застосовується науковий формат (мантиса й порядок).
Застосування
Звернення до цієї функції виглядає як {{#expr:вираз}}. Приміром, обчислення {{#expr:2+2}} дає 4, а обчислення {{#expr:5/0}} дасть помилку (ділення на нуль неможливе); помилку можна відобразити вручну за допомогою шаблону {{помилка}}. Ця функція також приймає вікізмінні: {{#expr:{{CURRENTDAY}}^2}} обчисляюється як 1. Звичайні розпізнавані оператори включають -,+,*,/,^,
дужки та алгебраїчні функції, зокрема sin(), cos(), tan(), ln(), abs(), ceil(), floor(), mod()
. Ірраціональні числа теж представляються у звичайному чи науковому форматі.
Оператори
![]() | У виразах, що використовують булеву алгебру (not, and, or ), 0 відповідає false (хиба), будь-яке інше значення, позитивне чи від'ємне, відповідає true (істина). |
Оператор | Пояснення | Приклад |
---|---|---|
+
|
Додає два операнди, або є унарним оператором | {{#expr:5+5}} = 10 П'ять і п'ять дорівнює десяти. {{#expr:+7}} = 7(Позитивне) сім дає (позитивному) семи.
|
-
|
Віднімає два операнди, або є унарним оператором | {{#expr:10-3}} = 7 Десять мінус три дорівнює семи. {{#expr:+-8}} = -8(Позитивне) негативне вісім дає негативне вісім.
|
*
|
Множить два операнди | {{#expr:2*9}} = 18 Двічі дев'ять буде вісімнадцять.
|
/
|
Ділить два операнди | {{#expr:35/7}} = 5 Тридцять п'ять поділити на сім буде п'ять.
|
^
|
Ступінь: перемножує аргумент із собою кілька разів | {{#expr:4^3}} = 64 Чотири в ступені три буде шістдесят чотири.
|
!=
|
Нерівність | {{#expr:2!=6}} = 1 Два не дорівнює шести (істина). {{#expr:3+2^2!=7}} = 0Три плюс два у ступені два не дорівнює семи (хиба).
|
=
|
Рівність | {{#expr:(4-2)^2=4}} = 1 Чотири мінус два, в квадраті, дорівнює чотирьом (істина). {{#expr:9+3^2=144}} = 0Дев'ять плюс три в квадраті дорівнює сто сорок чотири (хиба).
|
>
|
Відношення "більше" | {{#expr:2>1}} = 1 Два більше ніж один (істина). {{#expr:e>e}} = 0Число Ейлера (2.71828...) більше самого себе (хиба).
|
>=
|
Відношення "не менше" | {{#expr:7>=7}} = 1 Сім не менше семи (істина). {{#expr:-2>=0}} = 0Мінус два не менше нуля (хиба).
|
<
|
Відношення "менше" | {{#expr:1<{{#expr:4/3}}}} = 1 Один менше від чотирьох третіх (1.333...) (істина). {{#expr:abs-50<22}} = 0Абсолютне значення мінус п'ятдесяти менше двадцяти двох (хиба).
|
<=
|
Відношення "не більше" | {{#expr:9<=(8+({{#expr:1/3}}+{{#expr:2/3}}))}} = 1 Дев'ять не більше від суми восьми, одної та двох третин (істина). {{#expr:2<=1}} = 0Два не менше від одиниці (хиба).
|
abs
|
Абсолютне значення | {{#expr:abs-6}} = 6 Абсолютне значення від мінус шести буде плюс шість.
|
acos
|
Арккосинус | {{#expr:acos0.2}} = 1.3694384060046 Арккосинус двох десятих буде приблизно один і чотири десятих радіан. {{#expr:acos(1)/pi*180}} = 0Арккосинус одиниці становить нуль.
|
and
|
Булеве "і" | {{#expr:5 and 4}} = 1 Істина і істина є істина. {{#expr:0 and 0}} = 0Хиба і хиба є хиба.
|
asin
|
Арксинус | {{#expr:asin0.5}} = 0.5235987755983 Арксинус нуль п'яти дорівнює близько половини радіана. {{#expr:asin(1)/pi*180}} = 90Арксинус одиниці становить дев'яносто градусів.
|
atan
|
Арктангенс | {{#expr:atan0.1}} = 0.099668652491162 Арктангенс одної десятої дорівнює приблизно одній десятій радіана. {{#expr:atan(1)/pi*180}} = 45Арктангенс одиниці дорівнює сорока п'яти градусам.
|
ceil
|
Округлення вгору до найближчого цілого | {{#expr:ceil-3.9}} = -3 Округлення вгору мінус трьох і дев'яти десятих дає мінус три.
|
cos
|
Косинус | {{#expr:cos0.8}} = 0.69670670934717 Косинус нуль вісім радіану становить близько нуль семи. {{#expr:cos(3*pi/180)}} = 0.99862953475457Косинус трьох градусів наближається до одиниці.
|
div
|
Еквівалентно діленню | {{#expr:5 div 2}} = 2.5 П'ять поділити на два буде два з половиною.
|
exp
|
Експонента (число Ейлера у ступені аргумента) | {{#expr:exp5}} = 148.41315910258 Число Ейлера у ступіні п'ять дає приблизно тисячу сорок вісім.
|
floor
|
Округлення вниз до найближчого цілого | {{#expr:floor-6.1}} = -7 Округлення вниз мінус шести цілих одної десятої дає мінус сім.
|
ln
|
Натуральний логаритм | {{#expr:ln(e^5)}} = 5 Натуральний логаритм експоненти від п'яти дорівнює п'ять. {{#expr:ln pi/ln10}} = 0.49714987269413Десятковий логаритм числа пі становить приблизно нуль п'ять десятих.
|
mod
|
Залишок від ділення | {{#expr:19 mod 7}} = 5 Залишок від ділення дев'ятнадцяти на сім буде п'ять.
|
not
|
Булеве "ні" | {{#expr:not 4}} = 0 Не істина дорівнює хибі. {{#expr:not 0}} = 1Не хиба дорівнює істині.
|
or
|
Булеве "або" | {{#expr:0 or 0}} = 0 Хиба або хиба буде хиба. {{#expr:0 or 5}} = 1Хиба або істина буде істина.
|
round
|
Округлення числа до найближчого із заданим числом знаків після коми | {{#expr:1.4757027 round 3}} = 1.476 Один і чотири мільйони сімсот п'ятдесят тисяч двадцять сім десятимільйонних округлюється до третього знаку після коми як один і чотириста сімдесят шість тисячних. {{#expr:82978 round -2}} = 83000Вісімдесят дві тисячі дев'ятсот сімдесят вісім округлюється до двох значущих цифр як вісімдесят три тисячі.
|
sin
|
Синус | {{#expr:sin1}} = 0.8414709848079 Синус одного радіана дорівнює приблизно нуль вісім десятих. {{#expr:sin(30*pi/180)}} = 0.5Синус тридцяти градусів дорівнює нуль п'ять.
|
tan
|
Тангенс | {{#expr:tan0.9}} = 1.2601582175503 Тангенс нуль дев'ять радіана дорівнює приблизно один і три десятих. {{#expr:tan(45*pi/180)}} = 1Тангенс сорока п'яти градусів дорівнює одиниці.
|
trunc
|
Відкидання дробової частини числа | {{#expr:trunc-7.8}} = -7 Відкидання дробової частини від мінус семи й восьми десятих дає мінус сім.
|
Отже, виходить,
- {{#expr:(0or1)+1}} = 2
- {{#expr:0or not1}} = 0
- {{#expr:------5}} = 5
- {{#expr:not not 1}} = 1
- {{#expr:not0 or not0 and not1}} = 1
- {{#expr:pi/pi and pi*pi/pi}} = 1
- {{#expr:.}} = 0
- {{#expr:.1}} = 0.1
- {{#expr:e-6}} = -3.281718171541
- {{#expr:1e-6}} = 1.0E-6
Помилки
Помилка виникає, коли:
- Оператору не вистачає параметра.
- {{#expr:2+}} дає Expression error: Missing operand for +.
- Несподіване число чи оператор.
- {{#expr:2 3}} дає Expression error: Unexpected number.
- {{#expr:=}} дає Expression error: Unexpected = operator.
- Нерозпізнане слово чи символ.
- {{#expr:what}} дає Expression error: Unrecognized word "what".
- {{#expr:%}} дає Expression error: Unrecognized punctuation character "%".
- Обчислення математично неможливе.
- {{#expr:1/0}} дає Division by zero.
- {{#expr:ln-1}} дає Invalid argument for ln: <= 0.
Якщо результатом обчислень є завелике число, повертається INF (позитивна нескінченість) або -INF (від'ємна нескінченність).
- {{#expr:1e309}} дає INF
- {{#expr:-1e309}} дає -INF