Solución Al Ejercicio 6º (Tema 5) Módulo Calcularsumas:: M, T Inf, Diag, Sup

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 1

SOLUCIÓN AL EJERCICIO 6º (TEMA 5)

MÓDULO calcularSumas: M. llamador

inf,diag,sup m,t

1º) ANÁLISIS: calcularSumas


a) Datos de entrada:
 t: tamaño de la matriz cuadrada. Módulo llamador. (t > 0)
 m[1..t][1..t]: Matriz cuadrada. Módulo llamador.
b) Datos de salida:
 inf: Suma de los valores de m situados por debajo de la diagonal principal. Módulo llamador.
 diag: Suma de los valores de m situados en la diagonal principal. Módulo llamador.
 sup: Suma de los valores de m situados por encima de la diagonal principal. Módulo llamador.
c) Comentarios:
 Utilizaremos dos variables índice para recorrer la matriz.
 Suponemos que en algún módulo ascendiente se ha definido la constante simbólica TAMMAX=10.
2º) DISEÑO:
a) Parte declarativa:
calcularSumas(m[][TAMMAX]:entero,t:entero,*inf:entero,*diag:entero,*sup:entero)
VARIABLES
i,j: entero
b) Representación algorítmica: calcularSumas(m,t,inf,diag,sup)
BLOCK

*inf←0 *diag←0 *sup←0 for do

i←0,t-1,1 BLOCK

for do *diag←*diag+m[i][i] for do

j←0,i-1,1 *inf←*inf+m[i][j] j←i+1,t-1,1 *sup←*sup+m[i][j]

CODIFICACIÓN:
/************************************************************/
/*** E J E R C I C I O 6 - T E M A 5 ***/
/*** ***/
/*** Suma de valores por debajo de / en / por encima de ***/
/*** la diagonal principal de una matriz cuadrada ***/
/************************************************************/

(...)

#define TAMMAX 10

(...)

/** calcularSumas(m,t,inf,diag,sup) **/


/** Calcula y devuelve la suma de los valores de una matriz cuadrada **/
/** por debajo de, en y por encima de la diagonal principal **/
void calcularSumas(int m[][TAMMAX],int t,int *inf,int *diag, int *sup)
{
int i,j;

*inf=0;
*diag=0;
*sup=0;
for (i=0; i <= t-1; i=i+1)
{
for (j=0; j <= i-1; j=j+1)
*inf=*inf+m[i][j];
*diag=*diag+m[i][i];
for (j=i+1; j <= t-1; j=j+1)
*sup=*sup+m[i][j];
}
}

También podría gustarte