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

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


help:coding

Различия

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

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

Both sides previous revision Предыдущая версия
Следущая версия
Предыдущая версия
help:coding [2013/10/17 13:39]
newsash
help:coding [2024/12/01 10:29] (текущий)
aleks_versus
Строка 1: Строка 1:
 [[help:​expressions|Назад:​ Выражения]] [[help:​expressions|Назад:​ Выражения]]
  
-=====Программный код=====+====== Программный код ​======
  
-В QSP нет таких ​разделителей команд, как ';'​ в Паскале.+Выполнение ​кода в плеере **QSP** происходит ​последовательно, ​команда ​за командой, сверху вниз и слева направо:​
  
-Перед интерпретированием строки происходит удаление пробелов и символов табуляции в её начале, поэтому можете форматировать код ​локации.+<sxh qsp> 
 +*pl "Первая команда"​ 
 +*pl "Вторая команда
 +*pl "Третья команда
 + 
 +*pl "Четвёртая команда"​ & *pl "Пятая команда"​ & *pl "​Шестая команда
 +</​sxh>​
  
-7) Операторы ​разделяются либо символом "&",​ либо символом переноса строки. Пример:​ +===== Структура команд =====
-test 65 +
-d=8 & goto '​PPP'​+
  
-11) Не обязательно записывать операторы / выражения в одной ​строке. Чтобы перейти на другую строку,​ нужно лишь в конце строки дописать " _" (пробел и символ подчёркивания). Строки+Все команды в **QSP** составляются по общим ​принципам:
  
 <sxh qsp> <sxh qsp>
-if a<5 and n-b>​4+5+h/​7*or t=4: p '​TTTTTTTTT'​ & cla & $f='​Text Variable'​ & goto '​FFFF'​+  {оператор} [значение 1], [значение ​2], ..., [значение 20]
 </​sxh>​ </​sxh>​
-и+ 
 +Здесь вместо ''​%%{оператор}%%''​ может ​и должен стоять любой оператор **QSP** из тех, что перечислены в разделе [[help:​keywords_operator|"​Ключевые слова. Операторы"​]]. Если в команде нет ''​%%{оператор}%%'',​ значит на самом деле на этом месте подразумевается **неявный оператор**. 
 <sxh qsp> <sxh qsp>
