Estrutura de Dados Prof.a Mariella Berger Trabalho 1 – Gerador de Números Primos 1. Objetivo O objetivo deste trabalho é utilizar o Tipo Abstrato de Dados Lista Encadeada Dinâmica para implementar um algoritmo para geração de todos os números primos menores que um dado inteiro. 2. Implemetação Você deverá implementar um algoritmo para cálculo de todos os primos menores que um dado inteiro. Obrigatoriamente, deverá ser implementado e utilizado o Tipo Abstrato de Dados Lista Encadeada Dinâmica em seu algoritmo. Um discussão sobre uma possível implementação do algoritmo será feita em sala. Seu programa receberá um único argumento na linha de comando: o inteiro limite superior dos primos a gerar. O trabalho será testado da seguinte maneira: .\trab1 n onde: • n: é o inteiro limite superior dos primos a serem gerados. Seu programa produzirá os primos em stdout, um por linha (número seguido de enter). Exemplo de execução: ./trab1 10 2 3 5 7 3. Considerações Importantes • Modularize o seu código adequadamente. Crie arquivos .c e .h para cada módulo do seu sistema. Em especial, crie arquivos exclusivos para manipular as estruturas de dados dos tipos abstratos de dados que você estiver representando. • Seu programa deve ser, obrigatoriamente, compilado com o utilitário make. Crie um arquivo Makefile que gere como executável para o seu programa um arquivo de nome trab1. • Não utilize variáveis globais em seu programa. • Otimize seu código. O seu trabalho deve estar no máximo 30% mais lento do que o trabalho mais rápido da turma. • Crie códigos claros e organizados. Utilize um estilo de programação consistente. Comente o seu código extensivamente. Isto ajudará no momento da correção. 4. Avaliação • A nota do trabalho terá um total de 10 pontos. A pontuação será calculada automaticamente de acordo com a percentagem de erros/acertos em um benchmark prédefinido; • Serão contemplados com nota zero os trabalhos que se enquadrarem em uma ou mais situações abaixo: ✗ Plágio; ✗ Programa não compila; ✗ Não está de acordo com as especificações. 5. Entrega Este trabalho deve ser feito em grupo de até 2 componentes e entregue até o dia 26 de abril de 2006 (quarta), às 23:59:59hs. Ele deve ser enviado para [email protected]. O assunto da mensagem deve ser : ed:trab1:<nome1>:<nome2> Ex: ed:trab1:Mariella Berger:Jociel Andrade O nome do arquivo com o trabalho enviado em anexo deve ser trab1.tar.gz. Ele será descompactado da seguinte forma: tar xvzf trab1.tar.gz e deverá gerar um arquivo chamado Makefile, com as regras de compilação do programa, e os arquivos com os códigos fontes. Ao digitar: make all deve ser gerado o executável trab1 Após o envio você receberá uma confirmação de recebimento do trabalho. Caso isso não aconteça, reenvie o seu trabalho para o mesmo endereço. Na mensagem de confirmação do seu trabalho haverá um hash MD5. Para garantir que o arquivo enviado não foi corrompido, compare o MD5 do email com o gerado em sua máquina. Isso é feito com o seguinte comando no terminal: md5sum trab1.tar.gz Caso os valores sejam diferentes, o seu arquivo foi corrompido: reenvie o trabalho novamente. O recebimento dos trabalhos é automatizado. Siga as instruções à risca pois algum erro na submissão pode inviabilizar a entrega do seu trabalho. Não escreva o seu nome com caracteres estendidos (á, ç, etc.). Não utilize contas de email do HOTMAIL pois as mensagens enviadas por esse servidor não seguem o padrão. Assim, o programa de recebimento automático não consegue detectar o seu email. Não deixe para entregar seu trabalho no último instante. Você poderá perder o prazo e ter seu trabalho invalidado. 6. Observação Importante Mais detalhes serão discutidos em sala de aula. Considerações feitas em sala terão mais relevância do que as contidas nesta especificação. 7. Referências •Para compreender a importância dos números primos para a computação, leia os capítulos 10 e 11 da monografia abaixo: Números Primos: Curiosidades, Atualidades e Aplicações Alberto de Faria Matos http://www.ime.uerj.br/~progerio/monografia/2003_4/index.html •Página sobre números Primos: http://primes.utm.edu/index.html 8. Dúvidas Em caso de dúvidas no trabalho contateme em [email protected].