Trabalho de Implementação 1

CI1056 - Algoritmos e Estruturas de Dados II

O objetivo deste trabalho é implementar uma função recursiva que interpreta expressões aritméticas em notação pré-fixa (também conhecida como Notação Polonesa).

A implementação deve ser feita por meio de uma função recursiva em linguagem C.


A especificação do trabalho está em trabalho-1.tar.gz, onde você vai encontrar os seguintes arquivos.

trabalho-1/avalia.h:
 

a especificação de implementação do trabalho;

trabalho-1/avalia.c:
 

um esqueleto da implementação do especificado em avalia.h

  • uma implementação de proximo_item() que pode ser usada por sua implementação
  • um esqueleto de avalia()
trabalho-1/testa.c:
 

um programa exemplo que implementa uma calculadora de expressões aritméticas em notação pré-fixa usando avalia()

trabalho-1/makefile:
 

um makefile com as opções de compilação que serão usadas na correção.

O conjunto deve compilar corretamente com o uso de make.


Entrega

O trabalho deve ser entregue sob a forma de um arquivo de nome fulano-sicrano.tar.gz, sendo que fulano e sicrano devem ser substituídos pelos login name dos autores.

O arquivo fulano-sicrano.tar.gz, uma vez expandido, deve conter (somente) os seguintes arquivos.

fulano-sicrano/avalia.c:
 a implementação do trabalho especificado em trabalho-1/avalia.h.
fulano-sicrano/readme.txt:
 texto onde você deve comunicar tudo que seja relevante para a correção do trabalho. Este arquivo deve estar presente, mesmo que vazio.

O arquivo fulano-sicrano.tar.gz deve ser entregue como anexo de mensagem enviada para renato.carmo.rc@gmail.com. O "Subject:" desta mensagem deve ser "Entrega do trabalho 1".

O prazo para a entrega é às 23h59min do dia 10 de novembro.


Perguntas Frequentes

  1. O trabalho pode ser feito em grupo?

    O trabalho pode ser feito em duplas ou individualmente.

    No caso de trabalhos individuais o nome do arquivo a ser entregue deve ser fulano.tar.gz, sendo que fulano deve ser substituido pelo login name do autor.

  2. Se eu fizer este trabalho em dupla/individualmente terei que fazer os próximos da mesma forma?

    Não. A cada trabalho você poderá escolher fazer individualmente ou em dupla com qualquer outro aluno.

  3. Por que a especificação de entrega é importante?

    Porque o trabalho entregue será pré-processado por um programa que depende de a especificação de entrega ser corretamente observada.

  4. O que acontece se a especificação de entrega não for corretamente observada?

    Seu trabalho só será corrigido quando houver tempo de fazer manualmente o pré-processamento. Neste caso haverá desconto na nota, proporcional ao trabalho de pré-processamento que tenha que ser feito manualmente.

  5. Descobri um erro depois que entreguei o trabalho. Posso entregar uma versão corrigida?

    Você pode entregar o trabalho mais de uma vez. A última versão entregue dentro do prazo é a que será corrigida.

  6. Meu trabalho tem um "bug". O que vai acontecer com minha nota?

    Haverá algum desconto, proporcional à gravidade do "bug". O desconto será menor se o "bug" for relatado no arquivo readme.txt, indicando que você estava ciente do problema quando entregou.

  7. Tenho outra pergunta/dúvida a respeito do trabalho.

    Envie mensagem para a lista da disciplina.