isvaldo / Projeto-Integrado

Projeto integrado
0 stars 0 forks source link

Programa de Coleta de Dados de Tempo de Execução (C) #9

Closed isvaldo closed 9 years ago

isvaldo commented 9 years ago

aguardando melhor definição

CaioMarinho commented 9 years ago

Modifiquei o Read-Me da pasta de C com a descrição do arquivo e mudei o nome do issue á que o trabalho não vai ser uma calculadora de pegadas de Carbono.

Fechei e reabri o issue sem querer.

isvaldo commented 9 years ago

@josinaldobarbosa , eu vi que você já fez algum rascunho, coloca ele na pasta do C nesse repositório !!

josinaldobarbosa commented 9 years ago

@isvaldo ok, falta validação e etc... mas ve se posso dar continuidade.

isvaldo commented 9 years ago

pode sim, ficou show, vai atualizando o repositório, depois que estiver funcionando, vamos colocar uma interface (ou não)

On Tue, Nov 4, 2014 at 12:14 PM, Josinaldo Albuquerque Barbosa < notifications@github.com> wrote:

@isvaldo https://github.com/isvaldo ok, falta validação e etc... mas ve se posso dar continuidade.

— Reply to this email directly or view it on GitHub https://github.com/isvaldo/Projeto-Integrado/issues/9#issuecomment-61644639 .

josinaldobarbosa commented 9 years ago

https://github.com/isvaldo/Projeto-Integrado/blob/master/C/rascunho.c

josinaldobarbosa commented 9 years ago

aqui o porque pegar a referencia da hora do sistema, http://linguagemc.com.br/valores-aleatorios-em-c-com-a-funcao-rand/

CaioMarinho commented 9 years ago

Modifiquei um pouco o rascunho de Josinaldo e postei como rascunho_2 aqui no git. Nele eu usei função, coisa que eu não estou acostumado a fazer, logo, se tiver algum erro corrijam por favor. E se não gostarem modifiquem a vontade.

Tá aqui ele: https://github.com/isvaldo/Projeto-Integrado/blob/master/C/rascunho_2.c

isvaldo commented 9 years ago

OK, então pessoal a ideia e editar o mesmo arquivo mantendo as versões

josinaldobarbosa commented 9 years ago

pesquisei, pesquisei, pesquisei mas não achei como pegar a hora

isvaldo commented 9 years ago

ACHEI AQUI

xD

/* localtime example */
#include <stdio.h>
#include <time.h>

