Инструменты пользователя

Инструменты сайта


help:coding

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Both sides previous revision Предыдущая версия
Следущая версия
Предыдущая версия
help:coding [2023/01/01 10:40]
aleks_versus полностью переписан
help:coding [2024/12/01 10:29] (текущий)
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>​ Вместо разбиения строки рекомендуется видоизменить код так, чтобы разбивать строку не требовалось. +t _ 
- **Обратите внимание.** Сочетание символов ​"​** ​_**" ​(пробел и символ подчёркивания) при склеивании строк заменяется на пробел,​ поэтому такой код:<​sxh qsp> +or _ 
- t _ +
- or _ +</​sxh>​ будет эквивалентен такому коду: <sxh qsp> 
-+t or t 
-</​sxh>​ будет эквивалентен такому коду:<​sxh qsp> +</​sxh>​ Разбивать команду на две строки внутри строковой константы нельзя:​ <sxh qsp> 
- t or t +! на экране мы увидим две строки текста,​ а не одну: 
-</​sxh>​ Разбивать команду на две строки внутри строковой константы нельзя:<​sxh qsp> +*pl "​Это строка,​ которую я хочу разбить _ 
- ! на экране мы увидим две строки текста,​ а не одну: +на две строки кода, но при выводе видеть одну строку"​
- *pl "​Это строка,​ которую я хочу разбить _ +
- на две строки кода, но при выводе видеть одну строку"​+
 </​sxh>​ </​sxh>​
  
 ===== Комментарии ===== ===== Комментарии =====
-[:​kommentarii] 
  
-Оператор комментария ''​**!**''​ служит для комментирования кода и позволяет оставлять "​заметки на полях",​ которые помогут впоследствии ориентироваться в коде. Всё, что следует за оператором комментария,​ плеер игнорирует.+Оператор комментария ''​%%!%%''​ служит для комментирования кода и позволяет оставлять "​заметки на полях",​ которые помогут впоследствии ориентироваться в коде. Всё, что следует за оператором комментария,​ плеер игнорирует.
  
-Поскольку ''​**!**''​ — это оператор (не путайте с операцией **не равно**),​ если вы пишете его на одной строке с другими командами,​ нужно обязательно ставить разделитель ''​**&**''​ (амперсанд) между последней командой и оператором комментария:​+Поскольку ''​%%!%%''​ — это оператор (не путайте с операцией **не равно**),​ если вы пишете его на одной строке с другими командами,​ нужно обязательно ставить разделитель ''​%%&%%''​ (амперсанд) между последней командой и оператором комментария:​
  
 <sxh qsp> <sxh qsp>
 ! это комментарий в отдельной строке ! это комментарий в отдельной строке
 яблоки = 0 & ! а это комментарий в строке с командой яблоки = 0 & ! а это комментарий в строке с командой
 +</​sxh>​
 +
 +Исключением из этого правила является установка комментария после двоеточия в многострочном условии,​ цикле или действии. В этом случае амперсанд не нужен:
 +
 +<sxh qsp>
 +act "​Взять яблоко":​ ! многострочное действие
 +    addobj "​Яблоко"​
 +    яблоко += 1
 +end
 </​sxh>​ </​sxh>​
  
Строка 143: Строка 149:
 Комментарии бывают двух видов: однострочные и многострочные. Комментарии бывают двух видов: однострочные и многострочные.
  
- * Однострочный комментарий начинается от оператора комментария и заканчивается с концом строки:<​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>
Строка 170: Строка 176:
 ! вывод на экран строки текста. Эту строку можно назвать константой ! вывод на экран строки текста. Эту строку можно назвать константой
 *pl "На окошке крошку-мошку ловко ловит лапой кошка"​ *pl "На окошке крошку-мошку ловко ловит лапой кошка"​
 +! выводим на экран кортеж. Кортеж тоже может быть константой
 +*pl [13, '​unit',​ 37]
 </​sxh>​ </​sxh>​
  
