Пример #1
0
        private static void Interpreter1()
        {
            var esquerda  = new Soma(new Numero(5), new Numero(10));
            var direita   = new Subtracao(new Numero(20), new Numero(10));
            var teste     = new Multiplicacao(esquerda, direita);
            var teste2    = new Divisao(new Numero(10), new Numero(2));
            var resultado = new Multiplicacao(teste, teste2);


            Console.WriteLine(resultado.Avalia());
        }
Пример #2
0
        private static void Interpreter3()
        {
            var esquerda  = new Multiplicacao(new Numero(2), new Numero(10));
            var direita   = new Divisao(new Numero(20), new Numero(10));
            var resultado = new Multiplicacao(esquerda, direita);

            Console.WriteLine(resultado.Avalia());

            var resultadoRaiz = new Raiz(resultado);

            Console.WriteLine(resultadoRaiz.Avalia());
        }
Пример #3
0
        static void Main(string[] args)
        {
            IExpressao esquerda            = new Soma(new Numero(1), new Numero(10));
            IExpressao direita             = new Subtrai(new Numero(17), new Numero(4));
            IExpressao resultSoma          = new Soma(esquerda, direita);
            IExpressao resultMultiplicacao = new Multiplicacao(esquerda, direita);
            IExpressao resultDivisao       = new Divisao(esquerda, direita);

            Console.WriteLine(resultSoma.Avalia());
            Console.WriteLine(resultMultiplicacao.Avalia());

            // Avaliador de Expressões da própria linguagem C#
            // Expression soma = Expression.Add(Expression.Constant(10), Expression.Constant(29));
            // Func<int> funcao = Expression.Lambda<Func<int>>(soma).Compile();
            // Console.WriteLine(funcao.Invoke());
        }
Пример #4
0
        private static void TestaVisitorExemploCalculadora()
        {
            var esquerda = new Soma(new Soma(new Numero(1), new Numero(100)), new Numero(10)); // (1+100) + 10 = 111
            var direita  = new Subtracao(new Numero(20), new Numero(10));                      // 20 - 10 = 10
            var soma     = new Soma(esquerda, direita);                                        // 111 + 10 = 121

            var impressora = new ImpressoraVisitor();

            soma.Aceita(impressora);                                                                                                                         //Imprime expressão.
            Console.WriteLine($" = {soma.Avalia()}.");                                                                                                       //Imprime resultado.

            var multiplicacao = new Multiplicacao(new Subtracao(new RaizQuadrada(new Numero(9)), new Numero(2)), new Divisao(new Numero(6), new Numero(3))); // (((√9)-2)*(6/3))

            multiplicacao.Aceita(impressora);
            Console.WriteLine($" = {multiplicacao.Avalia()}.");
            Console.ReadKey();
        }
Пример #5
0
        private void testaImpressoraVisitor()
        {
            RaizQuadrada raizQuadrada = new RaizQuadrada(new Numero(81));
            IVisitor visitor1 = new ImpressoraVisitor();
            visitor1.ImprimeRaizQuadrada(raizQuadrada);
            Console.WriteLine();
            Console.WriteLine(raizQuadrada.Avalia());
            Console.WriteLine();

            Multiplicacao multiplicacao = new Multiplicacao((new Subtracao(new Numero(50), new Numero(45))), new Numero(30));
            IVisitor visitor2 = new ImpressoraVisitor();
            visitor2.ImprimeMultiplicacao(multiplicacao);
            Console.WriteLine();
            Console.WriteLine(multiplicacao.Avalia());

            Console.WriteLine();

            Divisao divisao = new Divisao((new Subtracao(new Numero(50), new Numero(50))), new Numero(30));
            IVisitor visitor3 = new ImpressoraVisitor();
            visitor3.ImprimeDivisao(divisao);
            Console.WriteLine();
            Console.WriteLine(divisao.Avalia());
        }
Пример #6
0
 private void testaPreFixaVisitor()
 {
     Multiplicacao multiplicacao = new Multiplicacao((new Subtracao(new Numero(50), new Numero(45))), new Numero(30));
     IVisitor visitor2 = new PreFixaVisitor();
     visitor2.ImprimeMultiplicacao(multiplicacao);
     Console.WriteLine();
     Console.WriteLine(multiplicacao.Avalia());
 }