Buscar

Trabalho de ED - Pilha

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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)

Continue navegando

Outros materiais