MultipMatriz.java
Publicado por Edson G. de Lima (última atualização em 08/05/2012)
[ Hits: 3.675 ]
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 (""); } } }
Simples applet para determinar invertido do digitado
Cadastramento de Produtos com .JOptionPane
Planilha de cálculo para multa judicial
Diferenca entre meses - um método de busca simples
Crivo de Eratóstenes Simples em Java
Nenhum comentário foi encontrado.
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Compartilhando uma ideia sobre computação quantica (6)
Meus HDs não aparecem mais no boot da placa mãe (12)
Acabei zuando meu Linux inteiro e estou desesperado (10)
Linux Mint com GForce 630 e 2 monitores dos quais só um está na resolu... (2)