Вопрос

Я C # Newbie.Я хочу написать приложение калькулятора в C #.Было бы C # выражения деревья хорошим способом пойти на смелость этого?(То есть часть, которая принимает серию клавиш и превращает их в выражение, что калькулятор может оценивать и отображать на экране.,, Или график)

Я хочу включить стандартные математические функции, включая Trig, Logs, экспоненты и т. Д.

Это было полезно?

Решение

Поскольку ваш язык для математических выражений, безусловно, будет сильно, намного проще, чем C #, я подозреваю, что пытаясь повторно использовать классы деревьев экспрессии структуры для представления ваших ASTS, будет быть переплетением и, вероятно, рецепт для разочарования;Если вы посмотрите на эти классы, вы увидите много свойств и функциональных возможностей, которые были бы совершенно не относящимися к вашему маленькому языку.Я бы катился, если бы я был тобой.

Другие советы

Возможно, вы сможете узнать из этого проекта, есть хорошие учебники Aobut, как это было сделано

Вы видели http://ncalc.codeplex.com ?

Это расширяемое, быстрое (например, имеет свой кэш), позволяет предоставлять пользовательские функции и варианты выполнения во время выполнения путем обработки событий оценки / EvalugeParammer. Пример выражения это может разбираться: Выражение E= новое выражение («раунд (POW (PI, 2) + POW ([PI2], 2) + X, 2)«);

e.parameters [«Pi2»]= новое выражение («PI * Pi»); E.Parameters [«X»]= 10;

e.evalugeParameter += делегат (имя строки, параметрические данные args) { Если (имя=="PI") args.result= 3.14; };

Debug.assert (117.07== e.evalatue ());

Он также обрабатывает Unicode & много данных типа данных. Он поставляется с Antler File, если вы хотите изменить граф. Существует также вилка, которая поддерживает MEF для загрузки новых функций.

Он также поддерживает логические операторы, строки даты / времени и если заявления.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top