Closed isvaldo closed 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.
@josinaldobarbosa , eu vi que você já fez algum rascunho, coloca ele na pasta do C nesse repositório !!
@isvaldo ok, falta validação e etc... mas ve se posso dar continuidade.
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 .
aqui o porque pegar a referencia da hora do sistema, http://linguagemc.com.br/valores-aleatorios-em-c-com-a-funcao-rand/
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
OK, então pessoal a ideia e editar o mesmo arquivo mantendo as versões
pesquisei, pesquisei, pesquisei mas não achei como pegar a hora
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;
}```
ja tentei não funfa, testa ai:
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; }
então acho que você está fazendo algo de errado, aqui funcionou, quando der algum erro, diz qual é dae posso te ajudar
tipo, coloca um loop(que demore é claro), e printa dnv a hora. vai continuar a msm coisa
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 .
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 !
consegui fazer oq vc falou
cara, então posta tudo no github.. eu acabei pegando uma versão desatualizada...
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));
}
ja tava organizando, sim com função, quando acabar mando, mas vai demorar um pouco que vo caprichar
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 !
/* 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
}
}´´´
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.
fico mt bom
tá ruim kk
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); }
ainda tem outro problema, quando for menor e maior número, vai verificar o tempo deles tb?
atualizado olhem lá
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 .
manda o link huahauhau
@isvaldo será que realmente tem algum erro no tempo?
tem, você ta dividindo mile segundo por segundo, criei uma issue para isso, dps olha
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
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 .
Eu continuo achando que nosso tempo está estranho
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 .
Acho uma boa
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);
}
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..
Vou mexer um pouco no código e postar aqui pra ver o que vocês acham
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 .
o tempo de execução está depois do switch...
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 .
aguardando melhor definição