Baixe o app para aproveitar ainda mais
Prévia do material em texto
Estrutura de Dados DC/UEL 2014 Trabalho: Calculadora Polonesa Notação Polonesa é uma forma de notação para lógica, aritmética e álgebra. Não precisa de parênteses ou outros delimitadores para indicar os cálculos que devem ser realizados primeiramente, mas mesmo assim não há ambiguidade quanto à ordem de resolução. Os operadores devem preceder os dois valores numéricos associados. O matemático polonês Jan Łukasiewicz criou essa notação em torno de 1920 para simplificar a lógica nas sentenças matemáticas. Não é muito usado na matemática convencional, mas muito usado na ciência da computação. Como os operadores devem preceder os valores, a notação polonesa de soma é: + a b Quanto mais "interna" a operação, antes ela deve ser executada. Então, as expressões: * + a b c e * c + a b Na notação convencional, seriam, respectivamente: (a + b) * c e c * (a + b) (fonte: Wikipedia) Implemente uma calculadora polonesa usando pilha com alocação estática. O programa deve ler um arquivo com uma sequência de expressões em notação polonesa, calcular e imprimir os resultados (na saída padrão). Cada linha do arquivo contém uma única expressão. O final de cada expressão é marcado com o sinal #. Uma expressão pode conter números inteiros (sem sinal com apenas 1 algarismo), espaços, e os 4 operadores aritméticos básicos. O programa também deve imprimir uma mensagem de erro caso a expressão não contenha o número adequado de operandos ou operadores. É esperado que o programa seja organizados em módulos e que os módulos sejam bem documentados. Equipes: 2 ou 3 elementos Entregar: • TADs que foram usados no projeto da solução (escrevê-los) antes de começar a implementação. • Código impresso • um arquivo de teste impresso (com 20 linhas) • a saída produzida por este arquivo (impresso) Demonstração: em sala de aula com compilação do código durante a demonstração Entrega: 14/3 Estrutura de Dados DC/UEL 2014 Exemplo: Arquivo de teste (t.txt) + 1 2# * 2 3# - 3 4# / 4 5# + * 1 2 3# / + 1 2 * 3 4# Console (stdin, stdout) > calc -f t.txt 3 6 -1 0.8 5 0.25 O que é esperado: • Trabalho em equipe: trocas de ideias, discussão respeitosa entre os membros da equipe sobre as possíveis soluções, decisões de projeto tomadas em conjunto, etc. • Domínio da técnica de projeto de TADs: boa especificação, precisão de conceitos e na definição da condições. • Código de qualidade, bem comentado, principalmente os arquivos de cabeçalho. • Programa dividido em vários módulos (1 módulo para cada TAD)
Compartilhar