Ir ao conteúdo

Posts recomendados

Postado
/*Desenvolver um programa em OpenMP que popule aleatoriamente um vetor de 10.000 registros de números
inteiros, de maneira paralela. Após, paralelamente, crie através de sections três regiões (uma para cada
thread) para: a) efetuar a soma de todos os elementos do vetor; b) encontrar o maior valor do vetor e sua
respectiva posição de armazenamento; c) contar a quantidade de números múltiplos de 7 armazenados no
vetor.*/

#include <stdio.h>
#include <stdlib.h>
#include <omp.h>	

int main() {
	
	int i, j, k;
	//int soma, maior, multiplos7, posicao;
	int **V,  **soma, **maior, **multiplos7;
	tamanho = 10;
	
	//Aloca o vetor
	V = malloc(tamanho*sizeof(int *));
	soma = malloc(linhas*sizeof(int *));
	maior = malloc(linhas*sizeof(int *));
	multiplos7 = malloc(linhas*sizeof(int *));
	
	//Região paralela que atribui valores as matrizes A e B
	#pragma omp parallel shared(V, i, tamanho)
	{
		#pragma omp for
		for (i = 0; i < tamanho; i++) {
			V[i] = i+1;
		}	
	}	
	
	#pragma omp parallel shared(V, tamanho, soma, maior, posicao, multiplos7) private (i, j, k)
	{
		#pragma omp sections
		{
			//1ª região com section
			#pragma omp section
			{
				

				for (int i = 0; i<tamanho; i++){
					soma = soma + V[i];
				}
				
				printf("soma: %i\n", soma);
			}

			//2ª região com section
			#pragma omp section
			{
				int maior = v[0];
				for (int j = 0; j< tamanho; j++){
					if (maior > v[j]){
						maior = v[j];
						posicao = j;
					}	
				}
				printf("maior: %i\n", maior);
				printf("posicao do maior: %i\n", posicao);
			}
			
			//3ª região com section
			#pragma omp section
			{
				multiplos7 = 0;
				for (int k = 0; k< tamanho; k++){
					if (v[k]%7==0){
						multiplos7 = multiplos7 + 1;
					}	
				}
				printf("Quantidade de multiplos de 7: %i\n", multiplos7);
			}
		}				
	}
	
	//desaloca
	free(V);			
	free(soma);
	free(maior);
	free(multiplos7);
	
	return(0);
}

 

  • Curtir 1
Postado

@xAJSx    este seu código não está compilando ,    não entendi por que você usou todos esses pragmas ,  e se são vetores que você quer , por que declarou matrizes de  ponteiro ?  ,  e o enunciado diz para popular aleatoriamente , então creio que precisa usar a função  rand   ,  

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...