int main(int argc, char **argv) { srand(time(NULL)); int* A; int* B; A = geraVetor(); if(A == NULL){ printf("Não foi possível alocar memória para o vetor\n"); return 1; } B = geraVetor(); if(B == NULL){ printf("Não foi possível alocar memória para o vetor\n"); free(A); return 1; } int nThreads = calculaThreads(); pthread_t *thread = (pthread_t*) malloc(sizeof(pthread_t)*nThreads); if(thread == NULL){ printf("Erro: Não foi possivel alocar memória para as threads\n"); free(A); free(B); return 1; } argumentosThread *argumentos = (argumentosThread*)malloc(sizeof(argumentosThread)*NTHREADS); if(argumentos == NULL){ printf("Erro: Não foi possivel alocar memória para os argumentos\n"); free(A); free(B); free(thread); return 1; } pthread_mutex_init(&mutex, NULL); // criação da mutex imprimirVetor('A', A); imprimirVetor('B', B); prepararThreads(nThreads, A, B, thread, argumentos); esperarThreads(nThreads, thread); imprimeResultado(); free(argumentos); free(thread); free(A); free(B); pthread_mutex_destroy(&mutex); //destruição da mutex pthread_exit(NULL); }
int testaMerge(int tam){ int v[tam], n=tam; clock_t t; geraVetor(v,n); t = clock(); mergeSort( vet, n); t = clock() - t; return t; }
int testaBubble(int tam){ int v[tam], n=tam; clock_t t; geraVetor(v,n); t = clock(); bubbleSort(v,n); t = clock() - t; return t; }
int testaQuick(int tam){ int v[tam], n=tam; clock_t t; geraVetor(v,n); t = clock(); quickSort(vet, 0, n -1); t = clock() - t; return t; }
int testaSelection(int tam){ int v[tam], n=tam; clock_t t; geraVetor(v,n); t = clock(); selectionSort(v,n); t = clock() - t; return t; }
int testaInsertion(int tam){ int v[tam], n=tam; clock_t t; geraVetor(v,n); t = clock(); insertionSort(v,n); t = clock() - t; return t; }
/*------------------------------------------------------------------*/ int main(int argc, char* argv[]) { long thread; pthread_t* thread_handles; double start, finish, elapsed; if (argc != 2) Usage(argv[0]); thread_count = atoi(argv[1]); thread_handles = malloc(thread_count*sizeof(pthread_t)); printf("Enter m and n\n"); scanf("%d%d", &m, &n); A = malloc(m*n*sizeof(double)); x = malloc(n*sizeof(double)); y = malloc(m*sizeof(double)); geraMatriz(A, m, n); geraVetor(x, n); GET_TIME(start); for (thread = 0; thread < thread_count; thread++) pthread_create(&thread_handles[thread], NULL, Pth_mat_vect, (void*) thread); for (thread = 0; thread < thread_count; thread++) pthread_join(thread_handles[thread], NULL); GET_TIME(finish); elapsed = finish - start; printf("Tempo decorrido = %e segundos\n", elapsed); free(A); free(x); free(y); return 0; } /* main */
void ex02() { int status ; int * vet ; int tamVet ; printf("Antes do fork\n") ; printf("Gera Vetor\n") ; vet = geraVetor(&tamVet, vet); printf("Exibe Vetor\n") ; exibeVetor(vet, tamVet) ; printf("Fork\n") ; if(fork() != 0) { // parent code waitpid(-1, &status, 0); printf("Pai Exibe\n") ; exibeVetor(vet, tamVet) ; } // fim do if else { // child code printf("Filho Exibe\n") ; exibeVetor(vet, tamVet) ; printf("Filho Ordena\n") ; ordenaVetor(vet, tamVet) ; printf("Filho Exibe\n") ; exibeVetor(vet, tamVet) ; } // fim do else } // fim do ex02
int main() { int i; for(i = 0; i< 100; i++){ if(verificaSeEhPrimo(i)){ printf("Return true para %d\n", i); } else { printf("Return false para %d\n", i); } } //srand(time(NULL)); int pares = 0, impares = 0, valueSearch = 0; // mediaImpares = 0; int *result; MatrixOfInt a, b, c, x, y, w; printf("RESULTADOS REFERENTES A QUESTÃO 1 DA LISTA 3. \n"); printf("\nMatrix A:\n"); readDimentions(&a); if(!allocateMatrix(&a)){ printf("Não consegui alocar a matrix a. "); exit(FAIL); } //Gera vator randomico randomicMatrix(&a); //printf("\nInforme os elementos da Matrix A:\n"); //readMatrix(&a); //Ordena a matriz de forma decrescente descendingOrderWithFlag(&a); //Calcula quantos numeros pares e impares tem no vetor. showMatrix(&a); calcParesImpares(&a, &pares, &impares); printf("O números total de pares no vetor e menores que 256 é: %d. \n", pares); printf("O números total de ímpares no vetor e menores que 256 é: %d. \n", impares); printf("A média dos números ímpares é: %f. \n", returnMediaDeImpares(&a)); releaseMatrix(&a); printf("-----------------------------------------------------------------------------\n"); printf("\nRESULTADOS REFERENTES A QUESTÃO 2 DA LISTA 3. \n"); x.row = 1; y.row = 1; w.row = 1; printf("Digite o número de ELEMENTOS do vetor X:\n"); scanf("%d", &x.col); if(!allocateMatrix(&x)){ printf("Não consegui alocar a matrix X. "); exit(FAIL); } printf("\nInforme os elementos da Matrix X:\n"); readMatrix(&x); y.col = returnNumeroColunas(&x); if(!allocateMatrix(&y)){ printf("Não consegui alocar a matrix Y. "); exit(FAIL); } //gera vetor com valores entre 10 e 40 geraVetor(&x, &y); printf("\nMATRIZ X"); showMatrix(&x); printf("MATRIZ Y"); showMatrix(&y); w.col = returnNumeroColunasComIndicePar(&x); if(!allocateMatrix(&w)){ printf("Não consegui alocar a matrix Y. "); exit(FAIL); } geraVetorPartindoDeIndicePares(&x,&w); printf("MATRIZ W"); showMatrix(&w); printf("ENTRE COM O NÚMERO PARA SER PESQUISADO NO VETOR X: "); scanf("%d", &valueSearch); result = pesquisaBinaria(&x, valueSearch); if (result == NULL) { printf("Valor não encontrado.\n"); } else { printf("O valor: %d foi encontrado no vetor X.\n", *result); } printf("O menor número no vetor X é: %d.\n", *(*(x.ptr))); printf("O maior número no vetor X é: %d.\n", *(*(x.ptr)+(x.col-1))); printf("-----------------------------------------------------------------------------\n"); printf("RESULTADOS REFERENTES A QUESTÃO 3 DA LISTA 3.\n"); a.row = 1; b.row = 1; c.row = 1; printf("Digite o número de ELEMENTOS do vetores A e B:\n"); scanf("%d", &a.col); b.col = a.col; c.col = a.col; if(!allocateMatrix(&a)){ printf("Não consegui alocar a matrix A. "); exit(FAIL); } if(!allocateMatrix(&b)){ printf("Não consegui alocar a matrix B. "); exit(FAIL); } if(!allocateMatrix(&c)){ printf("Não consegui alocar a matrix C. "); exit(FAIL); } printf("\nInforme os elementos da Matrix A:\n"); readMatrix(&a); printf("\nInforme os elementos da Matrix B:\n"); readMatrix(&b); geraVetorPartindoDeOutrosDois(&a,&b,&c); printf("ENTRE COM O NÚMERO PARA SER PESQUISADO NO VETOR C: "); scanf("%d", &valueSearch); printf("MATRIX A."); showMatrix(&a); printf("MATRIX B."); showMatrix(&b); printf("MATRIX C."); showMatrix(&c); result = pesquisaSequencial(&c, valueSearch); if (result == NULL) { printf("Valor não encontrado no vetor.\n"); } else { printf("O valor: %d foi encontrado no vetor C. \n", *result); } return 0; }
int* geraVetor () { return geraVetor(N); }