Calculadora de matriz

2 respostas
E

aew galera tow com um probleminha com uma calculadora de matrizes quadradas:

import java.util.*;

public class CalcMatrix {
	
	public static void main(String matrizes[]){
		
		//Instancia da classe que captura dados do Teclado;
		Scanner in = new Scanner(System.in);
		
		//Instancia da classe que gerara os numeros aleatorios;
		Random r = new Random();
		
		//Declaração de duas variaveis para servir como linhas e colunas;
		int L = 0;
		int Co = L;
		
		System.out.print("Digite o tamanho da matriz quadrada de valores aleátorios: ");
		L = in.nextInt();
		
		//Declarando 3 arrays bidimensionais(matrizes);
		int A[][] = new int [L][Co];
		int B[][] = new int [L][Co];
		int Soma[][] = new int [L][Co];
		int Sub[][] = new int [L][Co];
		int Mult[][] = new int [L][Co];

		//Gerando a Matriz A LxCo Aij, com i e j valores iguais e sendo gerados aleatoriamente :
		for(int l = 0; l < L; l++){
			for(int co = 0 ; co < Co; co++){
				A[l][co] = r.nextInt(9) + 1;
			}
		}
		System.out.println(" A matriz 'A' é: ");
		for(int l = 0; l < L; l++){
			for(int co = 0 ; co < Co; co++){
				System.out.print(A[l][co] + " ");
			}
			System.out.println("");
		}
		System.out.println("_______________");
		
		//Gerando a Matriz B LxCo Bij, com i e j valores iguais e sendo gerados aleatoriamente :
		for(int l = 0; l < L; l++){
			for(int co = 0 ; co < Co; co++){
				B[l][co] = r.nextInt(9) + 1;
			}
		}
		System.out.println("A matriz 'B' é: ");
		for(int l = 0; l < L; l++){
			for(int co = 0 ; co < Co; co++){
				System.out.print(B[l][co] + " ");
			}
			System.out.println("");
		}
		System.out.println("______________________________");
		
		//Vou efetuar a soma das matrizes A e B;
		System.out.print("A soma das matrizes A e B é: ");
		for(int l = 0; l < L; l++){
			for(int co = 0 ; co < Co; co++){
				Soma[l][co] = A[l][co] + B[l][co];
			}
		}
		for(int l = 0; l < L; l++){
			for(int co = 0 ; co < Co; co++){
				System.out.print(Soma[l][co] + " ");
			}
			System.out.println("");
		}
		System.out.println("______________________________");
		
		//Vou efetuar a subtração das matrizes A e B;
		System.out.println(" A subtração das matrizes A e B é: ");
		for(int l = 0; l < L; l++){
			for(int co = 0 ; co < Co; co++){
				Sub[l][co] = A[l][co] - B[l][co];
			}
		}
		for(int l = 0; l < L; l++){
			for(int co = 0 ; co < Co; co++){
				System.out.print(Sub[l][co] + " ");
			}
			System.out.println("");
		}
		System.out.println("______________________________");
		
		//Vou efetuar a multiplicação das matrizes A e B;
		System.out.print(" A multiplicação das matrizes A e B é:" + "\n");
		for(int l = 0; l < L; l++){
			for(int co = 0 ; co < Co; co++){
				Mult[l][co] = A[l][co] * B[l][co];
			}
		}
		for(int l = 0; l < L; l++){
			for(int co = 0 ; co < Co; co++){
				System.out.print(Mult[l][co] + " ");
			}
			System.out.println("");
		}	
	}
}

se axarem melhor axar a solução com metodos pode ser soh ta faltando ela imprimir os valores das matrizes

2 Respostas

gledson85

O erro tava na criação do Scanner rsrs.

import java.util.Random;
import java.util.Scanner;

public class CalcMatrix {

