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()}"); }
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()); }