Matrices

Necesito que me ayuden urgentemente, por favor. Necesito un programa que multiplique dos matrices entre si.

1 Respuesta

Respuesta
1
De la multiplicación de matrices debes saber que una matriz mXn multiplicada por una nXp da como resultado una mXp
Supongamos las matrices anteriores y que de antemano conoces los valores m n p. Ahora defines una función donde pones tres ciclos anidados para la multiplicación en este orden:
i:=1 to m
k:=1 to p
j:=1 to n
la operación de cálculo es la que sigue.
m3[i,k]:=m3[i,k]+m1[i,j]*m2[j,k]
Sencillo, no es cierto.
Quiero decir que ya una vez que te doy esto es muy sencillo crear tu función. Si tienes alguna duda no dudes en poreguntar.
Suerte.
Hola soy yo de nuevo, primero que todo quiero agradecerte tu preocupación, pero para serte franco me gustaría saber si tu me podrías mandar el programa hecho a mi e-mail, si no puedes, lo comprenderé ya que tu no tienes ninguna obligación. Bueno amigo me despido esperando tu compresión..
.. Gracias.
Si lo que deseas es que te programe esa multiplicación deberás escoger entre estas opciones.
1. Te envío el ejecutable hecho en delphi, pues no programo en pascal estándar desde hace años.
2. Te escribo en modo texto el programa en pascal estándar y tu lo compilas.
Decide y dame tu dirección para escribirte.
Hola amigo, oye te doy mil gracias por el favor que me estas haciendo, bueno en relación a lo que me propones, prefiero que me mandes el programa como texto para pascal estándar para así compilarlo yo, de antemano muchísimas gracias, Chao.
ahh¡ mi mail es [email protected]
Aquí va, perdona cualquier error, pues el compilador que utilicé fui yo mismo.
Saludos. type
matriz : array[1..max,1..max] of integer;
procedure EDatos(var ma1,ma2:matriz;var l1,a1,a2:integer);
var
i,j:integer;
begin
write('entre largo de m1');readln(l1);
write('entre ancho de m1');readln(a1);
writeln('Entre los valores de la matriz m1');
for i:=1 to l1 do
begin
for j:=1 to a1 do
begin
read(ma1[i,j]);
write(' ');
end;
writeln;
end;
write('entre ancho de m2');readln(a2);
writeln('Entre los valores de la matriz m2');
for i:=1 to a1 do
begin
for j:=1 to a2 do
begin
read(ma2[i,j]);
write(' ');
end;
writeln;
end;
end;
function Multiplica(ma1,ma2,l1,a1,a2):matriz;
var
i,j,k:integer;
ma3:matriz;
begin
for i:=1 to l1 do
for k:=1 to a2 do
for j:=1 to a1 do
ma3[i,j]:=ma3[i,j] + ma1[i,k]*ma2[k,j];
Multiplica:= ma3;
end;
procedure SDatos(ma3:matriz;l1,a2:integer)
var
i,j:integer;
begin
writeln('El resultado de la multiplicación es');
for i:=1 to l1 do
begin
for j:=1 to a2 do
begin
write(ma3[i,j]);
write(' ');
end;
writeln;
end;
end;
program MultMatrices;
const
max = 10;
var
m1,m2,m3 : matriz;
l1,a1,a2 : integer;
begin
EDatos(m1,m2,l1,a1,a2);
m3:=Multiplica(m1,m2,l1,a1,a2);
SDatos(m3,l1,a2);
end;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas