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" );
}
Exemplo n.º 3
0
*/
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;	
		}
	}