-if a<5 and n-b> _ +! здесь используются явные операторы:​ 
-4+5+h/7*2 or _ +*pl "​Ехал Грека Через Реку"​ 
-t=4: p '​TTTTTTTTT'​ _+addobj "​Рак"​ 
 + 
 +! а здесь имеет место неявный оператор:​ 
 +137 + 294 
 +func('​pow',​ 3, 3) 
 +</​sxh>​ 
 + 
 +В качестве значений ''​%%[значение 1]%%'',​ ''​%%[значение 2]%%'',​ … ,''​%%[значение 20]%%''​ могут выступать строковые или числовые константы,​ переменные,​ значения функций,​ или целые выражения,​ а число таких значений зависит от назначения оператора. Например,​ для оператора ''​%%*PL%%''​ может быть указано лишь одно значение,​ а для оператора ''​%%ADDOBJ%%''​ от одного до трёх таких значений. Сами значения перечисляются через запятую. 
 + 
 +<sxh qsp> 
 +*pl "​Три в кубе это "​+func('​pow',​3,​3)+"​. Да, серьёзно. А ты не верил?"​ 
 +addobj "​Апельсинка",​ "​img/​orange.png",​ 1 
 +</​sxh>​ 
 + 
 +Если необходимо,​ то для удобства чтения кода значения для операторов можно (но не обязательно) помещать в круглые скобки:​ 
 + 
 +<sxh qsp> 
 +pl("​Строка текста"​) 
 +addobj("​Отвёртка","​img/​screwdriver.png",​3) 
 +</​sxh>​ 
 + 
 +**Внимание!** В одной команде не может быть более одного оператора! Равно так же не может быть команды совсем без оператора. Если в вашей команде нет оператора,​ то вы имеете дело с **неявным оператором**. 
 + 
 +Операция присваивания предполагает,​ что перед именем переменной стоит оператор ''​%%SET%%'',​ хотя обычно этот оператор опускают,​ то есть его тоже можно назвать "​неявным":​ 
 + 
 +<sxh qsp> 
 +[имя_переменной] = [значение] 
 +</​sxh>​ 
 + 
 +Здесь ''​%%=%%''​ — это операция присваивания. Не путайте с операцией сравнения **равно**. 
 + 
 +===== Порядок записи команд ===== 
 + 
 +Вот несколько правил и рекомендаций для корректного написания кода: 
 + 
 +  * Каждую отдельную команду нужно записывать в отдельной строке. 
 +  * Отступы (пробелы и символы табуляции) перед командой и после неё игнорируются плеером,​ поэтому вы можете ставить их в нужном количестве для удобства чтения кода: <sxh qsp> 
 +*p "<​table width=240>"​ 
 +  *p "<​tr>"​ 
 +    *p "<​td>​Имя:</​td>"​ 
 +    *p "<​td>"​ 
 +      *p $name 
 +    *p "</​td>"​ 
 +  *p "</​tr>"​ 
 +  *p "<​tr>"​ 
 +    *p "<​td>​возраст:</​td>"​ 
 +    *p "<​td>"​ 
 +      *p age 
 +    *p "</​td>"​ 
 +  *p "</​tr>"​ 
 +*p "</​table>"​ 
 +</​sxh>​ 
 +  * Пустые строки так же игнорируются плеером,​ поэтому для лучшей читаемости кода вы можете размещать их между командами:​ <sxh qsp> 
 +яблоко = 1 
 +груша = 1 
 +*pl '​Яблок'​ + яблоко 
 +*pl '​Груш'​ + груша 
 +</​sxh>​ 
 +  * При необходимости можно написать несколько команд в одну строку. При этом в качестве разделителя команд служит символ "​**&​**"​ (не путайте с операцией объединения строк):​ <sxh qsp> 
 +яблоко+=1 & *pl "У меня есть <<​яблоко>>​ яблок."​ & яблоко_взял=1 
 +</​sxh>​ Без необходимости так делать не рекомендуется,​ поскольку это ухудшает читаемость кода, а так же повышает вероятность допустить [[glossary:​bag|баг]]. Подобное перечисление команд уместно в гиперссылках:​ <sxh qsp> 
 +*pl '<a href="​EXEC:​ яблоко += 1 & GT $CURLOC">​яблоко</​a>'​ 
 +</​sxh>​ В данном случае при нажатии на ссылку выполнится код: <sxh qsp> 
 +яблоко += 1 
 +GT $CURLOC 
 +</​sxh>​ 
 +  * Внутреннюю часть многострочных операторов рекомендуется сдвигать вправо 2-4 пробелами (или одним символом табуляции). Это никак не влияет на выполнение,​ но делает код более читаемым:​ <sxh qsp> 
 +IF яблоки=0 : 
 +    ADDOBJ '​Яблоко'​ 
 +    яблоки = 1 
 +END 
 +</​sxh>​ 
 +  * Крайне редко для повышения читаемости кода приходится разбивать строку на несколько. Такая строка хотя и будет в коде разбита на части, но будет восприниматься плеером,​ как единая (сообщения об ошибках будут выводится с учётом того, что это одна строка). Чтобы следующая строка считалась частью текущей,​ нужно в конце текущей строки дописать ''​%% _%%''​ (пробел и символ подчёркивания):​ <sxh qsp> 
 +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> 
 +if a<5 and 
 +  ​n-b>​4+5+h/7*2 or _ 
 +  t=4: p '​TTTTTTTTT'​ _
 & cla & $f='​Text Variable'​ _ & cla & $f='​Text Variable'​ _
 & goto '​FFFF'​ & goto '​FFFF'​
 +</​sxh>​ Вместо разбиения строки рекомендуется видоизменить код так, чтобы разбивать строку не требовалось. **Обратите внимание.** Сочетание символов ''​%%_%%''​ (пробел и символ подчёркивания) при склеивании строк заменяется на пробел,​ поэтому такой код: <sxh qsp>
 +t _
 +or _
 +t
 +</​sxh>​ будет эквивалентен такому коду: <sxh qsp>
 +t or t
 +</​sxh>​ Разбивать команду на две строки внутри строковой константы нельзя:​ <sxh qsp>
 +! на экране мы увидим две строки текста,​ а не одну:
 +*pl "​Это строка,​ которую я хочу разбить _
 +на две строки кода, но при выводе видеть одну строку"​
 </​sxh>​ </​sxh>​