int main ()
{
  time_t rawtime;
  struct tm * timeinfo;

  time ( &rawtime );
  timeinfo = localtime ( &rawtime );
  printf ( "Current local time and date: %s", asctime (timeinfo) );

  return 0;
}```
josinaldobarbosa commented 9 years ago

haha

ja tentei não funfa, testa ai:

include

include

int main () { time_t rawtime; struct tm * timeinfo; int i, j;

time ( &rawtime ); timeinfo = localtime ( &rawtime ); printf ( "Current local time and date: %s", asctime (timeinfo) ); for (j = 0; j < 10; j ++) for (i = 0; i < 138763431; i ++); printf ( "\nCurrent local time and date: %s", asctime (timeinfo) );

return 0; }

isvaldo commented 9 years ago

captura de tela de 2014-11-04 22 55 07

então acho que você está fazendo algo de errado, aqui funcionou, quando der algum erro, diz qual é dae posso te ajudar

josinaldobarbosa commented 9 years ago

tipo, coloca um loop(que demore é claro), e printa dnv a hora. vai continuar a msm coisa

isvaldo commented 9 years ago

Isso e um "objeto" você precisa pegar outra referência Em 04/11/2014 23:11, "Josinaldo Albuquerque Barbosa" < notifications@github.com> escreveu:

tipo, coloca um loop(que demore é claro), e printa dnv a hora. vai continuar a msm coisa

— Reply to this email directly or view it on GitHub https://github.com/isvaldo/Projeto-Integrado/issues/9#issuecomment-61744544 .

isvaldo commented 9 years ago

Então pessoal, eu não queria meter a mão , mas acabei fazendo ... falta algumas coisas, organizei o código e deixei ele mais simples (Muito mais simples), então pessoal tenta manter o mesmo nivel de organização

Falta alguns ajustes !

josinaldobarbosa commented 9 years ago

consegui fazer oq vc falou

isvaldo commented 9 years ago

cara, então posta tudo no github.. eu acabei pegando uma versão desatualizada...

isvaldo commented 9 years ago

resolvi esse aquele problema assim

a cada vez que chama a função, um novo tempo é mostrado

void mostraTempo(){
    /*retorna tempo atual */
    char tempo;
    time_t rawtime;
    struct tm * timeinfo;
    time ( &rawtime );
    timeinfo = localtime ( &rawtime );
    puts(asctime (timeinfo));

}
josinaldobarbosa commented 9 years ago

ja tava organizando, sim com função, quando acabar mando, mas vai demorar um pouco que vo caprichar

isvaldo commented 9 years ago

Não não cara.. tem que está sempre atualizando com a versão oficial aqui... do contrario meu trabalho de 0.5 hrs foi inútil !

isvaldo commented 9 years ago
/* includes*/
// SO IMPORTE O QUE È REALMENTE NECESSARIO
#include <stdio.h>
#include <limits.h>
#include <time.h>
/*funções*/

// Essa variavel é global, pois é utilizada em todos as funções do programa
int NElementos;
void pegaNumeroElementos(){
    /*Pega o numero de elementos e seta na variavel*/
    puts("Informe o numero de elementos que você quer trabalhar [0-500.000]");
    scanf(" %d",&NElementos);
    }

int geraElementos(int elementos[]) {
/* função que gera numeros aleatorios */

}
void maior(int vet[]){
    /*retorna o maior valor de uma array*/
    int i;
    int maior=INT_MIN;
    for (i=0;i<NElementos;i++){
            maior = vet[i]>maior? vet[i]:maior;
        }
    printf("Maior Numero: %d\n",maior);
}

void menor(int vet[]){
    /*retorna o menor valor de uma array*/
    int i;
    int menor=INT_MAX;
    for (i=0;i<NElementos;i++){
            menor = vet[i]<menor? vet[i]:menor;
        }
    printf("Menor Numero: %d\n",menor);
}

void soma(int vet[]){
    /*Retorna a soma de todos elementos de um vetor*/
    int i;
    int long soma=0;
    for (i=0;i<NElementos;i++) {
        soma += vet[i];
    }
    printf("Soma total: %d",soma);

}

void mostraTempo(){
    /*retorna tempo atual */
    char tempo;
    time_t rawtime;
    struct tm * timeinfo;
    time ( &rawtime );
    timeinfo = localtime ( &rawtime );
    puts(asctime (timeinfo));

}

void mostraMenu() {
    /*Layout do menu*/
    puts("#####################################################################");
    puts("# Escolha uma das opções                                            #");
    puts("# 1) Calcula a soma de todos os elementos gerados aleatoriamente    #");
    puts("# 2) Calcula a soma de todos e encontrar o maior valor              #");
    puts("# 3) Calcula a soma de todos e encontrar o maior valor e o menor    #");
    puts("#####################################################################\n");
}
void mostraResultado(int opcao, int vet[]){
    /* Mostra resultado na tela*/
    switch(opcao) {
    case 1:
        soma(vet);
        break;
    case 2:
        soma(vet);
        maior(vet);
        break;
    case 3:
        soma(vet);
        maior(vet);
        menor(vet);
        break;
    default:
        puts("Opção Invalida");
        break;
    }
    puts("precione qualquer tecla para continuar");
    //Trava a tela até que algo aconteça
    getchar();
}

void limparTela() {
    /*desenvolver aqui como limpar tela*/

}

/* inicio do programa */
main () {
    pegaNumeroElementos();
    int elementos[NElementos];
    elementos = geraElementos(elementos);
    limparTela();

    /*forma um loop infinito mostrando as opções*/
    int opcao;
    while(1){
    mostraMenu(); // mostra menu
    scanf("%d",&opcao);  // le uma opção
    mostraResultado(opcao,elementos); // mostra resultadi
    limparTela(); // limpa a tela e repete o processo
    }

}´´´ 
isvaldo commented 9 years ago

tem algumas coisas que precisam melhorar, acho que da para tirar aquela variavel global, mas somente se o método for "clean", nada de Aviadar o programa com cor System(qualquer merda) etc.. isso deixa o programa instável, falta implementar algumas funções.. acho que ate domingo isso deve ta pronto

@josinaldobarbosa , @CaioMarinho olhem se ta ficando legal e talz, isso vale para todos.

josinaldobarbosa commented 9 years ago

fico mt bom

josinaldobarbosa commented 9 years ago

tá ruim kk

josinaldobarbosa commented 9 years ago

void soma(int vet[]){ /Retorna a soma de todos elementos de um vetor/ int i; int long soma=0; // Tempo inicial printf("Tempo inicial: "); mostraTempo(); // Diferença em segundos clock_t tempo; tempo = clock(); for (i=0;i<NElementos;i++) { soma += vet[i]; } // Tempo final printf("Tempo final : "); mostraTempo(); printf("Tempo total : %4.3f segundos\n\n",(clock() - tempo) / (double)CLOCKS_PER_SEC); printf("Soma total : %d\n\n",soma); }

josinaldobarbosa commented 9 years ago

ainda tem outro problema, quando for menor e maior número, vai verificar o tempo deles tb?

josinaldobarbosa commented 9 years ago

atualizado olhem lá

isvaldo commented 9 years ago

Vou ver amanha to estudando atalhos eclipse Em 09/11/2014 15:24, "Josinaldo Albuquerque Barbosa" < notifications@github.com> escreveu:

atualizado olhem lá

— Reply to this email directly or view it on GitHub https://github.com/isvaldo/Projeto-Integrado/issues/9#issuecomment-62311226 .

josinaldobarbosa commented 9 years ago

manda o link huahauhau

josinaldobarbosa commented 9 years ago

@isvaldo será que realmente tem algum erro no tempo?

isvaldo commented 9 years ago

tem, você ta dividindo mile segundo por segundo, criei uma issue para isso, dps olha

CaioMarinho commented 9 years ago

Eu acho que achei um erro conceitual no nosso código em c.

Vejam se enxergam o mesmo erro que eu no código original (tanto faz se é o versão única ou não única, a única diferença são alguns parâmetros). O problema é que quando você chama a função "geraElementos" no main, pelo o que eu entendi, só é atribuído um dos valores dos números aleatórios gerados a só uma posição de um vetor. Apesar do código funcionar, eu não vejo o porque dele estar funcionando

isvaldo commented 9 years ago

Quando eu fiz eu n implementei apenas deixei a função vazia, e deixei os parâmetros globais Em 14/11/2014 17:03, "CaioMarinho" notifications@github.com escreveu:

Eu acho que achei um erro conceitual no nosso código em c.

Vejam se enxergam o mesmo erro que eu no código original (tanto faz se é o versão única ou não única, a única diferença são alguns parâmetros). O problema é que quando você chama a função "geraElementos" no main, pelo o que eu entendi, só é atribuído um dos valores dos números aleatórios gerados a só uma posição de um vetor. Apesar do código funcionar, eu não vejo o porque dele estar funcionando

— Reply to this email directly or view it on GitHub https://github.com/isvaldo/Projeto-Integrado/issues/9#issuecomment-63112806 .

CaioMarinho commented 9 years ago

Eu continuo achando que nosso tempo está estranho

isvaldo commented 9 years ago

Vou invocar Guilherme para olhar o programa Em 14/11/2014 17:46, "CaioMarinho" notifications@github.com escreveu:

Eu continuo achando que nosso tempo está estranho

— Reply to this email directly or view it on GitHub https://github.com/isvaldo/Projeto-Integrado/issues/9#issuecomment-63118798 .

CaioMarinho commented 9 years ago

Acho uma boa

isvaldo commented 9 years ago

Cara.. agora que parei para terminar o codigo,

DEUS gente... o codigo está todo poluido, está praticamente tudo errado.

as funções não tem seus respectivas funções...

tive muita culpa de não ficar vendo commit por commit, mas tudo bem pessoal vamos lá...

por que diabos isso está assim

void maior(int vet[], int nElementos){
    /* Retorna o maior valor de uma array */
    int i;
    int maior = INT_MIN;

    // Tempo inicial
    printf("\nTempo inicial: ");
    mostraTempo();

    // Diferença em segundos
    clock_t tempo;
    tempo = clock();

    for (i = 0; i < nElementos; i++) {
        maior = vet[i] > maior? vet[i]:maior;
    }

    // Tempo final
    printf("Tempo final  : ");
    mostraTempo();
    printf("Tempo total  : %4.3f segundos\n\n", (clock() - tempo) / (double)CLOCKS_PER_SEC);
    printf("[Maior Numero: %d]\n\n", maior);
}
isvaldo commented 9 years ago

Por que uma função maior, dentro dela tem forma de calcular tempo ? isso não faz sentido... cada função tem sua responsabilidade.

procurei 1 segundo na internet e descobri que existe uma função que faz o calculo da diferença do tempo para nos. estamos muito longe de terminar o código..

CaioMarinho commented 9 years ago

Vou mexer um pouco no código e postar aqui pra ver o que vocês acham

isvaldo commented 9 years ago

Sua solução e Suja, Hauahaua quanto menos números arbitrários melhor, o switch já resolve isso com default Em 17/11/2014 18:45, "Josinaldo Albuquerque Barbosa" < notifications@github.com> escreveu:

isso resolveria @CaioMarinho https://github.com/CaioMarinho oq falei:

if(opcao >= 1 && opcao <= 3){ ... }

— Reply to this email directly or view it on GitHub https://github.com/isvaldo/Projeto-Integrado/issues/9#issuecomment-63372468 .

josinaldobarbosa commented 9 years ago

o tempo de execução está depois do switch...

isvaldo commented 9 years ago

Como assim ? Em 17/11/2014 20:17, "Josinaldo Albuquerque Barbosa" < notifications@github.com> escreveu:

o tempo de execução está depois do switch...

— Reply to this email directly or view it on GitHub https://github.com/isvaldo/Projeto-Integrado/issues/9#issuecomment-63386581 .