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 main() { POLINOMIO ptrPolinomio; int evaluacion, incognita; ptrPolinomio = NULL; capturaPolinomio( &ptrPolinomio ); incognita = leer( "\n Digite el valor de la incognita x = " ); evaluacion = evaluaPolinomio( ptrPolinomio , incognita ); imprimeResultado( evaluacion, incognita ); system( "pause" ); }
*/ void menu(matriz **m,matriz *deposito) { int escolha,indice; while(escolha!=15) { printf("\t╔══════════════════════════════════════════════════════════╗\n"); printf("\t║1)Lista de Matrizes da memoria ║\n"); printf("\t╠══════════════════════════════════════════════════════════╣\n"); printf("\t║2)Multiplicar por Escalar ║\n"); printf("\t╠══════════════════════════════════════════════════════════╣\n"); printf("\t║3)Dividir por escalar ║\n"); printf("\t╠══════════════════════════════════════════════════════════╣\n"); printf("\t║4)Multiplicar duas matrizes ║\n"); printf("\t╠══════════════════════════════════════════════════════════╣\n"); printf("\t║5)Verificar se a matriz é quadrada ║\n"); printf("\t╠══════════════════════════════════════════════════════════╣\n"); printf("\t║6)Verificar se a matriz é nula ║\n"); printf("\t╠══════════════════════════════════════════════════════════╣\n"); printf("\t║7)Calcular o determinante ║\n"); printf("\t╠══════════════════════════════════════════════════════════╣\n"); printf("\t║8)Calcular a transposta de uma matriz ║\n"); printf("\t╠══════════════════════════════════════════════════════════╣\n"); printf("\t║9)Calcular a matriz dos cofatores de uma matriz ║\n"); printf("\t╠══════════════════════════════════════════════════════════╣\n"); printf("\t║10)Calcular a matriz adjunta de uma matriz quadrada ║\n"); printf("\t╠══════════════════════════════════════════════════════════╣\n"); printf("\t║11)Verificar se uma matriz é inversível ║\n"); printf("\t╠══════════════════════════════════════════════════════════╣\n"); printf("\t║12)Calcular inversa ║\n"); printf("\t╠══════════════════════════════════════════════════════════╣\n"); printf("\t║13)Adicionar Matriz ║\n"); printf("\t╠══════════════════════════════════════════════════════════╣\n"); printf("\t║14)Imprime no arquivo ║\n"); printf("\t╠══════════════════════════════════════════════════════════╣\n"); printf("\t║15)Sair ║\n"); printf("\t╚══════════════════════════════════════════════════════════╝\n"); printf("O que deseja fazer: "); scanf("%d",&escolha); switch(escolha) { case 1: listaMatrizes(m); break; case 2: deposito=multiplicaE(m); if(deposito==NULL) printf("Erro!!!Matriz inexistente.\n"); else m=salvarMatriz(m,deposito); break; case 3: deposito=divideE(m); if(deposito==NULL) printf("Erro!!!Matriz inexistente.\n"); else m=salvarMatriz(m,deposito); break; case 4: deposito=multiplicaM(m); if(deposito==NULL) printf("Nao foi possivel multiplicar.\n"); else m=salvarMatriz(m,deposito); break; case 5: printf("Qual o indice da matriz que deseja verificar: "); scanf("%d",&indice); if(indice>numeroMatrizes-1) { printf("Matriz inexistente.\n"); break; } if(verificaQuadrada(m,indice)==1) printf("É quadrada.\n"); else printf("Não é quadrada.\n"); break; case 6: printf("Qual o indice da matriz que deseja verificar: "); scanf("%d",&indice); if(verificaNula(m,indice)==2) { printf("Matriz inexistente.\n"); break; } if(verificaNula(m,indice)==0) printf("Matriz nula.\n"); else printf("Matriz nao nula.\n"); break; case 7: det(m); break; case 8: deposito=transpondo(m); if(deposito==NULL) { printf("Matriz inexistente.\n"); break; } m=salvarMatriz(m,deposito); break; case 9: deposito=cof(m); if(deposito==NULL) { printf("Matriz inexistente.\n"); break; } m=salvarMatriz(m,deposito); break; case 10: deposito=adj(m); if(deposito==NULL) { printf("Matriz inexistente.\n"); break; } m=salvarMatriz(m,deposito); break; case 11: printf("Qual o indice da matriz que deseja verificar: "); scanf("%d",&indice); if(indice>numeroMatrizes-1) { printf("Matriz inexistente.\n"); break; } if(verificaQuadrada(m,indice)==1 && determinante(m[indice])!=0) printf("É inversivel.\n"); else printf("Não é iversivel.\n"); break; case 12: deposito=inv(m); if(deposito==NULL) { printf("Matriz inexistente.\n"); break; } m=salvarMatriz(m,deposito); break; case 13: m=adicionaMatriz(m); break; case 14: imprimeResultado(m); break; case 15: break; default: printf("Escolha nao consta no menu\n"); break; } }