Gostaria compartilhar um exemplo que fiz (com ajuda) de uma matriz.
Agora eu gostaria de implementar a multiplicação, mas não tenho a mínima idéia de como fazer.
Estou perguntando aqui porque já perguntei a 2 professores e nessa parte os mesmos não conseguiram resolver ou não explicararam com clareza. (Claro, eles olharam rapidamente, creio que por isso que não souberam me informar).
Agradeço
[code]import java.util.Scanner;
public class matriz {
/**
* @param args
*/
public static void main(String[] args) {
/**
* author: Eduardo Alves
*
* @param args
*/
int quantLinhasA, quantColunasA, quantLinhasB, quantColunasB;
Scanner entrada = new Scanner(System.in);
/*Define o tamanho da matriz, de acordo com o que o usuário digitar*/
System.out.println("Matriz A:");
System.out.println("Digite a Quantidade de linhas ");
quantLinhasA = entrada.nextInt();
System.out.println("Digite a Quantidade de Colunas: ");
quantColunasA = entrada.nextInt();
System.out.println("Matriz B:");
System.out.println("Digite a Quantidade de linhas ");
quantLinhasB = entrada.nextInt();
System.out.println("Digite a Quantidade de Colunas: ");
quantColunasB = entrada.nextInt();
/*Define o array de acordo com o que foi digitado (ex: Matriz 2x3)*/
/*"i" corresponde ao valor da linha e "j" corresponde a coluna, "A" é Matriz*/
int a[][] = new int[quantLinhasA][quantColunasA];
int iA, jA;
int b[][] = new int[quantLinhasB][quantColunasB];
int iB, jB;
/*Desenha a matriz e recebe os valores*/
System.out.println("Matriz A*");
for (iA = 0; iA < quantLinhasA; iA++) {
for (jA = 0; jA < quantColunasA; jA++) {
System.out.println("Digite a linha: " + iA + " Digite a Coluna: " + jA);
a[iA][jA] = entrada.nextInt();
}
}
for (iA = 0; iA < quantLinhasA; iA++) {
for (jA = 0; jA < quantColunasA; jA++) {
/*Imprime 'bonitinho'(Formatado)*/
System.out.printf("%3d ", a[iA][jA]);
}
System.out.println();
}
/*Mesma coisa, só que aqui é a Matriz B*/
System.out.println("Matriz B*");
for (iB = 0; iB < quantColunasB; iB++) {
for (jB = 0; jB < quantColunasB; jB++) {
System.out.println("Digite a Linha: " + iB+ " Digite a Coluna: " + jB);
b[iB][jB] = entrada.nextInt();
}
}
for (iB = 0; iB < quantLinhasB; iB++) {
for (jB = 0; jB < quantColunasB; jB++) {
System.out.printf("%3d ", b[iB][jB]);
}
System.out.println();
}
/*Condição necessária para Multiplicar a Matriz*/
if (quantColunasA == quantLinhasB) {
/*Aqui eu não sei o que fazer
eu poderia simplesmente fazer a[0][0]*b[0][0] por exemplo, mas não dá pra definir isso no código, visto que a matriz pode ter tamanhos diferentes*/
}
}
luxu, as matrizes não terão mesmo tamanho.
Porque eu quero digitar por exemplo Matriz A: 2x3 Matriz B 3x2
A Condição para a multiplicação é que o número de colunas da matriz A seja igual ao número de linhas da matriz B.
Allexb10, olhei lá, mas já tinha visto algo semelhante, ainda não é o que quero pois lá já tem definido o tamanho e valores das matrizes, mas eu acho complicado o cálculo (neste caso o produto) quando é para inserir esses valores manualmente.
Você vai fazer algo desse tipo, de modo que o for interno percorra uma mesma linha multiplicando uma coluna, logico que você precisa de uma “terceira” matriz, onde guardar os valores. mas o PRINCIPIO é esse. tente entender melhor como fazer o laço, a solução vai ficar mais clara depois disso.