Вход
Приветствую Вас Гость
 

easy.math.qsp v. 2.4.0

История версий

  • Версия 2.1.1:

    1. сконструирован простейший отладчик
    2. изменен принцип работы функции #+# - теперь она может работать со сколько угодно большими числами.
  • Версия 2.1.2:

    1. добавлена функция #zero#
    2. исправлена ошибка, приводившая к неправильному счёту при использовании нескольких функций подряд.
  • Версия 2.1.3:

    1. добавлена функция #add#
    2. добавлена функция #dev#
    3. переработана функция #+# - теперь она работает проще и быстрее, используя функции логического сложения и вычитания, что позволило суммировать числа любой длины и знака.
    4. переработана и упрощена функция #*# - может перемножать числа любой длины и знака.
    5. исправлена ошибка в функции #sum#, приводившая к неверному подсчёту вплоть до зависания программы.
  • Версия 2.1.4:

    1. исправлена функция #dev# - теперь она вычитает с учётом переполнения.
    2. исправлена функция #rndstr#
  • Версия 2.1.5:

    1. введены функции работы с массивами:
      #array.rand# - заполняет массив случайными числовыми значениями
      #array.prnt# - выводит в результат содержимое массива
      #array.sort# - сортировка значений массива
      #array.rstd# - перестановка значений массива
      #array.dsrt# - восстановление массива к виду до сортировки
    2. Модернизирована функция #array.sort#. Теперь она сортирует также и по строковым значениям.
    3. Исправлены функции работы с щестнадцатеричными числами: удалены лишние переменные.
    4. Добавлена функция сравнения содержимого двух массивов #array.simp#
  • Версия 2.1.6:

    1. Изменена функция, вычисляющая модуль разности двух чисел #-#
    2. Расширена функция #array.prnt#
    3. Добавлена функция #str.inArray#, которая выбирает из блока текста строки и помещает их в массив.
  • Версия 2.1.7:

    1. Добавлена функция #array.prnt.few#, которая позволяет выводить на экран содержимое сразу нескольких массивов
    2. Добавлена функция #WIDETRIM# - отрезающая прилегающие символы пробелов и табуляций и переводов строк.
    3. Изменена функция #array.prnt# - расширена возможностью убирать из результатов прилегающие пробельные символы.
    4. Расширена функция #WIDETRIM# - расширена возможностью убирать из строк преформатирование.
    5. Изменена функция #WIDETRIM# - теперь удаляются все строки, которые не содержат ничего, кроме пробельных символов, в начале и конце текста.
  • Версия 2.1.8:

    1. В модуль добавлены вспомогательные функции:
      get.tag.cont - получает значение сдвоенных тегов.
      get.tag.num - получает значение одиночных тегов.
      get.word.inPos - из строки вида "слово1|слово2|...|слово3" получает слово в указанной позиции между вертикальными чертами
      kill.var.olegus - удаляет элемент массива по текстовому индексу.
  • Версия 2.1.9:

    1. Имя функции #WIDETRIM# заменено на #widetrim#.
    2. Исправлена ошибка в функции get.tag.num, приводившая к неправильному получению гексаметричного числа.
    3. Исправлена ошибка в функции #widetrim#, приводившая к зависанию плеера, когда ей передавали пустое значение
    4. Cлегка подправлена функция #chk.array.word# - теперь можно указать границы поиска: начальный и конечный элемент.
  • Версия 2.1.10:

    1. Добавлена функция #array.clr#, удаляющая из массива все элементы, содержащие указанное значение. Работает только со строковыми значениями.
    2. Добавлена функция #array.strt#, генерирующая массив, заполненный подряд идущими числами. Можно указать верхний и нижний пределы числа, а так же с какого элемента начинать заполнение.
    3. Добавлена функция #array.srch#, которая находит в числовом массиве максимальное и минимальное значения. В отличие от стандартных комманд MAX и MIN QSP, в этой функции можно указать пределы поиска: область элементов, область чисел. В случае, если для указанной области элементов, отсутствуют числа, входящие в заданные пределы, возвращается слово false. Можно запросить у функции позицию элемента.
    4. Добавлена функция #coords.get#, получающая координаты по номеру элемента. Эта функция пригодится при организации двумерного массива, через одномерный, или при отрисовке игровых полей заданной ширины.
  • Версия 2.1.11:

    1. Добавлена функция вставки элемента в массив #array.ins#. Позволяет вставлять в массив элемент со сдвигом вправо. Поддерживаются текстовые и числовые массивы, а так же текстовые и числовые индексы.
    2. Добавлено расширение функции сравнения массивов. Теперь можно сравнивать массивы на совпадение хотя бы одного элемента. Если в массивах найдено совпадение хотя бы одного элемента, возвращается true.
    3. Исправлена функция сравнения массивов. При поиске на совпадение хотя бы одного элемента, если массивы имели разный размер, происходил оверкил-выход, что приводило к выдаче сообщения об ошибке. Теперь при сравнении массивов на совпадение хотя бы одного элемента, будет производиться поиск независимо от размеров массива, однако подобное действие приведёт к получению ложного true в случае, когда в одном из массивов будет пустая строка.
    4. Исправлена функция очистки массива #array.clr#. Теперь она может очищать от пустых значений, и от числовых значений.
    5. Внесены изменения в локацию #array.prnt#. Теперь можно выводить не весь массив, а лишь его часть. Т.е указать от какого до какого элемента следует вывести массив.
    6. Исправлена ошибка ложного true при сравнении массивов на совпадение хотя бы одного элемента. Теперь ложное true может возникнуть лишь в случае, если в одном из массивов пустая строка (элемент) присутствует не на последнем месте. Однако и эту ситуацию можно предвосхитить, поставив ключ "/se" к управляющей конструкции. Space Exclude - исключает все пустые строки массивов из сравнения.
    7. Добавлена функция разрежения строки #str.thin#. В полученную строку через определённое количество символов вставляется другая строка (разделитель). По умолчанию через каждый символ вставляется пробел. Есть возможность добавлять разделитель в начале результата, в конце результата: управление [left] и [right] соответственно.
    8. Расширены возможности функции #sum#. Теперь она суммирует и элементы текстовых массивов.
    9. Устранена ошибка в функции #array.prnt.few#, представлявшая неправильную таблицу при наличии пустых ячеек в массиве.
  • Версия 2.2.0:

    1. Исправлена ошибка в функции #rounddiv# — не функционировали направления округления.
    2. Исправлена функция #invert# — ошибка удаления всех символов из строки устранена.
    3. Отредактированы и обновлены разделы справки.
    4. Библиотека адаптирована под Quest Navigator. Для нормального функционирования с Quest Navigator в самом начале игры необходимо прописать следующее

      $AVS_PLAYERTYPE='QN'

  • Версия 2.3.0:

    1. Добавлена функция #col-rgb#, преобразующая цвет в формате RRGGBB в формат понятный настройкам qsp.
    2. Добавлена функция #col-inv#, преобразующая цвет в формате RRGGBB в противоположный.
    3. Упрощена и сокращена функция kill.var.olegus на основе объяснения Олегуса. Работоспособность не изменилась.
    4. Расширена функция случайной строки. Теперь можно указать набор символов, который необходимо получить в итоговой строке:
       $func('#rndstr#',4,'только это','J01A23F45G67O89P')
    5. Добавлена функция #rtp#, меняющая содержимое двух переменных местами. В качестве аргументов указываются имена двух переменных. В т.ч. можно указывать ячейки массивов с текстовой индексацией. Работает как для текстовых, так и для числовых переменныз.
    6. Исправлен недочёт в функции сортировки массивов, приводивший к сравниванию элемента массива самого с собой.
  • Версия 2.3.14:

    1. Изменена функция str.thin, теперь она умеет разрежать с первого к последнему символу, или от последнего к первому.
    2. Добавлена функция re.rgb
    3. Изменена функция array.ins, с учётом особенностей copyarr, и о чудо! функция ускорилась в 100 раз!!!
    4. поправлена функция get.tag.num, теперь она выдаёт более логичный результат. Так же для всех функций добавлена инициализация $args[9], чтобы текстовые индексы не перезатирали числовые, особенно в новых версиях libqsp.
    5. Исправлен алгоритм сортировки пузырьком. Уничтожен лишний цикл. Теперь сортировка осуществляется во много раз быстрее. Минимум в 240 раз, а при увеличении размера массива и более чем в 600 раз быстрее.
    6. Скорректирована функция rstd - мелкие недочёты.
    7. Добавлена функция получения типа переменной em.var.getType для плееров с библиотеками версии 5.7.0 и ниже.
    8. Добавлена функция изменяющая тип массива em.arr.chType
    9. Исправлена функция str.thin - разделители в режиме [up] вставлялись только через каждые три символа. Теперь работает в любом режиме.
    10. Мелкие правки em.arr.chType и em.var.getType.
    11. в функцию str.inArray добавлено управлющее слово [strip]. У всех значений между разделителями отсекаются прилегающие пробелы.
    12. Добавлены функции em.maxVar и em.minVar, которые возвращают название максимальной или минимальной соответственно переменной из списка.
    13. Добавлены в мануал функции em.maxVar и em.minVar, em.arr.chType и em.var.getType.
    14. re.rgb добавлена в мануал.
  • Версия 2.4.0:

    1. В функции #coord.get# изменены управляющие конструкции. Вместо 'x' и 'y' теперь нужно передавать '[x]', '[y]', или '[xy]'.
    2. В функции #array.prnt# теперь можно указать ключ /se, чтобы при выводе значений массива не использовался разделитель.
    3. В функции #array.prnt.few# исправлено определение неверного имени массива, теперь если имя массива задано не по правилам QSP, функция возвращает ошибку. Поправлены тексты ряда ошибок. Так же функция не выводила числовые значения, теперь выводит.
    4. Для функций #array.prnt.few# и #array.prnt# исправлен вывод в виде кода, теперь содержимое массивов можно выводить в виде валидного кода QSP, тогда как раньше это был условный код, не валидный для QSP.
    5. В функции #coord.get# изменился формат возвращения результата. Раньше результат возвращался в формате строки 'x:00 y:99', а теперь — '[x:00] [y:99]'.
    6. В функции #array.simp# изменены управляющие конструкции: вместо simp, conc, /se соответственно [simp], [conc], [se] (или [space exclude]).
    7. В функции #array.srch# изменены управляющие конструкции. Упразднён шестой аргумент. Добавлена возможность выводить позицию и значение элемента одновременно.
    8. Изменена функция em.arr.chType - теперь она работает без посторонних функций.
    9. Изменены управляющие конструкции функции #rndstr#. Стандартизированы, приведены к более читаемому виду. Упрощены алгоритмы функции. Более подробно см. документацию в исходнике.
    10. Изменены управляющие конструкции функции #chk.array.word#.
    11. Управляющие конструкции #str.inArray# изменены на [regular], [left], [right] и т.д.
    12. В функции #array.sort# изменены управляющие слова ([up] и [down]). Слегка изменена логика определения аргументов на входе.
    13. Для функции #widetrim# изменено управляющее слово: [strip] вместо [trim].
    14. Практически переписана и упрощена функция #even# - должна работать быстрее. Изменены управляющие инструкции up и down на [up] и [down].
    15. get.tag.num теперь использует иной ключ для получения шестнадцатеричного значения /h. Результат теперь возвращается только в текстовом виде.
    16. Полностью переписана фукция #simp# сравнивающая два числа типа float (рациональных, с плавающей точкой). Теперь она использует меньше сторонних функций и может сравнивать числа большей длины.
    17. Заменил ограничение функции #dec-col# на 255. Не пойму смысла, который вкладывал в эту функцию изначально, но теперь ограничения на входной аргумент лежат в пределах от -255 до 255, а значит и ограничения на выходной аргумент лежат в пределах от -ff до ff и это логично.
    18. Добавлена функция em.log - логарифмирование. То есть вычисление максимально близкой целой степени основания, которая в результате может дать указанное число.
    19. Заменил глобальные переменные на локальные в функции #+col#. Подготовил функции работы с шестнадцатеричными числами в исходниках для препроцессора.
    20. Исправлена логика в работе функции #dec-hex# (а заодним и #dec-col#), приводившая к неверному выводу числа, если число оканчивалось на два нуля. Этот ужас многие годы присутствовал в библиотеке, что говорит нам о том, что библиотекой вообще никто не пользуется.
Наверх