Строка 179: Строка 187:
 </​sxh>​ </​sxh>​
  
-Для записи строковых констант (строк) используются символы,​ отмечающие начало и конец такой строковой константы. Можно использовать кавычки (''​**" "**''​),​ апострофы (''​**' '**''​),​ или фигурные скобки (''​**{ }**''​):​+Для записи строковых констант (строк) используются символы,​ отмечающие начало и конец такой строковой константы. Можно использовать кавычки (''​%%" "%%''​),​ апострофы (''​%%' '%%''​),​ или фигурные скобки (''​%%{ }%%''​):​
  
 <sxh qsp> <sxh qsp>
Строка 188: Строка 196:
  
 Более подробно о правилах записи строк в **QSP** можно почитать в разделе [[help:​strings|"​Строки"​]]. Более подробно о правилах записи строк в **QSP** можно почитать в разделе [[help:​strings|"​Строки"​]].
 +
 +Для записи кортежей используются квадратные скобки:​
 +
 +<sxh qsp>
 +*pl ['​это кортеж',​ '​если он ', "не присвоен переменной",​ "​его можно считать константой"​]
 +</​sxh>​
 +
 +См. также [[howto:​namedconst|"​Именованные константы"​]].
  
 ===== Операторы и функции ===== ===== Операторы и функции =====
-[:​operatory_i_funkcii] 
  
 **Оператор** - ключевое слово (команда) языка **QSP**, выполняющее какое-либо действие. Оператор может иметь параметры (аргументы),​ которые задаются выражениями. Операторы не возвращают результат выполнения. **Оператор** - ключевое слово (команда) языка **QSP**, выполняющее какое-либо действие. Оператор может иметь параметры (аргументы),​ которые задаются выражениями. Операторы не возвращают результат выполнения.
Строка 202: Строка 217:
 ADDOBJ '​ключ','​pics/​key.png'​ ADDOBJ '​ключ','​pics/​key.png'​
 ADDOBJ ('​ключ','​pics/​key.png'​) ADDOBJ ('​ключ','​pics/​key.png'​)
-PL ('​текст'​)+PL('​текст'​)
 CLEAR() CLEAR()
 </​sxh>​ </​sxh>​
  
-**Функция** - ключевое слово, которое используется для того, чтобы получить какое-либо значение. Например,​ сколько предметов игрок несёт в рюкзаке. Для этого, в коде мы указываем функцию,​ и необходимые для расчёта параметры (аргументы функции). Результат,​ "​посчитанный"​ этой функцией,​ подставляется на её место в **выражении**. На языке программистов это звучит так: +**Функция** - ключевое слово, которое используется для того, чтобы получить какое-либо значение. Например,​ сколько предметов игрок несёт в рюкзаке. Для этого, в коде мы указываем функцию,​ и необходимые для расчёта параметры (аргументы функции). Результат,​ "​посчитанный"​ этой функцией,​ подставляется на её место в **выражении**. На языке программистов это звучит так: ​**"мы вызвали функцию,​ и функция вернула нам значение"​**.
- +
- "мы вызвали функцию,​ и функция вернула нам значение"​.+
  
 Как правило,​ при вызове функции состояние игры не меняется. Примеры вызовов функций:​ Как правило,​ при вызове функции состояние игры не меняется. Примеры вызовов функций:​
Строка 223: Строка 236:
 <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.
  
 ===== Базовые функции ===== ===== Базовые функции =====
-[:​bazovye_funkcii] 
  
-  ''​**$QSPVER**''​ - возвращает версию библиотеки плеера в формате "​X.Y.Z"​. Пример:<​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>​
-  ''​**$CURLOC**''​ - возвращает название текущей локации.+  ​* ''​%%$CURLOC%%''​ - возвращает название текущей локации.
  
 ==== Математические функции ==== ==== Математические функции ====
  
- *  **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|Вперёд: ​Циклы]]
  
help/coding.1672569633.txt.gz · Последние изменения: 2023/01/01 10:40 — aleks_versus