Meu desafio é fazer um programa que irá ler uma string em uma linha, essa string é uma expressão matemática. Ex: "((7+4)x(3-4))-(2x3)"
E com essa string tenho que dar o resultado de maneira correta da expressão.
Não estou conseguindo pensar em uma maneira, sei que tem que usar o conceito de pilha, mas ainda assim não sei como implementar.
Cara, eu recomendaria você estudar expressoes regulares e conceitos de automatos.
Tenho certeza que ambos os conceitos te darão uma visão melhor de como implementar essa aplicação.
Digo pq o que você quer fazer é bem avançado… então, tentar explicar sem exemplos simples acabaria confundindo você;
Vai por mim, procura por expressoes regulares e conceitos de automatos.
staroski1 like
Você pode fazer um parser decendente recursivo.
Certa vez eu fiz um para tratar operações de conjuntos, está disponível no meu GitHub.
Você vai perceber que é praticamente a mesma coisa, só vai ter que adaptar o código da seguinte forma:
o método parseIntersection vai ter que tratar o símbolo ‘x’;
o método computeUnion vai ter que somar os dois valores recebidos por parâmetro;
o método computeDifference vai ter que subtrair os dois valores recebidos por parâmetro;
o método computeIntersection vai ter que multiplicar os dois valores recebidos por parâmetro;