CI1057
Implementação de um analisador de espressões aritméticas, codificado em uma árvore binária.
Entrada:
O programa deverá receber uma expressão aritmética seguindo o formato de parênteses aninhados. Um exemplo de expressão aritmética de entrada: (*(5)(+(4)(3)). A espressão aritmética a ser avaliada será (5 * ( 4 + 3)).
A espressão de entrada deverá ser lida e criada uma árvore binária. Os números serão nós folhas, e as operações (*, /, -, +) serão os nós internos. Deverá ser escolhido um tipo de percurso para que a análise da espressão seja feita corretamente, isto é, respeitando a precedência de operadores.
Saída:
A saída deverá ser as operações realizadas e o valor calculado da espressão aritmética.
Para o exemplo acima, a saída será:
4 + 3
7 * 5
35
Isto é, primeiro será calculada a operação de soma, e o resultado será utilizado na operação de multiplicação. A espressão de entrada sempre será correta, com o número exato de parênteses necessários. Não serão omitidos parênteses.
ENTREGA
Entregar os arquivos fontes e o Makefile. Este deve ser compilado facilmente nos servidores do Dinf, através de comando make.
MODO DE ENTREGA : enviar os arquivos por email para marcos.ddf _at_ inf.ufpr.br (até as 24h).
O trabalho deve ser em duplas. No assunto, preencher com “Entrega trabalho 057”.