Lista de discussão de MAC 2301


[Prévia por Data][Próxima por Data]
[Prévia por Assunto][Próxima por Assunto]
[Índice por Data][Índice por Assunto]
[Envie uma nova mensagem para a lista] [Responda esta mensagem]

Sobre Lista de Exercicios



Caros Alunos MAC2301

Com a correção das listas de exercícios (exceto das turma de Quarta)
pudemos identificar alguns problemas que estão ocorrendo nas listas que
devem ser corrigidos. Estas observações valem para todas as turmas e
serão cobradas daqui em diante na correção dos exercícios.


1- Programas sem cabeçalho - cada programa deve conter um cabeçalho onde

estão os nomes dos alunos, o numero USP, a data do programa e uma breve
descrição de sua finalidade.

2- Os nomes das variáveis devem ser coerentes, ou seja devem ser nomes
que identifiquem o seu conteúdo de forma que ajudem no bom entendimento
do programa

3- O programa deve ser comentado, ou seja  as partes mais importantes do

programa tais como funções, loops devem ser brevemente descritos para
documentação e bom entendimento do programa. O comentário não serve
apenas para correção do programa, serve também para melhor entendimento
do autor em mudanças e análises futuras. Comentários em excesso
prejudicam o programa seja coerente ao colocá-los.

4- O programa deve ser identado, ou seja alinhado de forma que
representem as iterações e o andamento do programa ( este é um quesito
que a maioria vem trabalhando de maneira correta)

Exemplo de programa
//*******************************************************************
Programa que calcula o enésimo numero primo
Aluno : Monitor MAC2301
Nº USP : 233333
Função :O programa recebe a posição do número primo a ser calculado e
calcula esse número
//********************************************************************


#include <stdio.h>
#include <time.h>
#include <stdlib.h>

//Funcao que calcula o enesimo numero primo

void primo(int n,int *nesimo,unsigned long *tempo)
{
  int *v = malloc(n*sizeof(int));// aloca o vetor para guardar
                                             //enesimos numeros primos
  int cont_elem=2;                 //conta o numero de elementos no
vetor de primos
  int num=5, j;
  time_t timei, timef;               //variáveis que guardam tempo


  time (&timei);                      //guarda o tempo inicial de
execução
  v[1]=2;
  v[2]=3;
  while (cont_elem < n) {
     for(j=1;j<=cont_elem;j++)    //testa se o elemento e primo se não
       if ((num % v[j] ) ==0) /       /for procura próximo número primo
             break;
     if (j==cont_elem+1){         // se o numero for primo
      cont_elem++;                       //guarda no vetor de primos
      v[cont_elem]=num;
     }
    num=num+2;
 }
*nesimo=v[j];                       // quando termina busca retorna o
enesimo primo
 time (&timef);                      // gurda tempo final de execução
 *tempo=timef-timei;            //calcula o tempo total de execução
}

void main(int argc,char **argv)
{
  int n =atoi(argv[1]);           //transforma o parâmetro da linha de
                                             //comando para inteiro
  int nesimo;                           //receberá o enesimo numero
primo
  unsigned long tempo;              //recebera o tempo de execução
  primo(n ,&nesimo,&tempo);
  printf("O %d-esimo numero primo e %d (tempo =
d(s))\n",n,nesimo,tempo);
}



Qualquer dúvida é só mandar um e-mail para lista e/ou seu monitor



Bianka Gonçalves