Instruções
para os Trabalhos Computacionais
Os trabahos computacionais serão avaliados segundo os
seguintes critérios:
- Utilização única da linguagem C (não use C++).
- Cumprimento da
especificação solicitada, simplicidade e
eficiência da solução
algorítmica;
- Facilidade de uso,
utilizando mensagens claras e objetivas para solicitar dados do
usuário e apresentar resultados para ele;
- Organização
e apresentação do código fonte visando
facilitar sua leitura, como uso de espaçamento entre
operadores ou parâmetros e identação
(alinhamento) das linhas de código de modo a refletir a
estrutura do programa.
- Qualidade da modularização e capacidade de reuso do
código. Atenção a coesão (tarefa bem
determinada) e acoplamento (baixa dependência entre
funções).
- Utilização mínima e parciomoniosa (ou
ausência) de comandos de desvio incondicional, como goto, break,
return, exit, continue.
- Documentação
por comentários no código. Os
comentários devem estar em pontos estratégicos,
presentes em todas as partes onde a execução do
programa não seja descrita de forma trivial ou onde o papel
de alguma variável não seja de
compreensão imediata. Não comente o
óbvio. Não esqueça de documentar cada
função e seus parâmetros, e também as
variáveis principais. Comente cada Códigos
não comentados ou mal
comentados poderão não ser analisados para
avaliação ou poderão não ser corrigidos em
sua totalidade.
- Utilização
de nomes relevantes para identificadores de
varíáveis, tipos de dados,
funções e procedimentos;
- Utilização de constantes para parametrizar o programa.
- Utilização mínima e parciomoniosa (ou ausência) de variáveis globais.
- Elaboração
de breve relatório, como preâmbulo nas linhas
iniciais do programa, contendo:
- Programa: breve
descrição do programa (1 frase curta)
- Autor: [nome de quem
fez o programa]
- Disciplina: Técnicas de Programação
- Concluído em:
[data de conclusão do código ]
- Breve
descrição: [descrição geral
e sucinta sobre o
que faz o programa (2-4 linhas),
implementação]
- Operação do programa: [quais as entradas
necessárias para o programa e como devem ser feitas, e quais
são as saídas do programa]
- Condições
de contorno: [qual é o conjunto de dados de entrada
válido para o correto funcionamento do programa? em que
situação o seu programa não
funcionaria?]
- Testes realizados:
[Descrição dos erros
ocorridos e da(s)
estratégia(s) utilizada(s) para o teste
do programa. A fase de teste
é outra etapa importante no processo de desenvolvimento de
software. O processo de concepção de um software
deve levar em conta a questão sobre como testar o que foi
construído. Obviamente não é
possível verificar todas as possibilidades de uso de um
software. É necessário, contudo, executar uma
série adequada de testes que dê um grau
mínimo de confiança de que o artefato de software
construído está funcionando de forma
aceitável. O ideal seria que pessoas distintas das que
tivessem elaborado um programa elaborassem as
seqüências de teste baseadas apenas na
descrição do que o programa faz e não
como o programa resolve o problema em questão.]
- Observações:
[Quais foram as dificuldades encontradas. O que não foi
feito. O que foi feito a mais. Sugestões
sobre possíveis extensões e melhorias do
programa. Outras observações relevantes.]
- Declaração de Autoria: Declaro que este
código foi elaborado por mim de forma individual e não
contém nenhum trecho de código de outro colega ou de
outro autor, tais como provindos de livros e apostilas, e
páginas ou documentos eletrônicos da Internet. Qualquer
trecho de código de outra autoria que não a minha
está destacado com uma citação para o autor e a
fonte do código, e estou ciente que estes trechos não
serão considerados para fins de avaliação.
A entrega desta primeira parte deve ser feita até a data combinada, enviando mensagem para angelocl [arroba] gmail.com, colocando no assunto:
[EXA045]. Devem ser entregues os arquivos do código fonte
(.C),
contendo como preâmbulo o relatório do trabalho.
Não submeta o arquivo executável (.EXE)!
Exemplo
do formato de um programa a ser entregue
/******************************************************************************** Programa: Contagem de números Autor: Fulano de Tal Disciplina: Técnicas de Programação Concluido em: 14/08/2006 Breve Descrição: Este programa faz a leitura de n números e conta quantos são positivos, negativos e nulos. Operação do Programa: O usuário deve fornecer os valores conforme solicitados pelo programa. Os valores são solicitados, um por vez, por uma mensagem que indica a posição do valor esperado na seqüência de dados de entrada. Após a digitação o usuário deverá pressionar a tecla ENTER para disparar o processo de leitura. Para processar seqüências de tamanho diferente de 10, o valor da constante N deve ser alterado no código e o código recompilado. Ao final deste processo, são apresentados os resultados da quantidade de positivos, negativos e nulos. Condições de Contorno : O programa aceita quaisquer valores inteiros no intervalo de inteiros representáveis pelo tipo integer. Dados, que não atendam a sintaxe de inteiros em C, provocarão um "erro fatal" e, conseqüentemente, a interrupção da execução do programa. Testes realizados: O programa foi testado com algumas seqüências de valores apenas positivos, apenas negativos, de zeros apenas e com valores mistos. O programa se comportou da maneira esperada. Observações: Dificuldades Encontradas As mensagens de solicitação de dados ao usuário apresentaram problemas de alinhamento sempre que o número de dígitos da variável i crescia. Para resolver o problema, passou-se a imprimir o valor de i de maneira "formatada" em um campo de 3 posições fixas. O código do programa funciona, portanto, para valores de n até 999. Para valores maiores, a dimensão do campo formatado precisa ser revisto. O que não foi feito O programa implementou todos os requisitos fornecidos na especificação. O que foi feito a mais Nenhum recurso não especificado foi implementado Sugestões O programa, ao invés de ter nele embutido o tamanho da seqüência, poderia solicitar este valor ao usuário. O programa poderia ser estendido para processar mais de uma seqüência de dados conforme solicitação do usuário. Declaro que este código foi elaborado por mim de forma individual e não contém nenhum trecho de código de outro colega ou de outro autor, tais como provindos de livros e apostilas, e páginas ou documentos eletrônicos da Internet. Qualquer trecho de código de outra autoria que não a minha está destacado com uma citação para o autor e a fonte do código, e estou ciente que estes trechos não serão considerados para fins de avaliação.
********************************************************************************/
#include <stdio.h>
#define N 10
int main () { int i, numero; int positivos, negativos, nulos; /** contadores **/
/** inicialização dos contadores **/ positivos = 0; negativos = 0; nulos = 0;
/** solicitação e análise dos dados para determinar o número de valores em cada categoria **/ printf("Entre com %d numeros inteiros.\n",N); for(i = 1; i<=N;i++) { printf("%d)",i); scanf("%d",&numero);
/** análise do numero digitado para determinar categoria **/ if (numero > 0) { printf("O numero %d e' maior que zero\n",numero); positivos++; } else if (numero < 0) { printf("O numero %d e' menor que zero\n",numero); negativos++; } else /** neste caso numero = 0 **/ { printf("O numero %d e' nulo\n",numero); nulos++; } }
/** impressão dos resultados **/ printf("Na sequencia de %d numeros temos:\n",N); printf(" - Numeros positivos: %d\n",positivos); printf(" - Numeros negativos: %d\n",negativos); printf(" - Numeros nulos: %d\n",nulos); }
|