Matriz não quadrada - mostrando também as somas das linhas e colunas
{ esse algoritmo realiza a multiplicação de duas matrizaes podendo elas erem quadradas ou não, e depois mostra o resultado da matriz como outra matriz
e também mostra a somas das linhas e das colunas
}
PROGRAM MultipM; VAR matrizA:ARRAY[1..50,1..50] OF REAL;
matrizB:ARRAY[1..50,1..50] OF REAL;
matrizR:ARRAY[1..50,1..50] OF REAL;
matrizRsoma:ARRAY[1..50,1..50] OF REAL;
n,n1, n2, n3,i,j,k, linha, COLUNA, VALOR:INTEGER;
SOMA_COLUNA: ARRAY[1..80] OF REAL;
SOMA_LINHA: ARRAY[1..80] OF REAL;
COLUNA_1, LINHA_1: INTEGER;
BEGIN
WRITELN('Programa para calcular o resultado da multiplicação de 2 matrizes'); WRITE('Qual a linha da matrize A ? ');
READLN(n); WRITE('Qual a coluna das matrizes A ? ');
READLN(n1); WRITE('Qual a linha das matrizes B ? ');
READLN(n2); WRITE('Qual a coluna das matrizes B ? ');
READLN(n3);
WRITELN('Escreva os elementos da matriz A: ');
WHILE (N<>N3) AND (N1<>N2) DO BEGIN
WRITELN('OS NUMEROS DE COLUNAS DE UMA MATRIZ TEM QUE SER IGUAL AO DE OUTRA MATRIZ');
WRITELN('Programa para calcular o resultado da multiplicação de 2 matrizes'); WRITE('Qual a linha da matrize A ? ');
READLN(n); WRITE('Qual a coluna das matrizes A ? ');
READLN(n1); WRITE('Qual a linha das matrizes B ? ');
READLN(n2); WRITE('Qual a coluna das matrizes B ? ');
READLN(n3);
WRITELN('Escreva os elementos da matriz A: '); END;
FOR i:=1 TO n DO BEGIN FOR j:=1 TO n1 DO BEGIN WRITE('a',i,j,': ');
READLN(matrizA[i,j]); END; END;
WRITELN('Escreva os elementos da matriz B: '); FOR i:=1 TO n2 DO BEGIN FOR j:=1 TO n3 DO BEGIN WRITE('b',i,j,': ');
READLN(matrizB[i,j]); END; END; { Multiplica‡Æo das matrizes A e B }
IF N < N2 THEN BEGIN
LINHA:= N; END ELSE BEGIN
LINHA:= N2; END;
IF N1 < N3 THEN BEGIN
COLUNA:= N1; END ELSE BEGIN
COLUNA:= N3; END;
VALOR := COLUNA*LINHA; FOR i:=1 TO LINHA DO BEGIN FOR j:=1 TO COLUNA DO BEGIN
matrizR[i,j]:=0; FOR k:=1 TO VALOR DO
matrizR[i,j]:=matrizR[i,j]+matrizA[i,k]*matrizB[k,j];
END; END;
FOR i:=1 TO LINHA DO BEGIN
writeln(''); FOR j:=1 TO COLUNA DO BEGIN
matrizRsoma[i,j]:=matrizR[i,j]+matrizR[i,j];
END; END;
FOR i:=1 TO LINHA DO BEGIN FOR j:=1 TO COLUNA DO BEGIN
matrizRsoma[i,j]:=matrizR[i,j]+matrizR[i,j];
WRITELN('A matriz resultado da multiplição das matrizes A e B ‚ :'); FOR i:=1 TO LINHA DO BEGIN
writeln(''); FOR j:=1 TO COLUNA DO WRITE(' ',i, j, ' ',matrizR[i,j] :2:2);
WRITELN; END;
writeln(''); WRITE('Soma das Linha e Colunas é:');
writeln('');
FOR i:=1 TO LINHA DO BEGIN
WRITELN('');
WRITELN('Linha',i,' ', SOMA_LINHA[i] :2:2); END;
FOR i:=1 TO COLUNA DO BEGIN
writeLn('');
WRITELN( 'Coluna',i,' ', SOMA_COLUNA[i] :2:2); END;