MultipMatriz.java
Publicado por Edson G. de Lima (última atualização em 08/05/2012)
[ Hits: 3.598 ]
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 (""); } } }
Avaliação de expressões matemáticas
Calcular ritmo de corrida de rua
Classe Java para a validação de CNPJ
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Instalação Uefi com o instalador clássico do Mageia (0)
É cada coisa que me aparece! - não é só 3% (2)
SysAdmin ou DevOps: Qual curso inicial pra essa área? (1)
Alguma pessoa pode me ajudar com drriver Core i3 7020u (Debian 12)? (2)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta