1. Escribe un procedimiento que calcule la suma de dos matrices de dimensiones axb.
Procedimiento
sumaMatrices(E m1:matriz, E m2:matriz, E a:entero, E b:entero, S m:matriz)
{Suma las matrices m1
y m2 de dimensiones axb, asignando el resultado a la matriz m}
Variables
fila,columna:entero;
principio
para fila:=1 hasta a
hacer {para cada fila}
para
columna:=1 hasta b hacer {para cada elemento de la fila}
m[fila,columna]:=m1[fila,columna]+m2[fila,columna];
fpara
fpara
fin
2. Escribe un procedimiento que calcule la traspuesta de una matriz de dimensión nxn
2. Escribe un procedimiento que calcule la traspuesta de una matriz de dimensión nxn
Procedimiento
trasponer(E/S m:matriz, E n:entero);
{Traspone la matriz m
de dimensión nxn}
MI IDEA
tipos
mAuxiliar=vector[1..n,1..n] de
entero;
variables
fila, columna: entero;
principio
para fila:=0 hasta n hacer
para columna:=0+1 hasta
n hacer
m[columna,fila]:=m1[fila,columna]
fpara
fpara
fin
SOLUCIÓN DEL PROFESOR
variables
fila,columna:entero;
principio
para fila:=1 hasta N hacer
{en cada fila considera los
elementos situados a la derecha de la diagonal}
para columna:=fila+1
hasta N hacer
{permuta cada elemento
con su simétrico}
auxiliar:=m[fila,columna];
m[fila,columna]:=m[columna,fila];
m[columna,fila]:=auxiliar;
fpara
fpara
fin
3. Escribe un procedimiento que calcule el producto de dos
matrices de dimensiones axb y bxc
Procedimiento
multiplicarMatrices(E m1:matriz, E m2:matriz, E a:entero, E b:entero, S
m:matriz)
{Multiplica las
matrices m1 y m2 de dimensiones axb y bxc, asignando el resultado a la matriz m
que tendrá una dimensión axc}
variables
fila,columna,i:entero;
principio
para
fila:=1 hasta c hacer
{considera
cada una de las filas}
para
columna:=1 hasta c hacer
{multiplica
escalarmente la fila por la columna}
m[fila,columna]:=0.0;
para
i:=1 hasta b hacer
m[fila,columna]:=m[fila,columna]+m1[fila,i]*m2[i,columna];
fpara
fpara
fpara
fin
0 comments:
Publicar un comentario