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
- Subject: Sobre Lista de Exercicios
- From: Bianka Maria Moura Teixeira Gonçalves <bkmmtg@ime.usp.br>
- Date: Wed, 28 Mar 2001 13:19:01 -0300
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