MultipMatriz.java
Publicado por Edson G. de Lima (última atualização em 08/05/2012)
[ Hits: 3.871 ]
Script que realiza a multiplicação entre duas matrizes. Uma facilidade do script é que ele permite alimentar a ordem das matrizes e preencher os valores tanto de forma manual quanto randômica. Ideal para elaborar/corrigir exercícios.
import java.util.Scanner;
public class MultipMatriz {
public static void main (String args[]) {
Scanner leiaA = new Scanner (System.in);
Scanner leiaB = new Scanner (System.in);
Scanner leiaS = new Scanner (System.in);
String sn = "s";
int soma = 0;
System.out.println ("\nEfetua a multiplicação entre duas matrizes");
System.out.println ("------------------------------------------\n");
System.out.println ("Entre com a ordem (m x n)da matriz A: ");
int m = leiaA.nextInt ();
int n = leiaA.nextInt ();
int mA[][] = new int [m][n];
System.out.println ("Entre com a ordem (0 x p) da matriz B: ");
int o = leiaB.nextInt ();
int p = leiaB.nextInt ();
int mB[][] = new int [o][p];
// verifica a possibilidade da multiplicação
if (n != o) {
System.out.println ("\nPor definição, a multiplicação destas matrizes não é possível.");
System.out.println ("O número de colunas da matriz A deve ser igual ao número de linhas da matriz B.");
System.out.println ("\nInterrompendo a execução...\n");
System.exit (0);
}else{
System.out.println ("\nOrdem da matriz A: "+m+"x"+n);
System.out.println ("\nOrdem da matriz B: "+o+"x"+p);
System.out.println ("\nA ordem da matriz R será "+m+"x"+p);
}
int mR[][] = new int [m][p];
System.out.println ("\nDeseja alimentar as matrizes com valores aleatórios?");
sn = leiaS.nextLine();
if (sn.equals ("s")) {
for (int i=0; i<m; i++) {
for (int j=0; j<n; j++) {
mA[i][j] = (int)(Math.random()*10-5);
}
}
for (int i=0; i<o; i++) {
for (int j=0; j<p; j++) {
mB[i][j] = (int)(Math.random()*10-5);
}
}
}else{
System.out.println ("\nOk, vamos para o preenchimento manual das matrizes: \n");
for (int i=0; i<m; i++) {
System.out.println ("Matriz A: valores da linha "+(i+1));
for (int j=0; j<n; j++) {
mA[i][j] = leiaA.nextInt();
}
}
System.out.println ("");
for (int i=0; i<o; i++) {
System.out.println ("Matriz B: valores da linha "+(i+1));
for (int j=0; j<p; j++) {
mB[i][j] = leiaB.nextInt();
}
}
}
// imprimindo as matrizes
System.out.println ("\nEscrevendo as matrizes: \n");
System.out.println ("\nMATRIZ A:");
for (int i=0; i<m; i++) {
for (int j=0; j<n; j++) {
System.out.print (mA[i][j]+"\t");
}
System.out.println ("");
}
System.out.println ("\nMATRIZ B:");
for (int i=0; i<o; i++) {
for (int j=0; j<p; j++) {
System.out.print (mB[i][j]+"\t");
}
System.out.println ("");
}
/////// Processo para soma das multiplicações linha-coluna
for (int i=0; i<m; i++) {
for (int j=0; j<p; j++) {
// apenas o k varia para "correr" as colunas de A da 1ª linha x com as linhas da 1ª coluna de B
// a variação de k vai até o número de colunas de A, como iniciamos em 0, então vai até n-1
for (int k=0; k<n; k++) {
soma = soma+mA[i][k]*mB[k][j];
}
// a cada saída desse laço fazemos a composição dos valores da matriz resultante
mR[i][j] = soma;
// soma precisa zerar:
soma = 0;
}
}
// impressão da matriz resultante
System.out.println ("\nImprimindo a matriz resultante (ordem "+m+"x"+p+"):");
for (int i=0; i<m; i++) {
for (int j=0; j<p; j++) {
System.out.print (mR[i][j]+"\t");
}
System.out.println ("");
}
}
}
Um classe que facilita a leitura de dados do teclahdo
Ordenação de vetores com letras do alfabeto (atualizado)
Imagem de Background atravez de um JDesktopPane
Código para validar CPF e CNPJ otimizado
Nenhum comentário foi encontrado.
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Fedora KDE plasma 42 X Módulo de segurança BB (Warsaw-2) (1)
O programa assinador digital (1)
PIP3 - erro ao instalar módulo do mariadb para o Python (9)









