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) { IExpressao soma = new Soma(new Subtracao(new Numero(100), new Numero(12)), new Numero(12)); IExpressao multi = new Multiplicacao(new Numero(2), new Numero(10)); IExpressao raiz = new RaizQuadrada(new Numero(4)); Console.WriteLine(soma.Avalia()); Console.WriteLine(multi.Avalia()); Console.WriteLine(raiz.Avalia()); IVisitor visitor = new Impressora(); soma.Aceita(visitor); Console.ReadKey(); }
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 ImprimeRaizQuadrada(RaizQuadrada raizQuadrada) { Console.Write("(√"); raizQuadrada.Expressao.Aceita(this); Console.Write(")"); }
public void ImprimeRaizQuadrada(RaizQuadrada raizQuadrada) { Console.Write("√"); raizQuadrada.Valor.Aceita(this); }