PlugIn Калькулятор
-----==============-----
*** Это не новая версия Калькулятора, а просто результат некоторых модификаций,
*** сделанных другим автором. Все авторские права на код, за исключением сделанных
*** модификаций, принадлежат изначальному автору (Cail Lomecb).
--== Ver 3.25 ==--
* добавлена поддержка Windows 2000 и WindowsXP
--== Ver 3.24 ==--
* Удалена поддержка Far2
* Исправлено: медленная перерисовка диалогов при вводе текста
* Исправлено: настройки не сохранялись
* Плагин переехал https://github.com/FarPlugins/Calculator
--== Ver 3.23 ==--
* Исправлено: порнография с версией
--== Ver 3.22 ==--
- Общее:
* Обновление для текущей версии Far3 (stable build 2927+)
* Обновление библиотеки ttmath с некоторыми исправлениями
* Исправлено: перемещение курсора по файловой панели при закрытии калькулятора по ESC
--== Ver 3.21 ==--
- Общее:
* Обновление для текущей версии Far3 (dev.build 2728+)
* Исправлена работа с большим буфером консоли (far /W)
* Исправлено: после нажатия Enter в поле выражения калькулятора пропадал курсор
* Исправлено: корректная очистка ошибки "expression error" после нажатия Enter
* Исправлено: падение по _numer(NaN) или _denom(NaN)
* Исправлено: проблемы точности вычислений в отдельных случаях ("30000-6649.23-23350.77")
* Исправлена вставка в командную строку и редактор для Far3
* Исправлено: небольшие правки английских названий и переводов
+ Если убраны все диалоги преобразования, то начальное меню теперь не показывается
--== Ver 3.20 ==--
!ВНИМАНИЕ!
В этой версии файл calcset.csr существенно изменён!
Перед обновлением сохраните из этого файла все ваши правки!
Теперь все пользовательские изменения рекомендуется делать в отдельном файле user.csr (его нужно создать в той же папке)
- Общее:
* Исправлено: поправлена минимально-требуемая версия Far, пользователи ранних версий испытывали проблемы.
* Исправлено: функции, определённые с ошибкой или пустые (), теперь не приводят к сбою и не используются.
* Исправлено: в русском языке название меню "Dialogs" заменено на "Разделы".
* Исправлено: при определённом размере консоли диалог преобразования единиц показывался не оптимально.
* Исправлено: в некоторых случаях была не видна последняя цифра порядка числа.
* Исправлено: иногда не работали унарные операторы.
* Исправлено: вызов из унарного оператора такого же бинарного ().
* Исправлено: символ _char(38) не отображался.
* Исправлено переполнение при целочисленных преобразованиях ("factor(1e145)").
* Исправлено поведение функций без аргументов ("rnd()").
* Исправлено падение плагина, если между вызовами плагина был добавлен аддон.
* При пустом поле ввода все результаты теперь очищаются.
* Символ "=" в конце выражения при вычислениях в редакторе теперь обрабатывается корректно.
* Язык калькулятора теперь берётся из настроек ФАРа (но язык можно и переопределить, указав в user.csr);
также поддерживаются и другие языки посредством создания языковых файлов .lng и указания там двубуквенного кода языка.
* Пользовательские мофицикаторы Kb,Mb,Gb,Tb теперь не чувствительны к регистру.
* Поправлены функции kelv() и sec(), добавлены пользовательские функции lb(), gtg(), gctg(), gsec(), gcosec().
* Поправлены функции arcsin() и arccos(), добавлена встроенная функция _cos().
* Поправлена функция _rnd(), теперь она выдаёт по-настоящему псевдослучайное число.
+ Добавлена функция curt() для кубического корня (со знаком).
+ Добавлены функции даты/времени (jd, jdf, jdg, jdgf, utc, ansid, ratadie).
+ Добавлены встроенные ф-ции конвертации float/double в бинарный формат IEEE-754 и обратно, а также для чисел Inf и NaN:
_f2b(), _d2b(), _b2f(), _b2d(), _finf(), _fnan().
+ Поддержка базовых арифметических операций с типами float и double и отображение Inf и NaN.
* При конвертации слишком большого(малого) числа во float/double теперь показываются ошибки переполнения.
* Для представлений чисел теперь используется параметр format вместо radix, с единым синтаксисом для numerals и addons.
+ Возможность задания "ленивых" аргументов регулярных выражений в представлениях чисел ("/([0-9])([0-9])?/").
* Обновлена версия библиотеки поддержки больших чисел (ttmath) с исправлениями некоторых ошибок,
включена ассемблерная оптимизация (для x86)
* Рефакторинг кода, связанный с Far API (совместимость с FAR 2.0 и FAR 3.0).
+ Добавлен файл user-examples.csr с примерами дополнительных аддонов, операторов, представлений и т.д.
- Диалог настроек:
+ Добавлено окно основных настроек калькулятора.
+ Возможность отключения авто-обновления полей результата при вводе.
+ Возможность задания чувствительного к регистру ввода.
+ Дополнение нулями для чисел фиксированной длины (_char,_short,_int и т.д.).
+ Опция включения автодополнения при вводе (по умолчанию отключена).
+ Задание символов-разделителей:
+ десятичная точка (точка/запятая);
+ разделитель аргументов функций (запятая, точка с запятой);
+ разделитель групп разрядов (только для основного режима калькулятора);
+ опция учёта региональных настроек для точки/запятой/групп разрядов (по умолчанию выключена).
- Аддоны:
+ Встроенные аддоны (dec/hex/oct/bin/exp) перенесены в файл calcset.csr, и ими можно управлять (отключать, менять порядок).
+ Для объявлений аддонов введено новое поле format, которое задаёт систему счисления и формат для аддона
(примеры в файлах calcset.csr и user-examples.csr).
+ Ошибки вычислений аддонов теперь пишутся в соответствующих полях.
- Разделы преобразования единиц и структура CSR файлов:
+ Сделана поддержка включения в calcset.csr других CSR файлов (формат: ).
+ Все разделы убраны из calcset.csr и выделены в отдельные файлы в папке bin/units/
+ Все разделы переработаны и дополнены согласно предложениям пользователей.
+ Добавлены новые разделы вычисления температуры, дат и количества информации
(units/temperature.csr, units/date.csr и units/info.csr).
+ Возможность переназначать уже определённые наборы (для коррекции стандартных наборов в пользовательских файлах).
+ Сделана возможность задания константного выражения в качестве множителя.
+ Возможность задания сложных выражений вместо множителя (с помощью output="" и input=""),
примеры см. в файлах units/temper.csr и units/date.csr.
+ При задании выражения с помощью output="" действуют правила форматирования аддонов (фигурные скобки).
+ Улучшен подбор ширины колонок в диалоге преобразования.
- Поддержка дробей: (ЭКСПЕРИМЕНТАЛЬНО! приближения на основе рациональных чисел, примеры см. в user-examples.csr)
+ Смешанные периодические десятичные дроби (новый format="rep" для addon и numeral).
+ Непрерывные дроби в линейной нотации, вида [a,b,c,d] (новый format="con" для addon и numeral).
+ Добавлены новые встроенные функции _numer(op0),_denom(op0) для поддержки простых смешанных дробей.
+ Добавлена встроенная функция _gcd(op0,op1) для наибольшего общего делителя.
+ Добавлены пользовательские функции gcd (НОД) и lcm (НОК).
--== Ver 3.10 ==--
- Числа и Выражения:
+ Внедрён новый парсер выражений - теперь нет глюков, подобных "0x1e+0x2e",
но на сверх-больших выражениях калькулятор теперь работает медленнее.
+ Внедрён новый парсер чисел с поддержкой регулярных выражений (regexps) и систем счисления - теперь формат чисел задаётся с
помощью тэга в файле calcset.csr (см.примеры там же). В связи с этим, постфиксные операторы
теперь больше не поддерживаются за ненадобностью.
+ Добавлен параметр приоритета для операторов (priority).
+ Сделан единый список операторов в файле calcset.csr
+ Основные битовые операции также переведены на BigNumbers (теперь можно делать так: 1<<100)
* Операторы циклического битового сдвига (_ror, _rol) теперь работают только с типами фиксированной длины (_byte,_ushort,_uint,...)
* Отображение чисел фиксированной длины (_byte,_ushort,_uint,...) в формате bin/oct/hex теперь по умолчанию дополняется нулями
(можно отключить в настройках калькулятора в реестре: padZeroes).
* Исправлена работа с большими _int64
- Аддоны:
+ Для аддонов в файле calcset.csr теперь используется специальный тэг
+ Добавлена возможность форматирования вывода аддона - вычисления производятся только для содержимого фигурных скобок {},
а остальное показывается в поле диалога. Примеры см. в файле calcset.csr (в том числе формат 'hh:mm:ss').
* Исправлено: при вводе ошибочного выражения названия полей-аддонов теперь не исчезают.
- Диалог конвертера единиц:
+ Повышена точность преобразования единиц (теперь не хуже чем у утилиты Converber).
+ При переходе между полями ввода соответствующие числа выделяются (подсвечиваются) для облегчения ввода нового числа.
* Исправлено значение множителя скорости света, повышена точность некоторых других множителей и констант.
- Разное:
+ Динамическое изменение размера окна при изменении размеров консоли (чем больше окно, тем больше цифр показывается).
+ При нажатии Еnter на ошибочном выражении содержимое строки выделяется для облегчения ввода нового числа.
+ При нажатии Enter на длинных выражениях результат показывается, по возможности, с первой цифры
+ Поставлено явное ограничение на длину строки - 1024 символа (было неявное 512 символов).
+ "Серый Enter" на дополнительной клавиатуре теперь работает так же как обычный Enter.
+ Вместо "double" теперь по-честному пишется "big number", а сам _double теперь снова можно использовать
при преобразованиях типов
+ Для типа '_char' теперь дополнительно отображается символ, соответствующий коду
+ Факториал теперь стал функцией _factor(), а не оператором.
+ Функции гиперболического синуса и косинуса переименованы в 'sinh' и 'cosh' (вместо 'sh' и 'ch')
во избежание конфликта с шестнадцатиричным числом 'ch'
* Исправлено: при повторных вызовах калькулятора не показывалась текущая выбранная радио-кнопка.
+ Добавлен VERSION_INFO.
--== Ver 3.01b ==--
*** Это не новая версия Калькулятора, а просто результат некоторых модификаций,
*** сделанных другим автором. Все авторские права на код, за исключением сделанных
*** модификаций, принадлежат изначальному автору (Cail Lomecb).
Совместимость с FAR 2.0 и последующими версиями (версия UNICODE).
Добавлена поддержка Больших Чисел (192 бит на мантиссу и 32 бит на порядок)
для всех мат. операций и преобразований систем счислений.
Поддержка аддонов - пользовательских выражений, которые добавляются в общий список -
См. секцию 'Addons' в файле calcset.csr (теперь он в формате UNICODE).
--== Ver 3.0 ==--
Совместимость с FAR 1.70b3 - работает под ним и выше.
С бетами первой и второй будет глючить.
Соответственно выкинут весь код по поддержке диалогов - все рисуется
фаром.
Диалоги конвертации поддерживают в настройках различные языки - это
задается идентификатором языка.
При нажатии Ctrl-Enter в диалоге конвертации текущее значение
будет вставлено в строку вычисления в самом калькуляторе. Его же
можно нажать и в самом калькуляторе - значение будет вставлено в
редактор или в командную строку.
Calcset.csr подогнан под XML, написан DTD.
В описании синтаксиса изменены названия констант:
exp - экспонента
light - скорость света
grav - гравитация
сделано чтобы не было конфликтов в синтаксисе.
Добавлена функция CNK - число сочетаний из N по K
--== Ver 2.9 ==--
Добавлена фича настраиваемых диалогов. Можно определить диалоги для
конвертации и просмотра значений в любых единицах.
Эти диалоги можно вызвать либо из меню плагинов, либо из уже
загруженного калькулятора по F2.
Переделан парсер. воспринимает различные типы чисел, итд.
Снес Integral и Derived за бесполезностью.
Отловлены кой-какие баги в кодах и определениях.
--== Ver 2.8 ==--
Полностью перестроен парсер. Теперь возможна его полная настройка
в файле CalcSet.Csr. Вы можете переопределить синтаксис и
значение любых операторов, функций, констант, добавить свои
определения.
Сделал ездящее окошко. Что, нравится лялька? Юзайте.
Добавил мышку.
Увеличил точность рассчетов.
--== Ver 2.65 ==--
По настойчивым вашим просьбам пришлось поменять
"наиудобнейший" Feature - вычисление в редакторе по вводу "=".
Теперь она работает чуть по-другому: видит заранее выделенное выражение,
и с использованием макросов Alt=, AltH, AltO, AltB,
хотя вы можете их переопределить.
Так же по Агромным просьбам добавлены ShortCut-ы и так надоевшие всем
CheckBox-ы заменены на RadioБатоны.
--== Ver 2.6 release ==--
Добавлена возможность работы с пользовательскими функциями/константами.
Изменен по мелочам разбор выражения.
--== Ver 2.05 ==--
Добавлена поддержка Истории Ввода: Ctrl-Down.
Добавлена функция Sign.
Добавил вывод суффикса числа(h,o,b) при нажатии Enter - Спасибо
Антону Стеблеву за поучительные лекции о значении checkbox-ов.
Добавлены суффиксы Kb Mb Gb Tb - соответственно для перевода
в Кило, Мега, Гига и Тера байты.
Добавлена поддержка Far 1.6. Теперь возможен вызов калькулятора
непосредственно из редактора.
Во встроенном редакторе калькулятор может автоматически вычислять
набранные в тексте выражения при вводе знака '='. Это не требует
вызова главного модуля. (Смотрите Справка/Дополнительные возможности).
Добавлены функции Cels, Fahr.
--== Ver 2.01 ==--
Ввел поддержку функций с множественными аргументами.
Добавил несколько новых функций.
Теперь всего: 19 операций "||","&&","|","^","&","!=","==",">>","<<",
">","<","+","-","*","/","%","pow","~","!"
18 функций "Sin","Cos","Tg","Ctg","ArcTg","ArcSin",
"ArcCos","Sqrt","Sqr","Ln","Lg","Log","Rad",
"Grad","Sum","Avr","Integral","Derived"
Абсолютно поменял структуру разбора выражения, теперь работает
ужасно быстро, но при работе это все равно никак не сказалось, фактически
при работе ускорения не происходит.
Человеческое сообщение о некорректности выражения (различает виды ошибок).
--== Ver 1.0b ==--
Теперь калькулятор использует цвета Far'а. - Сидел целое утро с
больной головою :-)
Добавил конфигурацию калькулятора - К обеду голова совсем разболелась :-)
Калькулятор отлажен в Far 1.52, сохранение экрана теперь нормальное.
Программа тестирована в Far 1.51 и 1.52.
Практически все Far'овские функции заменены системными. Заработал быстрее,
но не гарантирую полную совместимость с последующими версиями Far'а :-(