![]() | Справка по программе "Инженерный калькулятор" |
Программируемые функцииФункционал программирования позволяет использовать в калькуляторе более сложные пользовательские функции, для определения которых стандартного языка выражений недостаточно. Программируемые функции (ПФ) можно определить на трех языках: JavaScript, C# и Visual Basic. Они могут быть полезны, например, если на разных интервалах аргумента функция имеет разныю форму, стандартный язык выражений не поддерживает этого. Также как и пользовательские функции, ПФ принимают два числовых аргумента x и y (один из них можно не использовать, тогда это будет функция одной переменной) и возвращают числовое значение. Чтобы освоить использование ПФ, требуется знание основ программирования и знание соответствующего языка. Для создания ПФ выберите в меню Рабочее место - Программируемые функции, в открывшемся окне нажмите "Добавить". Введите имя функции, оно должно состоять из букв и цифр, начинаться с буквы, и при этом оно не должно совпадать с именем встроенной, пользовательской или другой программируемой функции. Выберите язык программирования из раскрывающегося списка, после этого область кода заполнится шаблоном функции на выбранном языке. Измените данный код, добавив в него логику вычисления результата, не меняя структуру программы (подробности см. ниже в руководствах для конкретных языков). Чтобы отменить все введенные изменения и вернуться к шаблону, можно использовать кнопку "Сброс к шаблону". Когда окончательный код функции введен, нажмите кнопку "Добавить". Если при компиляции функции возникли ошибки, они выведутся на экран и функция не сохранится. Если функция успешно скомпилировалась, она добавится в список функций, и вы можете ее использовать. Используются ПФ так же, как обычные функции: добавьте в выражение в основном окне калькулятора имя функции и в скобках значения ее аргументов. Если аргументов 2, они отделяются точкой с запятой. Примеры: f(1), myfunc(2,1;3,2). Для редактирования или удаления функции выделите ее в списке функций и нажмите "Изменить"/"Удалить". ВНИМАНИЕ: Использование программируемых функций может быть опасным для вашего компьютера и данных на нем! Не вставляйте в определение программируемой функции код из недоверенного источника или код, смысл которого вы не понимаете! Подробнее: Безопасность программируемых функций. Язык JavaScriptJavaScript - это интерпретируемый язык сценариев, поэтому функции, реализованные на нем, не компилируются при сохранении. Это значит, что если код функции некорректен, при попытке добавить ее вы не получите сообщение об ошибке, но затем при использовании функции каждый раз будет возникать ошибка. Код функции на JavaScript состоит из набора инструкций, последним из которых должна быть инструкция return, возвращающая значение числового типа. Ключевое слово function и обрамляющие функцию фигурные скобки вводить не нужно, они вставляются калькулятором неявно. При этом в определение функции можно добавлять другие вложенные функции, в этом случае ключевое слово function можно (и нужно) использовать. Пример простой функции на JavaScript: return x + 2*y;
Пример функции на JavaScript со вложенной в нее вспомогательной функцией:
Инженерный калькулятор использует реализацию интерпретатора JavaScript из Microsoft Internet Explorer 7 (поддержка возможностей языка на уровне JScript 5.7 / ECMA-262, изд. 3). Подробнее узнать о JavaScript и найти учебные материалы по нему можно на следующих ресурсах: Современный учебник JavaScript Язык C#C# - компилируемый язык программирования. Код функции, реализованной на C#, компилируется в сборку .NET, которую калькулятор затем загружает для выполнения. При наличии в коде ошибок выведется сообщение и функцию не получится сохранить, пока ошибки не будут исправлены. В коде функции обязательно должен быть определен класс CalcFunction, содержащий открытый статический метод Eval. Метод Eval должен принимать два аргумента типа double и возвращать значение типа double. Помимо него, код может также содержать другие методы и классы. Пример простой функции на C#:
Пример функции на C# со вспомогательным классом:
Поддерживается версия языка C# 3.0, целевая платформа - .NET Framework 3.5. Подробнее узнать о C# и .NET и найти учебные материалы по ним можно на следующих ресурсах: Документация по C# Язык Visual BasicVisual Basic - компилируемый язык, использующий платформу .NET. ПФ на Visual Basic во многом работают аналогично ПФ на C#. Код функции на Visual Basic должен определять модуль CalcFunction, содержащий открытую функцию Eval с прототипом
Поддерживается версия языка Visual Basic 2008, целевая платформа - .NET Framework 3.5. Подробнее узнать о Visual Basic и найти учебные материалы по нему можно на следующих ресурсах: Документация по Visual Basic Безопасность программируемых функцийПФ на JavaScript выполняются в контексте браузера. Они не имеют доступа к локальной файловой системе, но могут иметь доступ к веб-сайтам в интернете. ПФ на C# и Visual Basic выполняются в контексте обычного приложения Windows. Они имеют доступ ко всем ресурсам, доступным пользователю, который запустил калькулятор: локальной файловой системе, программам, сетевым соединениям и др. Перед использованием ПФ обязательно убедитесь, что ее код безопасен. Код ПФ хранится в подкаталоге Functions\ каталога программы. Если вы имеете права администратора на компьютере, для максимальной безопасности рекомендуется настроить доступ к нему следующим образом. Разрешите запись в каталог функций только администраторам, а чтение - всем пользователям. Запустите калькулятор от администратора и создайте необходимые ПФ. После этого вы можете использовать эти ПФ, запуская калькулятор с правами обычного пользователя, а вредоносное ПО, запущенное в его контексте, не сможет заразить их. | |
Copyright SmallSoft Inc., 2023.  smallsoft2.blogspot.com |