Разработать калькулятор - C#

Узнай цену своей работы

Формулировка задачи:

Вот есть калькулятор, но мне необходимо ко всему этому считать ещё и тригонометрические функции sin(), cos(), tg(). И ещё добавить обработку исключений, например, при вводе некорректного выражения ( отсутствие закрывающей скобки или любое другое) система должна сообщить об этом пользователю и предоставить возможность исправить выражение.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
 
namespace newspace
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите выражение: ");
            String s = Console.ReadLine();
            Console.WriteLine(" {0} = {1} ", s, Evaluate(s));
            Console.ReadKey();
        }
 
        public static double Evaluate(string expression)
        {
            DataTable table = new DataTable();
            table.Columns.Add("expression", typeof(string), expression);
            DataRow row = table.NewRow();
            table.Rows.Add(row);
            return double.Parse((string)row["expression"]);
        }
    }
}

Решение задачи: «Разработать калькулятор»

textual
Листинг программы
    public class ExpressionCalculator
    {
        private MethodInfo mi;
 
        public void Compile(string expression)
        {
            string source =
@"
using System;
 
public static class Calculator
{
    public static double Calc(double x)
    {
        return %expression%;
    }
 
    public static double sin(double x)
    {
        return Math.Sin(x);
    }
 
    public static double cos(double x)
    {
        return Math.Cos(x);
    }
}".Replace("%expression%", expression);
 
            // Настройки компиляции
            var compilerParams = new CompilerParameters { GenerateInMemory = true };
            // Компиляция
            var results = new CSharpCodeProvider().CompileAssemblyFromSource(compilerParams, source);
            //обработка ошибок
            if (results.Errors.Count > 0)
                throw new Exception(results.Errors[0].ErrorText);
            //получаем калькулятор
            var calculator = results.CompiledAssembly.GetType("Calculator");
            mi = calculator.GetMethod("Calc");
        }
 
        public double Calculate(double x)
        {
            return (double)mi.Invoke(null, new object[] { x });
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5
Похожие ответы