MultipMatriz.java
Publicado por Edson G. de Lima (última atualização em 08/05/2012)
[ Hits: 3.484 ]
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 (""); } } }
Crivo de Eratóstenes Simples em Java
Gerador de números aleatórios em Java
Script para cálculo de distâncias na superfície terrestre utilizando coordenadas geográficas
Exemplo de sobrecarga de métodos
Nenhum comentário foi encontrado.
Atenção a quem posta conteúdo de dicas, scripts e tal (2)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
Dongle Bluetooth 5.0 não funciona no Pop Os 22.04 (4)
Acesso a internet servidor virtualizado (10)
Sistema da Coréia do Norte - Red Star OS (11)
redirecionando saida de comando touch para o AWK[AJUDA] (17)
Driver Realtek RTL8852BE não disponível para Ubuntu 22.04.4 LTS kernel... (5)