Está en la página 1de 2

Miguel Ángel Méndez Orta

17/10/2020
Suma de dos arreglos (A, B)

procedimiento sumaDosArreglos()
N = 100
idProc = idProceso
numProc = numProcesos
nDatos = N / (numProc - 1)
nDatosU = nDatos + N % (numProc - 1)

si idProc = 0
crearArreglo(A, N)
crearArreglo(B, N)

llenarArreglo(A, N)
llenarArreglo(B, N)

crearArreglo(C, N)

para procesoHijo desde 1 hasta numProc - 1


desplazamiento = (procesoHijo - 1) * nDatos

si procesoHijo == numProc - 1
enviar(procesoHijo, A[desplazamiento], entero)
enviar(procesoHijo, B[desplazamiento], entero)
si no
enviar(procesoHijo, A[desplazamiento], entero)
enviar(procesoHijo, B[desplazamiento], entero)
fin si
fin para

para procesoHijo desde 1 hasta numProc - 1


desplazamiento = (procesoHijo - 1) * nDatos

si procesoHijo == numProc - 1
recibir(procesoHijo, C[desplazamiento], nDatosU, entero)
si no
recibir(procesoHijo, C[desplazamiento], nDatos, entero)
fin si
fin para
imprimeArreglo(C, N)
si no
si idProc = numProc - 1
nDatos = nDatosU
fin si

crearArreglo(A, nDatos)
crearArreglo(B, nDatos)
crearArreglo(C, nDatos)

recibir(0, A, nDatos, entero)


recibir(0, B, nDatos, entero)

para i desde 0 hasta nDatos - 1


C[i] = A[i] + B[i]
fin para
enviar(0, C, nDatos, entero)
fin si
fin procedimiento

También podría gustarte