Instruções de Entrega

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:
    1. Programa: breve descrição do programa (1 frase curta)
    2. Autor: [nome de quem fez o programa]
    3. Disciplina: Técnicas de Programação
    4. Concluído em: [data de conclusão do código ]
    5. Breve descrição: [descrição geral e sucinta sobre o que faz o programa (2-4 linhas),  implementação]
    6. 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]
    7. 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?]
    8. 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.]
    9. 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.]
    10. 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);
}





Comments