MultipMatriz.java
Publicado por Edson G. de Lima (última atualização em 08/05/2012)
[ Hits: 4.010 ]
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 ("");
}
}
}
Ordenação de vetores com letras do alfabeto (atualizado)
Exemplo de sobrecarga de métodos
Script para cálculo de distâncias na superfície terrestre utilizando coordenadas geográficas
Calcula as chances de se ganhar na mega-sena.
Nenhum comentário foi encontrado.
A Fundação da Confiança Digital: A Importância Estratégica de uma PKI CA na Segurança de Dados
Como enviar dicas ou artigos para o Viva o Linux
Como Ativar a Aceleração por GPU (ROCm) no Ollama para AMD Navi 10 (RX 5700 XT / 5600) no Gentoo
Cairo Dock ainda funcional nos dias de hoje
Configuração de IP fixo via nmcli e resolução de nomes via /etc/hosts no Gentoo
Removendo o bloqueio por erros de senha no Gentoo (systemd)
Papel de Parede Animado no KDE Plasma 6 (Com dicas para Gentoo)
Homebrew: o gerenciador de pacotes que faltava para o Linux!
Ajudante para criar dicas e artigos no VOL (30)
Hardware (corpo), Software (mente) e Kernel (conexão) (0)
Tentando fazer um "linux ricing" mas falhando miseravelmente... (3)









