Операции
Список операций для плеера версии 5.8.0 в порядке возрастания приоритета:
OR
AND
NO
=
,<
,>
,!
,<>
,<=
,>=
,=<
,=>
(операции сравнения)OBJ
,LOC
&
(конкатенация)+
,-
(сложение, вычитание)MOD
*
,/
(умножение, деление)-
(унарный минус)([выр])
- выражения в скобках
Операции записанные на одной строке имеют одинаковый приоритет и выполняются по порядку слева направо, если присутствуют на одном уровне в выражении.
Операции в скобках имеют приоритет перед другими операциями.
Вычисление значений функций имеет приоритет перед всеми операциями.
Верным считается числовое выражение, значение которого отлично от 0
. При значении 0
выражение считается ложным. Для значения "верно" настоятельно рекомендуется использовать 1
, т.к. только в этом случае будут адекватно работать побитовые операторы в роли логических.
В более старых версиях плееров порядок приоритета был иной.
&
OR
AND
OBJ
,LOC
,NO
=
,<
,>
,!
,<>
,<=
,>=
,=<
,=>
+
,-
MOD
*
,/
+
,-
(унарные)
*
(умножение)
*
— арифметическая операция "УМНОЖЕНИЕ". Перемножает два числа. Общая запись:
[#выражение 1] * [#выражение 2]
, где [#выражение 1]
и [#выражение 2]
— два любых числовых значения, или выражения. Результатом работы операции является произведение двух чисел.
Примеры:
2 * 2 & ! вернёт 4
4 * 2 & ! вернёт 8
17 * 5 & ! вернёт 85
37 * 100 & ! вернёт 3700
*=
(умножение-присвоение)
*=
— операция "УМНОЖЕНИЕ-ПРИСВОЕНИЕ". Сочетает в себе операции присвоения и умножения. Умножает значение указанной переменной на определённое число и возвращает результат той же переменной. Общая запись:
ИМЯ_МАССИВА *= [#выражение 1]
, где ИМЯ_МАССИВА
— это название переменной (без кавычек), или название массива с указанием ячейки, а [#выражение 1]
— любое числовое значение или выражение.
Аналогично конструкции:
ИМЯ_МАССИВА = ИМЯ_МАССИВА*[#выражение 1]
Пример:
! мы заменяем две операции: присвоения и умножение
warrior = warrior * 2
! на умножение-присвоение (действие аналогично)
warrior *= 2
+
(сложение)
+
— арифметическая операция "СЛОЖЕНИЕ". Суммирует два числа. Общая запись:
[выражение 1]+[выражение 2]
, где [выражение 1]
и [выражение 2]
— два любых значения, или выражения. Результатом работы операции является сумма двух значений.
Примеры:
2+2 & ! вернёт 4
4+2 & ! вернёт 6
17+5 & ! вернёт 22
37+100 & ! вернёт 137
Можно "суммировать" и текстовые значения. В этом случае операция работает как конкатенация:
! на экран будет выведена строка "2627"
"26"+"27"
+=
(сложение-присвоение)
+=
, (инкремент)
— операция "ИНКРЕМЕНТ", сочетающая в себе операции присвоения и сложения. Прибавляет к текущему значению переменной указанное значение. Общая запись:
ИМЯ_МАССИВА += [выражение 1]
, где ИМЯ_МАССИВА
— это название переменной (без кавычек), или название массива с указанием ячейки, а [выражение 1]
— любое значение или выражение.
Аналогично конструкции:
ИМЯ_МАССИВА = ИМЯ_МАССИВА + [выражение 1]
Пример:
! мы заменяем две операции: присвоения и сложения
warrior = warrior + 15
! на инкремент (действие аналогично)
warrior += 15
Возможно так же проводить инкремент со строковыми значениями, работает как конкатенация:
$text += " (может быть тут что-то написано)"
Инкремент — во многих языках программирования это операция, которая выполняет увеличение переменной. Чаще всего под инкрементом подразумевается увеличение переменной на 1
.
-
(вычитание)
-
— арифметическая операция "ВЫЧИТАНИЕ". Вычитает одно число из другого. Общая запись:
[выражение 1] - [выражение 2]
, где [выражение 1]
и [выражение 2]
— два любых значения, или выражения. Результатом работы операции является разность двух значений.
Примеры:
2 - 2 & ! вернёт 0
4 - 2 & ! вернёт 2
17 - 5 & ! вернёт 12
37 - 100 & ! вернёт -63
-=
(вычитание-присвоение)
-=
, (декремент)
— операция "ДЕКРЕМЕНТ", сочетающая в себе операции присвоения и вычитания. Вычитает из текущего значения переменной указанное значение. Общая запись:
ИМЯ_МАССИВА -= [#выражение 1]
, где ИМЯ_МАССИВА
— это название переменной (без кавычек), или название массива с указанием ячейки, а [#выражение 1]
— любое числовое значение или выражение.
Аналогично конструкции:
ИМЯ_МАССИВА = ИМЯ_МАССИВА - [#выражение 1]
Пример:
! мы заменяем две операции: присвоения и вычитания
warrior = warrior - 15
! на декремент (действие аналогично)
warrior -= 15
Декремент — во многих языках программирования это операция, которая выполняет уменьшение переменной. Чаще всего под декрементом подразумевается уменьшение переменной на 1
.
-
(унарный минус)
унарный -
— унарная операции. Общая запись:
-[#выражение]
, где [#выражение]
— любое числовое значение или выражение. Результатом работы этой операций является то же само е значение, только с противоположным знаком.
Примеры:
-2 & ! вернёт -2
-(3+6) & ! вернёт -9
-(-27) & ! вернёт 27
В более ранних версиях плеера существовала операция "унарный плюс":
+(6+7)
По сути, она ничего не делала, поэтому было решено от неё отказаться.
/
(деление)
/
— арифметическая операция "ДЕЛЕНИЕ". Общая запись:
[#выражение 1] / [#выражение 2]
, где [#выражение 1]
и [#выражение 2]
— два любых числовых значения, или выражения. Значение [#выражение 2]
не должно быть равным нулю. Результатом работы операции является частное от деления двух чисел.
Поскольку QSP поддерживает только целочисленные значения, деление производится так же нацело, без округления, с отсечением дробной части.
Примеры:
2 / 2 & ! вернёт 1
4 / 2 & ! вернёт 2
17 / 5 & ! вернёт 3
37 / 100 & ! вернёт 0
/=
(деление-присвоение)
/=
— операция "ДЕЛЕНИЕ-ПРИСВОЕНИЕ". Сочетает в себе операции присвоения и деления. Делит значение указанной переменной на определённое число и возвращает результат той же переменной. Общая запись:
ИМЯ_МАССИВА /= [#выражение 1]
, где ИМЯ_МАССИВА
— это название переменной (без кавычек), или название массива с указанием ячейки, а [#выражение 1]
— любое числовое значение или выражение.
Аналогично конструкции:
ИМЯ_МАССИВА = ИМЯ_МАССИВА / [#выражение 1]
Пример:
! мы заменяем две операции: присвоения и деления
warrior = warrior / 2
! на деление-присвоение (действие аналогично)
warrior /= 2
<
(меньше)
<
— операция сравнения "МЕНЬШЕ". Общая запись:
[выражение_1] < [выражение_2]
Если значение выражения [выражение_1]
меньше значения выражения [выражение_2]
операция вернёт 1
, в противном случае вернёт 0
. Иными словами: верно, если первое меньше второго.
Примеры:
! 2 меньше 4 — вернёт 1
2 < 4
! 5 не меньше 5 — вернёт 0
5 < 5
! 7 не меньше 3 — вернёт 0
7 < 3
Сравнивать можно и текстовые значения, при этом символы сравниваются поочерёдно, и большим считается символ, стоящий ближе к концу алфавита.
"a" < "z" & ! верно
"z" < "zz" & ! верно
"aaaaaa" < "z" & ! верно
<=
(меньше либо равно)
<=
— операция сравнения "МЕНЬШЕ ЛИБО РАВНО". Общая запись:
[выражение_1] <= [выражение_2]
Если значение выражения [выражение_1]
меньше либо равно значению выражения [выражение_2]
операция вернёт 1
, в противном случае вернёт 0
. Иными словами: верно, если первое меньше второго, либо равно ему.
Примеры:
! 2 меньше 4 — вернёт 1
2 <= 4
! 5 равно 5 — вернёт 1
5 <= 5
! 7 не меньше трёх и не равно ему
7 <= 3 & ! вернёт 0
Аналогично "=<
" и конструкциям:
([выражение_1] < [выражение_2]) or ([выражение_1] = [выражение_2])
no [выражение_1] > [выражение_2]
Сравнивать можно и текстовые значения, при этом символы сравниваются поочерёдно, и большим считается символ, стоящий ближе к концу алфавита.
"a" <= "z" & ! верно
"z" <= "zz" & ! верно
"aaaaaa" <= "z" & ! верно
"z" <= "z" & ! верно
<>
(не равно)
<>
— операция сравнения "НЕ РАВНО". Общая запись:
[выражение_1] <> [выражение_2]
Если значение выражения [выражение_1]
не равно значению выражения [выражение_2]
операция в ернёт 1
, в противном случае вернёт 0
. Иными словами: верно, если выражения не равны.
Аналогично "!
", или конструкции:
no [выражение_1] = [выражение_2]
Примеры:
! 2 не равно 4 — вернёт 1
2 <> 4
! 5 равно 5 — вернёт 0
5 <> 5
Можно сравнивать и строковые значения:
"abc" <> "def" & ! вернёт 1
"abc" <> "abc" & ! вернёт 0
=
(равно)
=
— операция сравнения "РАВНО". Общая запись:
[выражение_1] = [выражение_2]
Если значение выражения [выражение_1]
равно значению выражения [выражение_2]
операция вернёт 1
, в противном случае вернёт 0
. Иными словами: верно, если выражения равны.
Аналогично конструкции:
no [выражение_1] <> [выражение_2]
Примеры:
! 2 не равно 4 — вернёт 0
(2 = 4)
! 5 равно 5 — вернёт -1
(5 = 5)
Можно сравнивать и строковые значения:
("abc" = "def") & ! вернёт 0
("abc" = "abc") & ! вернёт -1
Не путайте с операцией присвоения.
=
(присвоение)
=
— операция присвоения. Общая запись:
ИМЯ_МАССИВА = [значение]
, где ИМЯ_МАССИВА
— название переменной (не в кавычках), или название массива с указанием ячейки (не в кавычках), [значение]
— любое значение или выражение.
Примеры:
! переменной BOX присваиваем значение 13
BOX = 13
! переменной $text присваиваем значение "Строка текста"
$text = "Строка текста"
! нулевой ячейке массива day присваивается значение 365
day[0] = 365
Имена строковых переменных/массивов должны начинаться с символа $
.
Операцию присвоения не следует путать с операцией сравнения "РАВНО", хотя они очень похожи:
! операция присвоения
alukard = 1000
! операция сравнения
(alukard = 1000)
В этом случае плеер понимает, что внутри скобок находи тся операция сравнения, потому что скобки используются для записи выражений. Запись:
"abc" = "abc"
синтаксически ошибочна. Плеер выдаст ошибку: недопустимое название переменной/массива. Так как в этом случае он не понимает, что это операция сравнения.
Если перед операцией сравнения стоит оператор, скобки можно не писать:
if alukard = 150: *pl "Не хватает сил"
=<
(равно либо меньше)
=<
— операция сравнения "РАВНО ЛИБО МЕНЬШЕ". Общая запись:
[выражение_1] =< [выражение_2]
Если значение выражения [выражение_1]
меньше либо равно значению выражения [выражение_2]
операция вернёт 1
, в противном случае вернёт 0. Иными словами: верно, если первое меньше второго, либо равно ему.
Примеры:
! 2 меньше 4 — вернёт 1
2 =< 4
! 5 равно 5 — вернёт 1
5 =< 5
! 7 не меньше трёх и не равно ему
7 =< 3 & ! вернёт 0
Аналогично "<=
" и конструкциям:
([выражение_1] < [выражение_2]) or ([выражение_1] = [выражение_2])
no [выражение_1] > [выражение_2]
Сравнивать можно и текстовые значения, при этом символы сравниваются поочерёдно, и большим считается символ, стоящий ближе к концу алфавита.
"a" =< "z" & ! верно
"z" =< "zz" & ! верно
"aaaaaa" =< "z" & ! верно
"z" =< "z" & ! верно
Данная запись, хотя и допустима в QSP, к использованию не рекомендуется. Используйте "<=
(меньше либо равно)" вместо этого.
=>
(равно или больше)
=>
— операция сравнения "РАВНО ИЛИ Б ОЛЬШЕ". Общая запись:
[выражение_1] => [выражение_2]
Если значение выражения [выражение_1]
больше либо равно значению выражения [выражение_2]
операция вернёт 1
, в противном случае вернёт 0. Иными словами: верно, если первое больше второго, либо равно ему.
Примеры:
! 2 не меньше и не равно 4 — вернёт 0
2 => 4
! 5 равно 5 — вернёт 1
5 => 5
! 7 больше 3
7 => 3 & ! вернёт 1
Аналогично ">=
" и конструкциям:
([выражение_1] > [выражение_2]) or ([выражение_1] = [выражение_2])
no [выражение_1] < [выражение_2]
Сравнивать можно и текстовые значения, при этом символы сравниваются поочерёдно, и большим считается символ, стоящий ближе к концу алфавита.
"z" => "a" & ! верно
"zz" => "z" & ! верно
"z" => "aaaaaa" & ! верно
"z" => "z" & ! верно
Данная запись, хотя и допустима в QSP, к использованию не рекомендуется. Используйте ">=
(больше либо равно)" вместо этого.
>
(больше)
>
— операция сравнения "БОЛЬШЕ". Общая запись:
[выражение_1] > [выражение_2]
Если значение выражения [выражение_1]
больше значения выражения [выражение_2]
операция вернёт 1
, в противном случае вернёт 0
. Иными словами: верно, если первое больше второго.
Примеры:
! 2 не больше 4 — вернёт 0
2 > 4
! 5 не больше 5 — вернёт 0
5 > 5
! 7 больше 3 — вернёт 1
7 > 3
Сравнивать можно и текстовые значения, при этом символы сравниваются поочерёдно, и большим считается символ, стоящий ближе к концу алфавита.
"z" > "a" & ! верно
"zz" > "z" & ! верно
"z" > "aaaaaa" & ! верно
>=
(больше либо равно)
>=
— операция сравнения "БОЛЬШЕ ЛИБО РАВНО". Общая запись:
[выражение_1] >= [выражение_2]
Если значение выражения [выражение_1]
больше либо равно значению выражения [выражение_2]
операция вернёт 1
, в противном случае вернёт 0. Иными словами: верно, если первое больше второго, либо равно ему.
Примеры:
! 2 не меньше и не равно 4 — вернёт 0
2 >= 4
! 5 равно 5 — вернёт 1
5 >= 5
! 7 больше 3
7 >= 3 & ! вернёт 1
Аналогично "=>
" и конструкциям:
([выражение_1] > [выражение_2]) or ([выражение_1] = [выражение_2])
no [выражение_1] < [выражение_2]
Сравнивать можно и текстовые значения, при этом символы сравниваются поочерёдно, и большим считается символ, стоящий ближе к концу алфавита.
"z" >= "a" & ! верно
"zz" >= "z" & ! верно
"z" >= "aaaaaa" & ! верно
"z" >= "z" & ! верно
!
(не равно)
!
— операция сравнения "НЕ РАВНО". Общая запись:
[выражение_1]![выражение_2]
Если значение выражения [выражение_1]
не равно значению выражения [выражение_2]
операция вернёт 1
, в противном случае вернёт 0
. Иными словами: верно, если выражения не равны.