MultipMatriz.java
Publicado por Edson G. de Lima (última atualização em 08/05/2012)
[ Hits: 3.584 ]
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 (""); } } }
Gerador de números aleatórios em Java
Algoritmo para Gerar um Sudoku NxN válido
Determinante de uma matriz de ordem 3.
Ordenação de vetores com letras do alfabeto
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
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Definir tempo limite para acesso ssh (4)
Problema instalação do sige software gestão escolar script gratuito (0)
Tentando instalar o Ekattor School no xampp (3)
[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