Здесь показаны различия между двумя версиями данной страницы.
| Both sides previous revision Предыдущая версия Следущая версия | Предыдущая версия | ||
|
help:coding [2024/01/24 14:07] aleks_versus [Базовые функции] |
help:coding [2025/10/03 11:43] (текущий) aleks_versus [Порядок записи команд] |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | |||
| [[help:expressions|Назад: Выражения]] | [[help:expressions|Назад: Выражения]] | ||
| Строка 19: | Строка 18: | ||
| <sxh qsp> | <sxh qsp> | ||
| - | {оператор} [значение 1], [значение 2], ..., [значение 18] | + | {оператор} [значение 1], [значение 2], ..., [значение 20] |
| </sxh> | </sxh> | ||
| - | Здесь вместо ''{оператор}'' может и должен стоять любой оператор **QSP** из тех, что перечислены в разделе [[help:keywords_operator|"Ключевые слова. Операторы"]]. Если в команде нет ''{оператор}'', значит на самом деле на этом месте подразумевается **неявный оператор**. | + | Здесь вместо ''%%{оператор}%%'' может и должен стоять любой оператор **QSP** из тех, что перечислены в разделе [[help:keywords_operator|"Ключевые слова. Операторы"]]. Если в команде нет ''%%{оператор}%%'', значит на самом деле на этом месте подразумевается **неявный оператор**. |
| <sxh qsp> | <sxh qsp> | ||
| Строка 28: | Строка 27: | ||
| *pl "Ехал Грека Через Реку" | *pl "Ехал Грека Через Реку" | ||
| addobj "Рак" | addobj "Рак" | ||
| + | |||
| ! а здесь имеет место неявный оператор: | ! а здесь имеет место неявный оператор: | ||
| - | 137+294 | + | 137 + 294 |
| - | func('pow',3,3) | + | func('pow', 3, 3) |
| </sxh> | </sxh> | ||
| - | В качестве значений ''[значение 1]'', ''[значение 2]'', ... ,''[значение 18]'' могут выступать строковые или числовые константы, переменные, значения функций, или целые выражения, а число таких значений зависит от назначения оператора. Например, для оператора ''***PL**'' может быть указано лишь одно значение, а для оператора ''**ADDOBJ**'' от одного до трёх таких значений. Сами значения перечисляются через запятую. | + | В качестве значений ''%%[значение 1]%%'', ''%%[значение 2]%%'', … ,''%%[значение 20]%%'' могут выступать строковые или числовые константы, кортежи, переменные, значения функций, или целые выражения, а число таких значений зависит от назначения оператора. Например, для оператора ''%%*PL%%'' может быть указано лишь одно значение, а для оператора ''%%ADDOBJ%%'' от одного до трёх таких значений. Сами значения перечисляются через запятую. |
| <sxh qsp> | <sxh qsp> | ||
| *pl "Три в кубе это "+func('pow',3,3)+". Да, серьёзно. А ты не верил?" | *pl "Три в кубе это "+func('pow',3,3)+". Да, серьёзно. А ты не верил?" | ||
| + | addobj "Апельсинка", "img/orange.png", 1 | ||
| </sxh> | </sxh> | ||
| Строка 46: | Строка 47: | ||
| </sxh> | </sxh> | ||
| - | **Внимание!** В одной команде не может быть более одного оператора! Равно так же не может быть команды совсем без оператора. Если в вашей команде нет оператора, то вы имеете дело с ''**неявным оператором**''. | + | **Внимание!** В одной команде не может быть более одного оператора! Равно так же не может быть команды совсем без оператора. Если в вашей команде нет оператора, то вы имеете дело с **неявным оператором**. |
| - | Операция присваивания предполагает, что перед именем переменной стоит оператор ''**SET**'', хотя обычно этот оператор опускают, то есть его тоже можно назвать "неявным": | + | Операция присваивания предполагает, что перед именем переменной стоит оператор ''%%SET%%'', хотя обычно этот оператор опускают, то есть его тоже можно назвать "неявным": |
| <sxh qsp> | <sxh qsp> | ||
| Строка 54: | Строка 55: | ||
| </sxh> | </sxh> | ||
| - | Здесь ''**=**'' — это операция присваивания. Не путайте с операцией сравнения **равно**. | + | Здесь ''%%=%%'' — это операция присваивания. Не путайте с операцией сравнения **равно**. |
| ===== Порядок записи команд ===== | ===== Порядок записи команд ===== | ||
| Строка 60: | Строка 61: | ||
| Вот несколько правил и рекомендаций для корректного написания кода: | Вот несколько правил и рекомендаций для корректного написания кода: | ||
| - | * Каждую отдельную команду нужно записывать в отдельной строке. | + | * Каждую отдельную команду нужно записывать в отдельной строке. |
| - | * Отступы (пробелы и символы табуляции) перед командой и после неё игнорируются плеером, поэтому вы можете ставить их в нужном количестве для удобства чтения кода:<sxh qsp> | + | * Отступы (пробелы и символы табуляции) перед командой и после неё игнорируются плеером, поэтому вы можете ставить их в нужном количестве для удобства чтения кода: <sxh qsp> |
| - | *p "<table width=240>" | + | *p "<table width=240>" |
| - | *p "<tr>" | + | *p "<tr>" |
| - | *p "<td>Имя:</td>" | + | *p "<td>Имя:</td>" |
| - | *p "<td>" | + | *p "<td>" |
| - | *p $name | + | *p $name |
| - | *p "</td>" | + | *p "</td>" |
| - | *p "</tr>" | + | *p "</tr>" |
| - | *p "<tr>" | + | *p "<tr>" |
| - | *p "<td>возраст:</td>" | + | *p "<td>возраст:</td>" |
| - | *p "<td>" | + | *p "<td>" |
| - | *p age | + | *p age |
| - | *p "</td>" | + | *p "</td>" |
| - | *p "</tr>" | + | *p "</tr>" |
| - | *p "</table>" | + | *p "</table>" |
| </sxh> | </sxh> | ||
| - | * Пустые строки так же игнорируются плеером, поэтому для лучшей читаемости кода вы можете размещать их между командами:<sxh qsp> | + | * Пустые строки так же игнорируются плеером, поэтому для лучшей читаемости кода вы можете размещать их между командами: <sxh qsp> |
| - | яблоко = 1 | + | яблоко = 1 |
| - | груша = 1 | + | груша = 1 |
| - | + | *pl 'Яблок' + яблоко | |
| - | *pl 'Яблок' + яблоко | + | *pl 'Груш' + груша |
| - | *pl 'Груш' + груша | + | |
| </sxh> | </sxh> | ||
| - | * При необходимости можно написать несколько команд в одну строку. При этом в качестве разделителя команд служит символ "**&**" (не путайте с операцией объединения строк):<sxh qsp> | + | * При необходимости можно написать несколько команд в одну строку. При этом в качестве разделителя команд служит символ "**&**" (не путайте с операцией объединения строк): <sxh qsp> |
| - | яблоко+=1 & *pl "У меня есть <<яблоко>> яблок." & яблоко_взял=1 | + | яблоко+=1 & *pl "У меня есть <<яблоко>> яблок." & яблоко_взял=1 |
| - | </sxh> Без необходимости так делать не рекомендуется, поскольку это ухудшает читаемость кода, а так же повышает вероятность допустить [[help:bag|баг]]. Подобное перечисление команд уместно в гиперссылках:<sxh qsp> | + | </sxh> Без необходимости так делать не рекомендуется, поскольку это ухудшает читаемость кода, а так же повышает вероятность допустить [[glossary:bag|баг]]. Подобное перечисление команд уместно в гиперссылках: <sxh qsp> |
| - | *pl '<a href="EXEC: яблоко += 1 & GT $CURLOC">яблоко</a>' | + | *pl '<a href="EXEC: яблоко += 1 & GT $CURLOC">яблоко</a>' |
| - | </sxh> В данном случае при нажатии на ссылку выполнится код:<sxh qsp> | + | </sxh> В данном случае при нажатии на ссылку выполнится код: <sxh qsp> |
| - | яблоко += 1 | + | яблоко += 1 |
| - | GT $CURLOC | + | GT $CURLOC |
| </sxh> | </sxh> | ||
| - | * Внутреннюю часть многострочных операторов рекомендуется сдвигать вправо 2-4 пробелами (или одним символом табуляции). Это никак не влияет на выполнение, но делает код более читаемым:<sxh qsp> | + | * Внутреннюю часть многострочных операторов рекомендуется сдвигать вправо 2-4 пробелами (или одним символом табуляции). Это никак не влияет на выполнение, но делает код более читаемым: <sxh qsp> |
| - | IF яблоки=0 : | + | IF яблоки=0 : |
| - | ADDOBJ 'Яблоко' | + | ADDOBJ 'Яблоко' |
| - | яблоки = 1 | + | яблоки = 1 |
| - | END | + | END |
| </sxh> | </sxh> | ||
| - | * Крайне редко для повышения читаемости кода приходится разбивать строку на несколько. Такая строка хотя и будет в коде разбита на части, но будет восприниматься плеером, как единая (сообщения об ошибках будут выводится с учётом того, что это одна строка). | + | * Крайне редко для повышения читаемости кода приходится разбивать строку на несколько. Такая строка хотя и будет в коде разбита на части, но будет восприниматься плеером, как единая (сообщения об ошибках будут выводится с учётом того, что это одна строка). Чтобы следующая строка считалась частью текущей, нужно в конце текущей строки дописать ''%% _%%'' (пробел и символ подчёркивания): <sxh qsp> |
| - | Чтобы следующая строка считалась частью текущей, нужно в конце текущей строки дописать ''** _**'' (пробел и символ подчёркивания):<sxh qsp> | + | if a<5 and n-b>4+5+h/7*2 or t=4: p 'TTTTTTTTT' & cla & $f='Text Variable' & goto 'FFFF' |
| - | if a<5 and n-b>4+5+h/7*2 or t=4: p 'TTTTTTTTT' & cla & $f='Text Variable' & goto 'FFFF' | + | </sxh> равнозначно <sxh qsp> |
| - | </sxh> равнозначно <sxh qsp> | + | if a<5 and _ |
| - | if a<5 and _ | + | n-b>4+5+h/7*2 or _ |
| - | n-b>4+5+h/7*2 or _ | + | t=4: p 'TTTTTTTTT' _ |
| - | t=4: p 'TTTTTTTTT' _ | + | & cla & $f='Text Variable' _ |
| - | & cla & $f='Text Variable' _ | + | & goto 'FFFF' |
| - | & goto 'FFFF' | + | </sxh> Вместо разбиения строки рекомендуется видоизменить код так, чтобы разбивать строку не требовалось. **Обратите внимание.** Сочетание символов ''%%_%%'' (пробел и символ подчёркивания) при склеивании строк заменяется на пробел, поэтому такой код: <sxh qsp> |
| - | </sxh> Вместо разбиения строки рекомендуется видоизменить код так, чтобы разбивать строку не требовалось.\\ **Обратите внимание.** Сочетание символов ''** _**'' (пробел и символ подчёркивания) при склеивании строк заменяется на пробел, поэтому такой код:<sxh qsp> | + | t _ |
| - | t _ | + | or _ |
| - | or _ | + | t |
| - | t | + | </sxh> будет эквивалентен такому коду: <sxh qsp> |
| - | </sxh> будет эквивалентен такому коду:<sxh qsp> | + | t or t |
| - | t or t | + | </sxh> Разбивать команду на две строки внутри строковой константы нельзя: <sxh qsp> |
| - | </sxh> Разбивать команду на две строки внутри строковой константы нельзя:<sxh qsp> | + | ! на экране мы увидим две строки текста, а не одну: |
| - | ! на экране мы увидим две строки текста, а не одну: | + | *pl "Это строка, которую я хочу разбить _ |
| - | *pl "Это строка, которую я хочу разбить _ | + | на две строки кода, но при выводе видеть одну строку" |
| - | на две строки кода, но при выводе видеть одну строку" | + | </sxh> |
| + | * В квадратных и круглых скобках допустимы переносы строк для улучшения читаемости кода. Примеры: <sxh qsp> | ||
| + | %test = [ | ||
| + | [ 'key1', 'value1' ], | ||
| + | [ 'key2', 'value2' ], | ||
| + | [ 'key3', 'value3' ], | ||
| + | ] | ||
| + | max( | ||
| + | 'val1', | ||
| + | 'val2', | ||
| + | 'val3', | ||
| + | 'val4' | ||
| + | ) | ||
| + | pl (a + | ||
| + | (b * 2) - | ||
| + | (c + 2) | ||
| + | ) * 2 | ||
| + | $arr[ | ||
| + | 'key1', | ||
| + | 'key2', | ||
| + | $key3 | ||
| + | ] = 'value' | ||
| + | pl $arr['key1', | ||
| + | 'key2', | ||
| + | $key3] | ||
| + | if ($color = "жёлтый" or | ||
| + | $color = "красный" or | ||
| + | $color = "зелёный"): "По-прежнему однострочное условие." | ||
| </sxh> | </sxh> | ||
| - | |||
| ===== Комментарии ===== | ===== Комментарии ===== | ||
| + | Оператор комментария ''%%!%%'' служит для комментирования кода и позволяет оставлять "заметки на полях", которые помогут впоследствии ориентироваться в коде. Всё, что следует за оператором комментария, плеер игнорирует. | ||
| - | Оператор комментария ''**!**'' служит для комментирования кода и позволяет оставлять "заметки на полях", которые помогут впоследствии ориентироваться в коде. Всё, что следует за оператором комментария, плеер игнорирует. | + | Поскольку ''%%!%%'' — это оператор (не путайте с операцией **не равно**), если вы пишете его на одной строке с другими командами, нужно обязательно ставить разделитель ''%%&%%'' (амперсанд) между последней командой и оператором комментария: |
| - | + | ||
| - | Поскольку ''**!**'' — это оператор (не путайте с операцией **не равно**), если вы пишете его на одной строке с другими командами, нужно обязательно ставить разделитель ''**&**'' (амперсанд) между последней командой и оператором комментария: | + | |
| <sxh qsp> | <sxh qsp> | ||
| ! это комментарий в отдельной строке | ! это комментарий в отдельной строке | ||
| яблоки = 0 & ! а это комментарий в строке с командой | яблоки = 0 & ! а это комментарий в строке с командой | ||
| + | </sxh> | ||
| + | |||
| + | Исключением из этого правила является установка комментария после двоеточия в многострочном условии, цикле или действии. В этом случае амперсанд не нужен: | ||
| + | |||
| + | <sxh qsp> | ||
| + | act "Взять яблоко": ! многострочное действие | ||
| + | addobj "Яблоко" | ||
| + | яблоко += 1 | ||
| + | end | ||
| </sxh> | </sxh> | ||
| Строка 142: | Строка 176: | ||
| Комментарии бывают двух видов: однострочные и многострочные. | Комментарии бывают двух видов: однострочные и многострочные. | ||
| - | * Однострочный комментарий начинается от оператора комментария и заканчивается с концом строки:<sxh qsp> | + | * Однострочный комментарий начинается от оператора комментария и заканчивается с концом строки: <sxh qsp> |
| - | ! Однострочный комментарий | + | ! Однострочный комментарий |
| - | ! и это однострочный комментарий | + | ! и это однострочный комментарий |
| - | яблоки = 0 & ! и это однострочный комментарий | + | яблоки = 0 & ! и это однострочный комментарий |
| </sxh> | </sxh> | ||
| - | * Многострочный комментарий так же начинается от оператора комментария и заканчивается с концом строки, однако при использовании кавычек (''**" "**''), апострофов (''**' '**'') или фигурных скобок, он может захватывать так же и те строки, что размещены внутри кавычек, апсотрофов или фигурных скобок:<sxh qsp> | + | * Многострочный комментарий так же начинается от оператора комментария и заканчивается с концом строки, однако при использовании кавычек (''%%" "%%''), апострофов (''%%' '%%'') или фигурных скобок, он может захватывать так же и те строки, что размещены внутри кавычек, апострофов или фигурных скобок: <sxh qsp> |
| - | !'Многострочный | + | !'Многострочный |
| - | комментарий в апострофах' | + | комментарий в апострофах' |
| - | яблоки = 1 | + | яблоки = 1 |
| - | сыр = 5 & ! А здесь "комментарий начинается | + | сыр = 5 & ! А здесь "комментарий начинается |
| - | в той же строке, но" заканчивается 'сильно | + | в той же строке, но" заканчивается 'сильно |
| - | позже'. Во всём виноваты {кавычки и скобки | + | позже'. Во всём виноваты {кавычки и скобки |
| - | }Кстати: | + | } Кстати: |
| - | яблоки=0 | + | яблоки = 0 |
| - | !'Комментарии рекомендуется писать всё-таки | + | !'Комментарии рекомендуется писать всё-таки |
| - | в отдельных строках, а не как бутерброд с "сыром"' | + | в отдельных строках, а не как бутерброд с "сыром"' |
| </sxh> | </sxh> | ||
| ===== Запись констант ===== | ===== Запись констант ===== | ||
| - | Константами в **QSP** можно назвать конкретные числовые или строковые значения. В следующем примере для операторов вывода текста указаны конкретные значения, это и есть константы: | + | Под константами в **QSP** подразумеваются конкретные числовые или строковые значения. Конкретный кортеж (запись значений в квадратных скобках) тоже можно назвать константой. В следующем примере для операторов вывода текста указаны конкретные значения, это и есть константы: |
| <sxh qsp> | <sxh qsp> | ||
| Строка 169: | Строка 203: | ||
| ! вывод на экран строки текста. Эту строку можно назвать константой | ! вывод на экран строки текста. Эту строку можно назвать константой | ||
| *pl "На окошке крошку-мошку ловко ловит лапой кошка" | *pl "На окошке крошку-мошку ловко ловит лапой кошка" | ||
| + | ! выводим на экран кортеж. Кортеж тоже может быть константой | ||
| + | *pl [13, 'unit', 37] | ||
| </sxh> | </sxh> | ||
| Строка 178: | Строка 214: | ||
| </sxh> | </sxh> | ||
| - | Для записи строковых констант (строк) используются символы, отмечающие начало и конец такой строковой константы. Можно использовать кавычки (''**" "**''), апострофы (''**' '**''), или фигурные скобки (''**{ }**''): | + | Для записи строковых констант (строк) используются символы, отмечающие начало и конец такой строковой константы. Можно использовать кавычки (''%%" "%%''), апострофы (''%%' '%%''), или фигурные скобки (''%%{ }%%''): |
| <sxh qsp> | <sxh qsp> | ||
| Строка 188: | Строка 224: | ||
| Более подробно о правилах записи строк в **QSP** можно почитать в разделе [[help:strings|"Строки"]]. | Более подробно о правилах записи строк в **QSP** можно почитать в разделе [[help:strings|"Строки"]]. | ||
| - | ===== Операторы и функции ===== | + | Для записи кортежей используются квадратные скобки: |
| + | <sxh qsp> | ||
| + | *pl ['это кортеж', 'если он ', "не присвоен переменной", "его можно считать константой"] | ||
| + | </sxh> | ||
| + | |||
| + | См. также [[howto:namedconst|"Именованные константы"]]. | ||
| + | |||
| + | ===== Операторы и функции ===== | ||
| **Оператор** - ключевое слово (команда) языка **QSP**, выполняющее какое-либо действие. Оператор может иметь параметры (аргументы), которые задаются выражениями. Операторы не возвращают результат выполнения. | **Оператор** - ключевое слово (команда) языка **QSP**, выполняющее какое-либо действие. Оператор может иметь параметры (аргументы), которые задаются выражениями. Операторы не возвращают результат выполнения. | ||
| Строка 201: | Строка 244: | ||
| ADDOBJ 'ключ','pics/key.png' | ADDOBJ 'ключ','pics/key.png' | ||
| ADDOBJ ('ключ','pics/key.png') | ADDOBJ ('ключ','pics/key.png') | ||
| - | PL ('текст') | + | PL('текст') |
| CLEAR() | CLEAR() | ||
| </sxh> | </sxh> | ||
| - | **Функция** - ключевое слово, которое используется для того, чтобы получить какое-либо значение. Например, сколько предметов игрок несёт в рюкзаке. Для этого, в коде мы указываем функцию, и необходимые для расчёта параметры (аргументы функции). Результат, "посчитанный" этой функцией, подставляется на её место в **выражении**. На языке программистов это звучит так: | + | **Функция** - ключевое слово, которое используется для того, чтобы получить какое-либо значение. Например, сколько предметов игрок несёт в рюкзаке. Для этого, в коде мы указываем функцию, и необходимые для расчёта параметры (аргументы функции). Результат, "посчитанный" этой функцией, подставляется на её место в **выражении**. На языке программистов это звучит так: **"мы вызвали функцию, и функция вернула нам значение"**. |
| - | + | ||
| - | "мы вызвали функцию, и функция вернула нам значение". | + | |
| Как правило, при вызове функции состояние игры не меняется. Примеры вызовов функций: | Как правило, при вызове функции состояние игры не меняется. Примеры вызовов функций: | ||
| Строка 222: | Строка 263: | ||
| <sxh qsp> | <sxh qsp> | ||
| *pl "Случайный предмет: "+$getobj(rand(1,countobj)) | *pl "Случайный предмет: "+$getobj(rand(1,countobj)) | ||
| - | bcolor=rgb(func('hex_in_dec','ff'),func('hex_in_dec','34'),func('hex_in_dec','67')) | + | bcolor = rgb(func('hex_in_dec','ff'),func('hex_in_dec','34'),func('hex_in_dec','67')) |
| </sxh> | </sxh> | ||
| - | При использовании функций, возвращающих текстовое значение, настоятельно рекомендуется прописывать перед именем функции символ ''**$**'' для улучшения читаемости кода. | + | При использовании функций, возвращающих текстовое значение, настоятельно рекомендуется прописывать перед именем функции символ ''%%$%%'' для улучшения читаемости кода. |
| Максимальное число аргументов для операторов и функций в **QSP**: 20. | Максимальное число аргументов для операторов и функций в **QSP**: 20. | ||
| Строка 231: | Строка 272: | ||
| ===== Базовые функции ===== | ===== Базовые функции ===== | ||
| - | * ''**$QSPVER**'' - возвращает версию библиотеки плеера в формате "X.Y.Z Player". Например, классический плеер версии 5.8.0. возвращает значение "5.8.0 (classic)", а qSpider просто "5.8.0". Пример использования:<sxh qsp> | + | * ''%%$QSPVER%%'' - возвращает версию библиотеки плеера в формате "X.Y.Z Player". Например, классический плеер версии 5.9.0. возвращает значение "5.9.0 (classic)", а qSpider просто "5.9.0". Пример использования: <sxh qsp> |
| - | if $QSPVER<'5.8.0': | + | if $QSPVER<'5.9.0': |
| - | *pl "Ваша версия плеера не подходит для данной игры. Установите плеер версии 5.8.0." | + | *pl "Ваша версия плеера не подходит для данной игры. Установите плеер версии 5.9.0." |
| - | end | + | end |
| - | </sxh>Так же данная функция может возвращать платформу, на которой запущена игра, если указать аргументом значение "platform":<sxh qsp>$QSPVER('platform')</sxh> | + | </sxh> Так же данная функция может возвращать платформу, на которой запущена игра, если указать аргументом значение "platform": <sxh qsp> |
| - | * ''**$CURLOC**'' - возвращает название текущей локации. | + | $QSPVER('platform') |
| + | </sxh> | ||
| ==== Математические функции ==== | ==== Математические функции ==== | ||
| - | * ''**RAND(**[#выр1]**,**[#выр2]**)**'' - возвращает случайное число между числами [#выр] и [#выр2]. Параметр [#выр2] может отсутствовать, при этом он принимается равным единице (**1**). Примеры:<sxh qsp> | + | * ''RAND([#выр1],[#выр2],[#мода])'' - возвращает случайное число между числами ''[#выр]'' и ''[#выр2]''. |
| - | RAND(1,4) & ! вернёт случайное значение от 1 до 4 | + | * Параметр ''[#мода]'' позволяет указать число, которое должно выпадать более часто, чем остальные. При этом распределение частоты выпадения будет плавно изменяться для всех остальных чисел. Подробнее о распределении читайте в статье [[howto:randomize|Третий параметр RAND]]. |
| - | RAND(4,1) & ! вернёт случайное значение от 1 до 4 | + | * Если 3й параметр не указан, то функция возвращает случайное число в заданном диапазоне с равномерным/равновероятным распределением чисел. |
| - | RAND(1000) & ! вернёт случайное значение от 1 до 1000 | + | * Параметр ''[#выр2]'' может отсутствовать, при этом он принимается равным единице (**''1''**). |
| - | RAND 1000 & ! вернёт случайное значение от 1 до 1000 | + | * Примеры: <sxh qsp> |
| + | RAND(1,4) & ! вернёт случайное значение от 1 до 4 | ||
| + | RAND(4,1) & ! вернёт случайное значение от 1 до 4 | ||
| + | RAND(1000) & ! вернёт случайное значение от 1 до 1000 | ||
| + | RAND 1000 & ! вернёт случайное значение от 1 до 1000 | ||
| + | |||
| + | x = RAND(1, 1000, 500) & ! чаще будет выпадать 500 | ||
| + | x = RAND(1, 1000, 1) & ! чаще будет выпадать 1 | ||
| + | x = RAND(1, 1000, 1000) & ! чаще будет выпадать 1000 | ||
| + | x = RAND(-1000, 0, -500) & ! чаще будет выпадать -500 | ||
| + | x = RAND(1, 1000, 5000) & ! чаще будет выпадать 1000 | ||
| + | x = RAND(-1000, -100, -5000) & ! чаще будет выпадать -1000 | ||
| </sxh> | </sxh> | ||
| - | * ''**RND**'' - возвращает случайное значение от 1 до 1000. | + | * ''RND'' - возвращает случайное значение от 1 до 1000. |
| - | * ''**MAX(**[выр1]**,**[выр2]**,** …**)**'' - возвращает максимальное из значений выражений-аргументов. Если передан один аргумент, то считается, что указано имя массива:<sxh qsp> | + | * ''MAX([выр1],[выр2], ...)'' - возвращает максимальное из значений выражений-аргументов. Если передан один аргумент, то считается, что указано имя массива: <sxh qsp> |
| - | MAX(1,2,5,2,0) &! вернёт 5 | + | MAX(1,2,5,2,0) &! вернёт 5 |
| - | MAX(a,b,c) &! вернёт максимальное из значений переменных a,b,c | + | MAX(a,b,c) &! вернёт максимальное из значений переменных a,b,c |
| - | MAX('aa','ab','zz') &! вернёт 'zz' | + | MAX('aa','ab','zz') &! вернёт 'zz' |
| - | MAX('a') &! вернёт максимальное из числовых значений элементов массива "a" | + | MAX('a') &! вернёт максимальное из числовых значений элементов массива "a" |
| - | MAX('$b') &! вернёт максимальное из текстовых значений элементов массива "$b" | + | MAX('$b') &! вернёт максимальное из текстовых значений элементов массива "$b" |
| </sxh> | </sxh> | ||
| - | * ''**MIN(**[выр1]**,**[выр2]**,** …**)**'' - возвращает минимальное из значений выражений-аргументов. Если передан один аргумент, то считается, что указано имя массива:<sxh qsp> | + | * ''%%MIN([выр1],[выр2], …)%%'' - возвращает минимальное из значений выражений-аргументов. Если передан один аргумент, то считается, что указано имя массива: <sxh qsp> |
| - | MIN(1,2,5,2,0) &! вернёт 0 | + | MIN(1,2,5,2,0) &! вернёт 0 |
| - | MIN(a,b,c) &! вернёт минимальное из значений переменных a,b,c | + | MIN(a,b,c) &! вернёт минимальное из значений переменных a,b,c |
| - | MIN('aa','ab','zz') &! вернёт 'aa' | + | MIN('aa','ab','zz') &! вернёт 'aa' |
| - | MIN('a') &! вернёт минимальное из числовых значений элементов массива "a" | + | MIN('a') &! вернёт минимальное из числовых значений элементов массива "a" |
| - | MIN('$b') &! вернёт минимальное из текстовых значений элементов массива "$b" | + | MIN('$b') &! вернёт минимальное из текстовых значений элементов массива "$b" |
| </sxh> | </sxh> | ||
| [[help:cycle|Вперёд: Циклы]] | [[help:cycle|Вперёд: Циклы]] | ||
| - | |||