Matrices matemáticas

Tipos de datos. Programación

  • Enviado por: Eduardo Donderis
  • Idioma: castellano
  • País: España España
  • 3 páginas

publicidad
publicidad

P.9.7.- Escriba un programa que realiza el producto de una matriz M por su transpuesta N

program matrices97;

uses crt;

const

n=3;

type

tmatriz=array [1..N,1..N] of integer;

var

a,b,c:tmatriz;

ch:char;

{PROCEDIMIENTOS}

{lee los datos}

procedure leermatriz (var x:tmatriz);

var

i,j:integer;

begin

clrscr;

writeln ('Introduzca los datos fila por fila');

for i:=1 to n do

begin

writeln;

for j:=1 to n do

begin

read (x[i,j])

end

end

end;

{**********************}

{visualiza la matriz por pantalla}

procedure visualizarmatriz (x:tmatriz);

var

i,j:integer;

begin

j:=1;

writeln;

repeat

for i:=1 to n do

begin

write (x[i,j],' ')

end;

j:=j+1;

writeln;

until j>3;

writeln

end;

{*********************}

{el procedimiento transpone la matriz}

procedure transponer (x:tmatriz; var y:tmatriz);

var

i,j:integer;

begin

for i:=1 to n do

begin

for j:=1 to n do

begin

y [i,j]:= x [j,i]

end

end

end;

{**********************}

{Esta funcion opera las filas y las columnas adecuadas, cuyo valor ir  a la matriz C}

function operar (prim:tmatriz; fila:integer; trans:tmatriz; columna:integer):integer;

var

h,suma,aux:integer;

begin

suma:=0;

for h:=1 to n do

begin

aux:= prim [fila,h] * trans [h,columna];

suma:=suma + aux

end;

operar:=suma

end;

{***********************}

{este procedimiento realiza la multiplicaci¢n}

procedure multiplicar (x:tmatriz; y:tmatriz; var z:tmatriz);

var

i,j:integer;

begin

for i:=1 to n do

begin

for j:=1 to n do

begin

z [i,j]:= operar (x,j,y,i)

end

end

end;

{*********************}

{Este procedimiento visualiza los resultados}

procedure escribirresultados (x,y,z:tmatriz);

begin

clrscr;

write ('La matriz A = ');

writeln;

visualizarmatriz (a);

write ('Por su transpuesta T = ');

writeln;

visualizarmatriz (b);

write ('Es igual a ');

writeln;

visualizarmatriz (c);

readkey

end;

{PROGRAMA PRINCIPAL}

begin

repeat

clrscr;

leermatriz (a);

transponer (a,b);

multiplicar (a,b,c);

escribirresultados (a,b,c);

repeat

write ('C-Continuar/S-Salir');

ch:=upcase(readkey);

until (ch='S') or (ch='C');

until (ch='S')

end.