.NET 4.x Подставка значений в формулу - C#
Формулировка задачи:
Есть программа. В неё вводится два значения (допустим A и B), так же вводится формула (допустим 2x+x+3).
Как сделать так, чтобы значение A подставилось вместо первого x, а B вместо второго x и посчиталось?
Решение задачи: «.NET 4.x Подставка значений в формулу»
textual
Листинг программы
using System; using System.Linq; using System.Collections.Generic; class Program { private static readonly Dictionary<string, Action<Stack<double>>> w = new Dictionary<string, Action<Stack<double>>>(StringComparer.OrdinalIgnoreCase) { { "+", s => { s.Push(s.Pop() + s.Pop()); } }, { "-", s => { double b = s.Pop(); s.Push(s.Pop() - b); } }, { "*", s => { s.Push(s.Pop() * s.Pop()); } }, { "/", s => { double b = s.Pop(); s.Push(s.Pop() / b); } }, { "DUP", s => { s.Push(s.Peek()); } }, { "SQRT", s => { s.Push(Math.Sqrt(s.Pop())); } }, { "SWAP", s => { double b = s.Pop(); double a = s.Pop(); s.Push(b); s.Push(a); } }, { ".", s=> { Console.WriteLine(s.Pop()); } } }; public static void Main() { string input; while ((input = Console.ReadLine()) != String.Empty) { Stack<double> s = new Stack<double>(); Dictionary<string, double> v = new Dictionary<string, double>(); Action<Stack<double>> f; double n; foreach (string i in input.Split()) { if (w.TryGetValue(i, out f)) { f(s); } else if (v.TryGetValue(i, out n) || Double.TryParse(i, out n)) { s.Push(n); } else { v[i] = s.Pop(); } } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д