Skip to content
Snippets Groups Projects
Commit c2033800 authored by Matheus Horstmann's avatar Matheus Horstmann
Browse files

log falta imprimir

parents 2224c701 72729b6b
No related branches found
No related tags found
No related merge requests found
...@@ -41,9 +41,12 @@ void jogar (int *vet, int *vet_ord, int N) ...@@ -41,9 +41,12 @@ void jogar (int *vet, int *vet_ord, int N)
if (i == 4) if (i == 4)
printf ("Sucesso!!\n"); printf ("Sucesso!!\n");
fprintf(log,"Sucesso! Os numero inseridos estao contidos no vetor\n"); fprintf(log,"Sucesso! Os numero inseridos estao contidos no vetor\n");
else if (i > 0) else if (i > 1)
printf ("%d valores encontrados!\n", i); printf ("%d valores encontrados!\n", i);
fprintf(log,"nem todos oss numero inseridos estao contidos no vetor\n"); fprintf (log,"%d valores encontrados!\n", i);
else if (i == 1)
printf ("1 valor encontrado!\n");
fprintf (log,"1 valor encontrado!\n");
else else
printf ("Nenhum valor encontrado!\n"); printf ("Nenhum valor encontrado!\n");
fprintf (log,"Nenhum valor encontrado!\n"); fprintf (log,"Nenhum valor encontrado!\n");
...@@ -56,7 +59,7 @@ void vetcpy (int *v1, int *v2, int N) ...@@ -56,7 +59,7 @@ void vetcpy (int *v1, int *v2, int N)
v2[i] = v1[i]; v2[i] = v1[i];
} }
int tempoEmMili(clock_t inicio, clock_t fim) int tempoEmMic(clock_t inicio, clock_t fim)
{ {
double tt; double tt;
tt = (((fim-inicio)*1000000)/CLOCKS_PER_SEC); tt = (((fim-inicio)*1000000)/CLOCKS_PER_SEC);
...@@ -77,7 +80,7 @@ void jornada(int Tam, int max) ...@@ -77,7 +80,7 @@ void jornada(int Tam, int max)
for (i = 0; i < 10000; i++) for (i = 0; i < 10000; i++)
SelectSort(mat_ord[i], Tam); SelectSort(mat_ord[i], Tam);
tf = clock(); tf = clock();
tt = tempoEmMili(ti,tf); tt = tempoEmMic(ti,tf);
printf("SelectSort: %d micro-segundos\n", tt); printf("SelectSort: %d micro-segundos\n", tt);
fprintf(log,"SelectSort: %d micro-segundos\n", tt); fprintf(log,"SelectSort: %d micro-segundos\n", tt);
...@@ -87,7 +90,7 @@ void jornada(int Tam, int max) ...@@ -87,7 +90,7 @@ void jornada(int Tam, int max)
for (i = 0; i < 10000; i++) for (i = 0; i < 10000; i++)
BubbleSort(mat_ord[i], Tam); BubbleSort(mat_ord[i], Tam);
tf = clock(); tf = clock();
tt = tempoEmMili(ti,tf); tt = tempoEmMic(ti,tf);
printf("BubbleSort: %d micro-segundos\n", tt); printf("BubbleSort: %d micro-segundos\n", tt);
fprintf(log,"BubbleSort: %d micro-segundos\n", tt); fprintf(log,"BubbleSort: %d micro-segundos\n", tt);
...@@ -97,7 +100,7 @@ void jornada(int Tam, int max) ...@@ -97,7 +100,7 @@ void jornada(int Tam, int max)
for (i = 0; i < 10000; i++) for (i = 0; i < 10000; i++)
QuickSort_rec(mat_ord[i], 1, Tam); QuickSort_rec(mat_ord[i], 1, Tam);
tf = clock(); tf = clock();
tt = tempoEmMili(ti,tf); tt = tempoEmMic(ti,tf);
printf("QuickSort Recursivo: %d micro-segundos\n", tt); printf("QuickSort Recursivo: %d micro-segundos\n", tt);
fprintf(log,"QuickSort Recursivo: %d micro-segundos\n", tt); fprintf(log,"QuickSort Recursivo: %d micro-segundos\n", tt);
...@@ -107,7 +110,7 @@ void jornada(int Tam, int max) ...@@ -107,7 +110,7 @@ void jornada(int Tam, int max)
for (i = 0; i < 10000; i++) for (i = 0; i < 10000; i++)
QuickSort_it(mat_ord[i], Tam); QuickSort_it(mat_ord[i], Tam);
tf = clock(); tf = clock();
tt = tempoEmMili(ti,tf); tt = tempoEmMic(ti,tf);
printf("QuickSort Iterativo: %d micro-segundos\n", tt); printf("QuickSort Iterativo: %d micro-segundos\n", tt);
fprintf(log,"QuickSort Iterativo: %d micro-segundos\n", tt); fprintf(log,"QuickSort Iterativo: %d micro-segundos\n", tt);
} }
......
Uma das primeiras coisas que fizemos foi a biblioteca busca.h
A principio implementamos os dois tipos de buscas necessários
pesqseq e pesqbin
Como pesqbin só pode ser utilizada em vetores ordenados, colocamos
na mesma biblioteca os algoritmos de ordenacao
O algoritmo para encontrar a mediana foi mais complicado do que parecia a principio
Isso ocorreu porque tentamos fazer o algoritmo usando menos condicionais
Ocorreram varios problemas na particao: na primeira versao do algoritmo, se
a mediana nao fosse o primeiro elemento da esquerda, por algum motivo alguns valores ficavam no lugar errado
na segunda versao novamente tivemos problemas com valores ficando no lugar errado,
dessa vez descobrimos ser um problema com a escolha de índices para i
Ambos os quicksorts foram simplese de fazer, assim que a particao ficou certa
Um dos maiores problemas encontrados no programa principal foi com o tratamento de vetores
Por algum motivo, ainda desconhecido por nós, se alocavamos memoria
para o vetor dentro de uma funcao (por exemplo na vetSort), seus valores voltavam para a o main()
com lixo na memoria, ao inves dos valores atribuidos a eles, e em algum momento
tinhamos uma falha de segmentacao.
Demoramos muito para encontrar esse erro, tivemos que fazer varios testes
com vetores nao dinamicamente alocados, ate que por fim, descobrimos que
se alocavamos memoria para o vetor no proprio main(), os valores dentro das funcoes
alteravam os valores do vetor em main() normalmente.
O problema com a alocacao de memoria para o vetor foi tao grande que chegamos a pensar que o problema estava
em outras funcoes que nao eram a real fonte do problema.
Contudo, foi assim tambem que pudemos perceber que havia um problema
com a primeira versao da particao.
A biblioteca time.h foi necessária para ter numeors randomicos, utilizando como sementes (seeds) o proprio tempo da maquina
Mais tarde pudemos utiliza-la tambem para contarmos, efetivamente, o tempo passado no uso das 10 mil ordenacoes
CLOCKS_PER_SEC no divisor, dentro da funcao tempoEmMic, serve para transformar os clocks em segundos
porem, em segundos possivelmente nao teriamos grande diferenca de tempo, portanto multiplicamos por
1000000 para obter MicroSegundos
No jogar() decidimos usar ambas as pesquisas para procurar os valores dados pelo jogador
pelo motivo de simplesmente dar uso a ambas as pesquisas (e mostrar que ambas funcionam normalmente)
A parte de impressao é simples e tem apenas funcao de mostrar ao usuario, de forma direta, o resultado
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment