static void Main(string[] args)
        {
            var impressora = new ImpressoraEsquerda();

            Console.WriteLine("Resolvendo a expressão (2 + 3) - 2  = 3");
            var soma       = new Soma(new Numero(2), new Numero(3));
            var substracao = new Subtracao(soma, new Numero(2));

            substracao.Aceita(impressora);
            Console.WriteLine(" = {0}", substracao.Avalia());

            Console.WriteLine("Resolvendo a expresao ((4 * 10) / (1 + 1)) = 20");
            var multiplicacao = new Multiplicacao(new Numero(4), new Numero(10));

            soma = new Soma(new Numero(1), new Numero(1));
            var divisao = new Divisao(multiplicacao, soma);

            divisao.Aceita(impressora);
            Console.WriteLine(" = {0}", divisao.Avalia());

            Console.WriteLine("Resolvendo raiz quadrada de 8 + 10 = 12.8284");
            var raizquadrada = new RaizQuadrada(new Numero(8));

            soma = new Soma(raizquadrada, new Numero(10));
            soma.Aceita(impressora);
            Console.WriteLine(" = {0}", soma.Avalia());
        }
Ejemplo n.º 2
0
 public void VisitaDivisao(Divisao divisao)
 {
     Console.Write("( ");
     divisao.Esquerda.Aceitar(this);
     Console.Write(" / ");
     divisao.Direita.Aceitar(this);
     Console.Write(" )");
 }
Ejemplo n.º 3
0
        public void ImprimeDivisao(Divisao divisao)
        {
            Console.Write("(");
            divisao.Esquerda.Aceita(this);

            Console.Write("/");
            divisao.Direita.Aceita(this);

            Console.Write(")");
        }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            IExpressao expressao1 = new Soma(new Numero(10), new Numero(20));
            IExpressao expressao2 = new Subtracao(new Numero(20), new Numero(10));
            IExpressao expressao3 = new Multiplicacao(expressao1, expressao2);
            IExpressao expressao4 = new Divisao(expressao3, new Numero(2));
            IExpressao expressao5 = new RaizQuadrada(expressao4);

            Console.WriteLine(expressao5.Avalia());
            IVisitor impressora1 = new Visitor();

            expressao5.Aceita(impressora1);
            Console.WriteLine();
            IVisitor impressora2 = new Visitor2();

            expressao5.Aceita(impressora2);
            Console.WriteLine();
        }
 public void ImprimeDivisao(Divisao divisao)
 {
     ImprimeExpressao(divisao, "/");
 }