예제 #1
0
        private void button_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                var x = new Variable("custo");
                var y = new Variable("pagamento");
                var z = new Variable("correção");
                var a = new Variable("acumulado");

                ExpressionMath exp = new OperationSum(new OperationMultiplication(new OperationSum(x, y), z), a);

                var context = new ContextExpression();
                context.Assign(x, Double.Parse(textBoxX.Text));
                context.Assign(y, Double.Parse(textBoxY.Text));
                context.Assign(z, Double.Parse(textBoxZ.Text));
                context.Assign(a, Double.Parse(textBoxA.Text));

                var result = exp.Interpret(context);
                lblResult.Content = result;
            }
            catch
            {
                MessageBox.Show("Desculpe, o interpretador não sabe o que você quer dizer");
            }
        }
예제 #2
0
 public override double Interpret(ContextExpression context)
 {
     return(expression1.Interpret(context) + expression2.Interpret(context));
 }
예제 #3
0
 public abstract double Interpret(ContextExpression context);
예제 #4
0
 public override double Interpret(ContextExpression context)
 {
     return(context.Lookup(Name));
 }