    public static void main(String matrizes[]) {

        Scanner in = new Scanner(System.in);
        System.out.print("Digite o tamanho da matriz quadrada de valores aleátorios: ");
        int Linha = in.nextInt();
        int Coluna = Linha;

        //Instancia da classe que gerara os numeros aleatorios;
        Random r = new Random();

        //Declarando 3 arrays bidimensionais(matrizes);
        int A[][] = new int[Linha][Coluna];
        int B[][] = new int[Linha][Coluna];
        int Soma[][] = new int[Linha][Coluna];
        int Sub[][] = new int[Linha][Coluna];
        int Mult[][] = new int[Linha][Coluna];

        //Gerando a Matriz A LxCo Aij, com i e j valores iguais e sendo gerados aleatoriamente :
        System.out.println(" A matriz 'A' é: ");
        for (int l = 0; l < Linha; l++) {
            for (int co = 0; co < Coluna; co++) {
                A[l][co] = r.nextInt(9) + 1;
                System.out.print(A[l][co] + " ");
            }
            System.out.println("");
        }
        System.out.println("_______________");

        //Gerando a Matriz B LxCo Bij, com i e j valores iguais e sendo gerados aleatoriamente :
        System.out.println("A matriz 'B' é: ");
        for (int l = 0; l < Linha; l++) {
            for (int co = 0; co < Coluna; co++) {
                B[l][co] = r.nextInt(9) + 1;
                System.out.print(B[l][co] + " ");
            }
            System.out.println("");
        }
        System.out.println("______________________________");

        //Vou efetuar a soma das matrizes A e B;
        System.out.println("A soma das matrizes A e B é: ");
        for (int l = 0; l < Linha; l++) {
            for (int co = 0; co < Coluna; co++) {
                Soma[l][co] = A[l][co] + B[l][co];
                System.out.print(Soma[l][co] + " ");
            }
            System.out.println("");
        }
        System.out.println("______________________________");

        //Vou efetuar a subtração das matrizes A e B;
        System.out.println(" A subtração das matrizes A e B é: ");
        for (int l = 0; l < Linha; l++) {
            for (int co = 0; co < Coluna; co++) {
                Sub[l][co] = A[l][co] - B[l][co];
                System.out.print(Sub[l][co] + " ");
            }
            System.out.println("");
        }
        System.out.println("______________________________");

        //Vou efetuar a multiplicação das matrizes A e B;
        System.out.println(" A multiplicação das matrizes A e B é: ");
        for (int l = 0; l < Linha; l++) {
            for (int co = 0; co < Coluna; co++) {
                Mult[l][co] = A[l][co] * B[l][co];
                System.out.print(Mult[l][co] + " ");
            }
            System.out.println("");
        }
    }
}
gledson85
Uma versão com métodos:
import java.util.*;

public class CalcMatrix {

    public static void main(String matrizes[]) {

        Scanner in = new Scanner(System.in);
        System.out.print("Digite o tamanho da matriz quadrada de valores aleátorios: ");
        int Quadrado = in.nextInt();

        int A[][] = geraMatriz(Quadrado);
        print(A, " A matriz 'A' é: ");

        int B[][] = geraMatriz(Quadrado);
        print(B, " A matriz 'B' é: ");

        int Soma[][] = calc("soma", Quadrado, A, B);
        print(Soma, "A soma das matrizes A e B é: ");

        int Sub[][] = calc("sub", Quadrado, A, B);
        print(Sub, "A subtração das matrizes A e B é: ");

        int Mult[][] = calc("mult", Quadrado, A, B);
        print(Mult, "A multiplicação das matrizes A e B é: ");
    }

    public static int[][] geraMatriz(int Quadrado) {
        int x[][] = new int[Quadrado][Quadrado];
        Random r = new Random();
        for (int l = 0; l < Quadrado; l++) {
            for (int co = 0; co < Quadrado; co++) {
                x[l][co] = r.nextInt(9) + 1;
            }
        }
        return x;
    }

    public static int[][] calc(String tipoDeCalculo, int Quadrado, int A[][], int B[][]) {
        int x[][] = new int[Quadrado][Quadrado];
        for (int l = 0; l < Quadrado; l++) {
            for (int co = 0; co < Quadrado; co++) {
                if (tipoDeCalculo.equals("soma")) {
                    x[l][co] = A[l][co] + B[l][co];
                }
                if (tipoDeCalculo.equals("sub")) {
                    x[l][co] = A[l][co] - B[l][co];
                }
                if (tipoDeCalculo.equals("mult")) {
                    x[l][co] = A[l][co] * B[l][co];
                }
            }
        }
        return x;
    }

    public static void print(int x[][], String msg) {
        for (int i = 0; i < msg.length(); i++) {
            System.out.print("_");
        }
        System.out.println("");
        System.out.println(msg);
        for (int l = 0; l < x.length; l++) {
            for (int co = 0; co < x.length; co++) {
                if (x[l][co] < 0) {
                    System.out.print(x[l][co] + " ");
                } else {
                    if (x[l][co] < 10) {
                        System.out.print(" " + x[l][co] + " ");
                    // ou System.out.print("0" + x[l][co] + " ");
                    // para ter zero a esquerda no lugar do espaço.
                    } else {
                        System.out.print(x[l][co] + " ");
                    }
                }
            }
            System.out.println();
        }
    }
}
Exemplo de saída:
Digite o tamanho da matriz quadrada de valores aleátorios: 4
_________________
 A matriz 'A' é: 
05 02 03 09 
05 05 06 07 
04 07 02 01 
08 05 04 08 
_________________
 A matriz 'B' é: 
06 07 05 05 
02 04 09 06 
02 04 09 03 
09 04 02 02 
_____________________________
A soma das matrizes A e B é: 
11 09 08 14 
07 09 15 13 
06 11 11 04 
17 09 06 10 
__________________________________
A subtração das matrizes A e B é: 
-1 -5 -2 04 
03 01 -3 01 
02 03 -7 -2 
-1 01 02 06 
______________________________________
A multiplicação das matrizes A e B é: 
30 14 15 45 
10 20 54 42 
08 28 18 03 
72 20 08 16
Criado 7 de junho de 2009
Ultima resposta 7 de jun. de 2009
Respostas 2
Participantes 2