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:
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);
}