-ЭКВИВАЛЕНТНЫ,​ т.е. воспринимаются движком одинаково. 
  
-PS:+===== Комментарии =====
  
-1) Группа строк, разделённых " _", считается ОДНОЙ ​строкой (сообщения об ошибках также выводятся с учётом того, что ​это одна строка).+Оператор ​комментария ''​%%!%%'' ​служит для ​комментирования кода и позволяет оставлять "​заметки на полях",​ которые помогут ​впоследствии ​ориентироваться в коде. Всё, что ​следует за оператором комментария, плеер игнорирует.
  
-2) После "​OR"​ стоит не один, а ДВА ​пробела первый пробел воспринимается движком ​как пробела второй - как часть " _". Это ​сделано для того, чтобы движок правильно обрабатывал ​операцию "​OR"​ - не как "​4+5+h/​7*2 ort=4",​ а как "​4+5+h/​7*2 or t=4".+Поскольку ''​%%!%%''​ — это оператор (не путайте с операцией **не ​равно**), если вы пишете его ​на одной строке ​с другими командами, нужно ​обязательно ставить разделитель ''​%%&​%%''​ (амперсанд) между последней командой и оператором комментария:
  
-Функции +<sxh qsp> 
-Top Previous Next +! это ​комментарий в отдельной строке 
-Функция - ключевое слово, выполняющее какое-либо действие, учитывая свои аргументы (параметры) ​и возвращающее результат. Аргументы функций задаются выражениями.+яблоки = 0 & ! а это комментарий в строке с командой 
 +</​sxh>​
  
-Пример вызова функции: +Исключением из этого правила является установка ​комментария после двоеточия в многострочном условии, цикле или действии. В этом случае амперсанд не нужен:
-MAX(1,​2,​4) +
-Здесь "​MAX"​ - название ​функции, а 1, 2 и 4 - аргументы функции. +
-При вызове функций без ​аргументов или с одним ​аргументом скобки можно не записывать:​ +
-A=RAND 4 +
-B=COUNTOBJ +
-Перед функциями,​ которые ​могут возвращать ​строковые значения, можно ставить символ "​$"​. Т.е, к примеру, можно написать "pl str(43)" ​или "pl $str(43)"​. +
-Эта возможность настоятельно рекомендуется к использованию, так как ​улучшает читаемость кода.+
  
