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()); }
static void Main(string[] args) { /* Visitor * Usado para visitar e realizar o processamento em cada parte(nó) de uma arvore de Expressoes * * EXEMPLO COM UMA EXPRESSAO MATEMATICA: * * ( 2 + 30 ) + ( 35 - 15) + + - + 2 e 30 35 e 15 + (Resultado: 32) (Resultado: 20) + */ IExpressao esquerda; IExpressao direita; IExpressao soma; esquerda = new Soma(new Numero(2), new Numero(30)); // ( 2 + 30 ) = 32 direita = new Subtracao(new Numero(35), new Numero(15)); // ( 35 - 15 ) = 20 soma = new Soma(esquerda, direita); // ( 32 ) + ( 20 ) Console.WriteLine(soma.Avaliar()); ImpresoraVisitor impressora = new ImpresoraVisitor(); soma.Aceitar(impressora); // ( ( 2 + 30 ) + ( 35 - 15 ) ) Console.ReadKey(); }
public void VisitaSubtracao(Subtracao subtracao) { Console.Write("( "); subtracao.Esquerda.Aceitar(this); Console.Write(" - "); subtracao.Direita.Aceitar(this); Console.Write(" )"); }
public void ImprimeSubtracao(Subtracao subtracao) { Console.Write("("); subtracao.esquerda.Aceita(this); Console.Write("-"); subtracao.direita.Aceita(this); Console.Write(")"); }
public void ImprimiSubtracao(Subtracao subtracao) { Console.Write("("); subtracao.Esquerda.Imprimir(this); Console.Write("-"); subtracao.Direita.Imprimir(this); Console.Write(")"); }
public void ImprimeSubstracao(Subtracao subtracao) { Console.Write("( - "); subtracao.Esquerda.Aceita(this); Console.Write(" "); subtracao.Direita.Aceita(this); Console.Write(")"); }
static void Main(string[] args) { IExpressao esquerda = new Subtracao(new Numero(10), new Numero(5)); IExpressao direita = new Soma(new Numero(2), new Numero(10)); IExpressao conta = new Soma(esquerda, direita); var impressora = new Impressora(); conta.Aceita(impressora); }
static void Main(string[] args) { IExpressao esquerda = new Soma(new Soma(new Numero(1), new Numero(100)), new Numero(10)); IExpressao direita = new Subtracao(new Numero(20), new Numero(10)); IExpressao soma = new Soma(esquerda, direita); Impressora impressora = new Impressora(); soma.Aceita(impressora); Console.Write(" = " + soma.Avalia()); Console.ReadKey(); }
public static void Main(string[] args) { // (1+2) + (20-10) var esquerda = new Soma(new Numero(1), new Numero(2)); var direita = new Subtracao(new Numero(20), new Numero(10)); var soma = new Soma(direita, esquerda); var impressora = new ImpressoraVisitor(); soma.Imprimir(impressora); // visitor age aqui Console.WriteLine(" = " + soma.Avaliar()); Console.ReadKey(); }
static void Main(string[] args) { Console.WriteLine("Visitor"); // (1+10) + (20-10) IExpressao esquerda = new Soma(new Numero(1), new Numero(10)); IExpressao direita = new Subtracao(new Numero(20), new Numero(10)); IExpressao soma = new Soma(esquerda, direita); int resultado = soma.Avalia(); Console.WriteLine(resultado); ImpressoraVisitor impressora = new ImpressoraVisitor(); soma.Aceita(impressora); }
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 ImprimeSubtracao(Subtracao subtracao) { ImprimeExpressao(subtracao, "-"); }