Trabalho 3: Gerando código de barras em Haskell
Objetivo
O objetivo deste trabalho é desenvolver um programa em Haskell, seguindo o paradigma funcional, para gerar um código de barras no padrão EAN-13, a partir de um número fornecido. O código de barras deverá ser gerado em formato SVG (Scalable Vector Graphics) e armazenado em um arquivo.
Requisitos
Requisitos mínimos (nota até 8,0)
- O número a ser codificado terá 13 dígitos de 0 a 9 e deverá ser lido da entrada padrão.
- O programa deverá validar o número fornecido, calculando o dígito verificador e comparando-o com o último dígito do número. Caso o número seja inválido, o código de barras não deve ser gerado.
- O programa deverá gerar o código de barras em formato SVG e armazená-lo em arquivo. As barras devem ser representadas como retângulos em SVG, conforme o exemplo fornecido. O requisito mínimo é desenhar apenas as barras, sem os números.
Requisitos adicionais (nota acima de 8,0)
Além dos requisitos mínimos, você deverá implementar algum recurso adicional à sua escolha, demonstrando que você procurou aprofundar seus conhecimentos. Exemplos de recursos adicionais:
- Acrescentar números no código de barras, conforme o exemplo.
- Usar um fator de escala na geração do código de barras.
- Desenvolver diferentes versões do código, usando diferentes recursos de Haskell (por exemplo: uma versão com funções de alta ordem pré-definidas em Haskell e outra versão com funções recursivas implementadas por você).
- Desenvolver uma versão do código em uma linguagem imperativa e comparar os recursos utilizados.
Instruções Adicionais
- O trabalho é individual e deverá ser entregue até dia 09/05/11, conforme as instruções gerais para entrega de trabalhos.
- Para receber nota, o trabalho deverá ser apresentado à professora no laboratório, em data a combinar.
Material de apoio
- EAN-13
Informações sobre o padrão EAN-13 de código de barras, com links para manuais. - example.svg
Exemplo de código de barras em formato SVG (sem números). - codes.hs
Exemplo de código em Haskell para expressar algumas codificações do EAN-13. - validaCPF.hs
Exemplo de programa em Haskell para validação de CPF. - Perguntas&Respostas
FAQ sobre o trabalho.