public string Resolver()
        {
            var resultadoParenteses = Parentese.Resolver();

            ExpressaoPartes.AppendLine($"-> {Expressao.ToString()}");
            string expressaoComEspaco = FormatarComEspacos(resultadoParenteses);

            ExpressaoPartes.AppendLine($"-> {expressaoComEspaco}");
            Colchete.AdicionarExpressao(resultadoParenteses);

            var resultadoColchetes = Colchete.Resolver();

            if (!resultadoParenteses.Equals(resultadoColchetes))
            {
                expressaoComEspaco = FormatarComEspacos(resultadoColchetes);
                ExpressaoPartes.AppendLine($"-> {expressaoComEspaco}");
            }

            Chave.AdicionarExpressao(resultadoColchetes);
            var resultadoChaves = Chave.Resolver();

            if (!resultadoColchetes.Equals(resultadoChaves))
            {
                expressaoComEspaco = FormatarComEspacos(resultadoChaves);
                ExpressaoPartes.AppendLine($"-> {expressaoComEspaco}");
            }

            var resultadoFinal = new OperacaoMatematica(resultadoChaves.ToString());
            var resultado      = resultadoFinal.Calcular();

            ExpressaoPartes.AppendLine($"-> {resultado.ToString()}");

            return($"-> {resultado.ToString()}");
        }
Example #2
0
        public string Resolver()
        {
            while (TemAgrupador)
            {
                ResolverOperadoresMultiplos();

                var expressaoMinimaEncontrada = ObterExpressaoComAgrupadorQueDeveSerResolvidaPrimeiro;
                var operacaoMatematica        = new OperacaoMatematica(expressaoMinimaEncontrada.Value);

                var valorCalculado = operacaoMatematica.Calcular();
                Expressao.Replace(expressaoMinimaEncontrada.Value, valorCalculado.ToString());
            }

            return(Expressao.ToString());
        }