-Базовые функции ​языка QSP +<sxh qsp> 
-CURLOC - возвращает название текущей локации. +act "Взять яблоко": ! многострочное действие 
-RAND([#​выражение 1],​[#​выражение 2]) - возвращает случайное число между числами [#​выражение 1] и [#​выражение 2]. Параметр [#​выражение 2] может отсутствовать, при этом он принимается равным 0. +    addobj ​"Яблоко"​ 
-RND - возвращает случайное значение от 1 до 1000. +    яблоко ​+= 1 
-MAX([выражение 1],​[выражение 2], ...) - возвращает максимальное из значений выражений-аргументов. Если передан один аргумент, то считается,​ что указано имя массива - в этом случае поиск максимального элемента происходит среди строковых (если название массива указано со знаком ​"$") или среди числовых значений элементов массива. Например:​ +end 
-MAX(1,​2,​5,​2,​0) - вернёт 5 +</​sxh>​
-MAX(a,b,c) - вернёт максимальное из значений переменных +
-MAX('​aa','​ab','​zz'​) - вернёт '​zz'​ +
-MAX('​a'​) - вернёт максимальное из числовых значений элементов массива "A+
-MAX('​$b'​) - вернёт максимальное из строковых значений элементов массива "​B"​+
  
-MIN([выражение 1],[выражение 2], ...) - возвращает минимальное из значений выражений-аргументов. Если передан один аргумент,​ то считается, что указано имя массива - в этом случае поиск минимального элемента ​происходит среди строковых (если название массива указано со знаком "​$"​) ​или среди числовых значений элементов массива. +Так как весь текст после оператора комментария будет ​проигнорирован ​плеером, комментарий надо ставить всегда самым последним в строке из нескольких команд:
-IIF([#​выражение],[выражение_да],[выражение_нет]) - возвращает значение ​выражения [выражение_да], если [#​выражение] верноиначе ​значение выражения [выражение_нет].+
  
-QSPVER - возвращает версию интерпретатора в формате "​X.Y.Z"​. +<sxh qsp> 
-FUNC([$выражение],[параметр 1],[параметр 2], ...) - обработка локации с названием [$выражение]. Указанные параметры передаются ​в массиве ARGS. Результат функции равен значению $RESULT при возврате строкового значения или RESULT при возврате числового значения. Если при обработке локации были установлены и RESULT, и $RESULT, то предпочтение отдаётся строковому значению. После обработки локации предыдущие значения ARGS и RESULT восстанавливаются. Примеры: +! комментарий. Следующие команды не работают: & *pl "Первая команда" & *pl "вторая команда
-PL 4 + FUNC('​функция') - обработка локации "функция"​ как функции. Массив ARGS пуст. Результат передается через $RESULT или RESULT, в зависимости от кода ​обрабатываемой локации. +*pl "Эта команда работает" & ! а остальные нет ​& *pl "вторая ​команда" & *pl "третья команда
-PL FUNC($name, 1) * 78 - обработка локации с названием в $name как функции. ARGS[0] равен 1. +*pl "Эта команда работает" ​& *pl "и эта работает" & ! а последняя нет ​& *pl "третья команда
-MSG "text" ​+ FUNC($name, "строка", 2) - обработка локации с названием в $name как функции. $ARGS[0] содержит ​строку "​строка",​ ARGS[1] равен 2. +*pl "Все три" & *pl " команды" & *pl "работают" & ! а это комментарий 
-DYNEVAL([$выражение],​[параметр 1],​[параметр 2], ...) - возвращает значение указанного выражения. Функция позволяет вычислять значения динамически сгенерированных выражений. Указанные параметры передаются в массиве ARGS, а после вычисления выражения предыдущие значения ARGS восстанавливаются. Примеры: +</sxh>
-DYNEVAL('​3+4'​) +
-PL DYNEVAL('​mid("​abcd",​2,​1)+"​qwerty"'​) +
-PL DYNEVAL($test + ' + val("<<$test>>"​)'​) +
-проход=DYNEVAL("​ $args[0] <> '​текст'​ ", '​строка'​)+
  
-Оператор ​ключевое слово, выполняющее какоеибо действие. ​Оператор может иметь аргументы (параметры),​ необходимые для ​выполнения. Аргументы операторов задаются выражениями. Операторы не возвращают результат выполнения. +Комментарии бывают двух видов: однострочные и многострочные. 
-Пример вызова оператора:​+ 
 +  * Однострочный комментарий начинается от оператора комментария и заканчивается с концом строки:​ <sxh qsp> 
 +! Однострочный комментарий 
 +! и это однострочный комментарий 
 +яблоки = 0 & ! и это однострочный комментарий 
 +</​sxh>​ 
 +  * Многострочный комментарий так же начинается от оператора комментария и заканчивается с концом строкиоднако при использовании кавычек (''​%%"​ "​%%''​),​ апострофов (''​%%'​ '​%%''​) или фигурных скобок,​ он может захватывать так же и те строки,​ что размещены внутри кавычекапострофов или фигурных скобок: <sxh qsp> 
 +!'​Многострочный 
 +комментарий в апострофах'​ 
 +яблоки = 1 
 +сыр = 5 &  ! А здесь "​комментарий начинается 
 +в той же строке,​ но" заканчивается 'сильно 
 +позже'Во всём виноваты {кавычки и скобки 
 +} Кстати:​ 
 +яблоки = 0 
 +!'​Комментарии рекомендуется ​писать всё-таки 
 +в отдельных строках, а не как бутерброд с "сыром"'​ 
 +</​sxh>​ 
 + 
 +===== Запись констант ===== 
 + 
 +Под константами в **QSP** подразумеваются конкретные числовые или строковые значения. Конкретный кортеж (запись значений в квадратных скобках) тоже можно назвать константой. В следующем примере для операторов вывода текста указаны конкретные значения,​ это и есть константы: 
 + 
 +<sxh qsp> 
 +! вывод на экран числа 137. Можно назвать это число константой. 
 +*pl 137 
 +! вывод на экран строки текста. Эту строку можно назвать константой 
 +*pl "На окошке крошку-мошку ловко ловит лапой кошка"​ 
 +! выводим ​на экран кортеж. Кортеж тоже может быть константой 
 +*pl [13, '​unit',​ 37] 
 +</​sxh>​ 
 + 
 +Для записи числовых констант ​(чисел) используются символы цифр без дополнительных обозначений:​ 
 + 
 +<sxh qsp> 
 +x = 145 & ! 145 здесь - константа 
 +(137+299*2)/​11-19 & ! целое выражение из числовых констант 
 +</​sxh>​ 
 + 
 +Для записи строковых констант (строк) используются символы,​ отмечающие начало и конец такой строковой константы. Можно использовать кавычки (''​%%"​ "​%%''​), апострофы (''​%%'​ '​%%''​),​ или фигурные скобки (''​%%{ }%%''​):​ 
 + 
 +<sxh qsp> 
 +*pl "Это строковая константа"​ 
 +*pl 'И это строковая константа'​ 
 +*pl {И даже это} 
 +</​sxh>​ 
 + 
 +Более подробно о правилах записи строк в **QSP** ​можно почитать в разделе [[help:​strings|"​Строки"​]]. 
 + 
 +Для записи кортежей используются квадратные скобки:​ 
 + 
 +<sxh qsp> 
 +*pl ['​это кортеж',​ '​если он ', "не присвоен переменной",​ "его можно считать константой"​] 
 +</​sxh>​ 
 + 
 +См. также [[howto:​namedconst|"​Именованные константы"]]. 
 + 
 +===== Операторы и функции ===== 
 + 
 +**Оператор** - ключевое слово (команда) языка **QSP**, выполняющее какое-либо действие. Оператор может иметь параметры (аргументы),​ которые ​задаются выражениями. Операторы не возвращают результат выполнения. 
 + 
 +Как правило, операторы ​меняют состояние игры. 
 + 
 +Каждая команда **QSP** содержит один оператор и его аргументы (параметры). Если ​вы написали команду без оператора,​ то в ней обязательно присутствует **неявный ​оператор**. 
 + 
 +<sxh qsp> 
 +!Примеры вызовов операторов:
 ADDOBJ '​ключ','​pics/​key.png'​ ADDOBJ '​ключ','​pics/​key.png'​
-Здесь "​ADDOBJ"​ - название оператора,​ а '​ключ'​ и '​pics/​key.png'​ - аргументы оператора. 
-Вызов оператора также может быть записан со скобками:​ 
 ADDOBJ ('​ключ','​pics/​key.png'​) ADDOBJ ('​ключ','​pics/​key.png'​)
-PL ('​текст'​)+PL('​текст'​)
 CLEAR() CLEAR()
 +</​sxh>​
  
-Базовые операторы языка QSP +**Функция** - ключевое ​слово, которое используется для того, чтобы получить какоеибо значение. Например, сколько предметов ​игрок несёт в рюкзаке. Для этого, в коде мы указываем функцию, и необходимые для ​расчёта параметры (аргументы функции). Результат, "посчитанный"​ этой функцией, подставляется ​на её место в **выражении**На языке программистов это ​звучит так: **"мы вызвали функцию, ​и функция вернула нам значение"​**.
-! - оператор ​комментария. То, что находится ​в данной строке после оператора комментария, и до конца строки игнорируется интерпретатором. Оператор комментария позволяет "закомментировать"​ (выключить) ненужный временно оператор / функцию ​во время отладки игры. Кроме ​того, написание комментариев к коду программы является одним из признаков хорошего стиля ​программирования. +
-В операторе комментария поддерживаются ​преформатированные строки. Примеры+
-! это ​комментарий без ​преформатированных ​строк +
-!"​а ​этот комментарий +
-содержит преформатированную +
-строку"​ +
-!" +
-и этот +
-тоже +
-" +
-a = 3 & ! а также '​вот +
-этот'​+
  
 +Как правило,​ при вызове функции состояние игры не меняется. Примеры вызовов функций:​
  
-DYNAMIC [$строка кода],​[параметр ​1],[параметр ​2]... - выполнение кода. Данный ​оператор позволяет динамически генерировать код игры. Переданные параметры хранятся ​в массиве ARGS. После выполнения ​кода предыдущие ​значения ARGS восстанавливаются. Примеры:​+<sxh qsp> 
 +maximum = MAX(1, 2, 4) 
 +случайноеисло = RAND(4) 
 +предметов_в_рюкзаке = COUNTOBJ  
 +PL $STR(43) 
 +</​sxh>​
  
-DYNAMIC '​$a="​string<<​$b>>"'​ +В одной ​команде может быть вызвано несколько функций:​
-DYNAMIC '​$a'​ +
-DYNAMIC 'if $a="​string":''​text!'''​ +
-DYNAMIC " +
-$args[0] +
-addobj $args[1] +
-",'​Текст','​Вилка'+
  
 +<sxh qsp>
 +*pl "​Случайный предмет:​ "​+$getobj(rand(1,​countobj))
 +bcolor = rgb(func('​hex_in_dec','​ff'​),​func('​hex_in_dec','​34'​),​func('​hex_in_dec','​67'​))
 +</​sxh>​
  
-====Комментарии====+При использовании функций,​ возвращающих текстовое значение,​ настоятельно рекомендуется прописывать перед именем функции символ ''​%%$%%''​ для улучшения читаемости кода. 
 + 
 +Максимальное число аргументов для операторов и функций в **QSP**: 20. 
 + 
 +===== Базовые функции ===== 
 + 
 +  * ''​%%$QSPVER%%''​ - возвращает версию библиотеки плеера в формате "X.Y.Z Player"​. Например, классический плеер версии 5.9.0. возвращает значение "5.9.0 (classic)",​ а qSpider просто "​5.9.0"​. Пример использования: <sxh qsp> 
 +if $QSPVER<'​5.9.0':​ 
 +*pl "​Ваша версия плеера не подходит для данной игры. Установите плеер версии 5.9.0."​ 
 +end 
 +</​sxh>​ Так же данная функция может возвращать платформу,​ на которой запущена игра, если указать аргументом значение "​platform":​ <sxh qsp> 
 +$QSPVER('​platform'​) 
 +</​sxh>​ 
 +  * ''​%%$CURLOC%%''​ - возвращает название текущей локации. 
 + 
 +==== Математические функции ==== 
 + 
 +  * ''​RAND([#​выр1],​[#​выр2],​[#​мода])''​ - возвращает случайное число между числами ''​[#​выр]''​ и ''​[#​выр2]''​. 
 +    * Параметр ''​[#​мода]''​ позволяет указать число, которое должно выпадать более часто, чем остальные. При этом распределение частоты выпадения будет плавно изменяться для всех остальных чисел. Подробнее о распределении читайте в статье [[howto:​randomize|Третий параметр RAND]]. 
 +    * Если 3й параметр не указан,​ то функция возвращает случайное число в заданном диапазоне с равномерным/​равновероятным распределением чисел. 
 +    * Параметр ''​[#​выр2]''​ может отсутствовать,​ при этом он принимается равным единице (**''​1''​**). 
 +    * Примеры:​ <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>​ 
 +  * ''​RND''​ - возвращает случайное значение от 1 до 1000. 
 +  * ''​MAX([выр1],​[выр2],​ ...)''​ - возвращает максимальное из значений выражений-аргументов. Если передан один аргумент,​ то считается,​ что указано имя массива:​ <sxh qsp> 
 +MAX(1,​2,​5,​2,​0) &! вернёт 5 
 +MAX(a,b,c) &! вернёт максимальное из значений переменных a,b,c 
 +MAX('​aa','​ab','​zz'​) &! вернёт '​zz'​ 
 +MAX('​a'​) &! вернёт максимальное из числовых значений элементов массива "​a"​ 
 +MAX('​$b'​) &! вернёт максимальное из текстовых значений элементов массива "​$b"​ 
 +</​sxh>​ 
 +  * ''​%%MIN([выр1],​[выр2],​ …)%%''​ - возвращает минимальное из значений выражений-аргументов. Если передан один аргумент,​ то считается,​ что указано имя массива:​ <sxh qsp> 
 +MIN(1,​2,​5,​2,​0) &! вернёт 0 
 +MIN(a,b,c) &! вернёт минимальное из значений переменных a,b,c 
 +MIN('​aa','​ab','​zz'​) &! вернёт '​aa'​ 
 +MIN('​a'​) &! вернёт минимальное из числовых значений элементов массива "​a"​ 
 +MIN('​$b'​) &! вернёт минимальное из текстовых значений элементов массива "​$b"​ 
 +</​sxh>​
  
 +[[help:​cycle|Вперёд:​ Циклы]]
  
----- 
-Вперёд:​ 
help/coding.1382017140.txt.gz · Последние изменения: 2013/10/17 17:39 (внешнее изменение)